class Paypal::NVP::Request
Constants
- ENDPOINT
Attributes
version[RW]
Public Class Methods
endpoint()
click to toggle source
# File lib/paypal/nvp/request.rb, line 13 def self.endpoint if Paypal.sandbox? ENDPOINT[:sandbox] else ENDPOINT[:production] end end
new(attributes = {})
click to toggle source
Calls superclass method
Paypal::Base::new
# File lib/paypal/nvp/request.rb, line 21 def initialize(attributes = {}) @version = Paypal.api_version super end
Public Instance Methods
common_params()
click to toggle source
# File lib/paypal/nvp/request.rb, line 26 def common_params { :USER => self.username, :PWD => self.password, :SIGNATURE => self.signature, :SUBJECT => self.subject, :VERSION => self.version } end
request(method, params = {})
click to toggle source
# File lib/paypal/nvp/request.rb, line 36 def request(method, params = {}) handle_response do post(method, params) end end
Private Instance Methods
handle_response() { || ... }
click to toggle source
# File lib/paypal/nvp/request.rb, line 48 def handle_response response = yield response = CGI.parse(response).inject({}) do |res, (k, v)| res.merge!(k.to_sym => v.first) end case response[:ACK] when 'Success', 'SuccessWithWarning' response else raise Exception::APIError.new(response) end rescue RestClient::Exception => e raise Exception::HttpError.new(e.http_code, e.message, e.http_body) end
post(method, params)
click to toggle source
# File lib/paypal/nvp/request.rb, line 44 def post(method, params) RestClient.post(self.class.endpoint, common_params.merge(params).merge(:METHOD => method)) end