Class: PaypalAdaptive::Request
- Inherits:
-
Object
- Object
- PaypalAdaptive::Request
- Defined in:
- lib/paypal_adaptive/request.rb
Instance Method Summary collapse
- #cancel_preapproval(data) ⇒ Object
- #convert_currency(data) ⇒ Object
- #execute_payment(data) ⇒ Object
- #get_payment_options(data) ⇒ Object
- #get_shipping_addresses(data) ⇒ Object
- #get_verified_status(data) ⇒ Object
-
#initialize(env = nil) ⇒ Request
constructor
A new instance of Request.
- #pay(data) ⇒ Object
- #payment_details(data) ⇒ Object
- #post(data, path) ⇒ Object
- #preapproval(data) ⇒ Object
- #preapproval_details(data) ⇒ Object
- #refund(data) ⇒ Object
- #rescue_error_message(e, message = nil, response_data = nil) ⇒ Object
- #set_payment_options(data) ⇒ Object
- #validate ⇒ Object
- #wrap_post(data, path) ⇒ Object
Constructor Details
#initialize(env = nil) ⇒ Request
Returns a new instance of Request.
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/paypal_adaptive/request.rb', line 10 def initialize(env = nil) @env = env config = PaypalAdaptive.config(env) @api_base_url = config.api_base_url @headers = config.headers @ssl_cert_path = config.ssl_cert_path @ssl_cert_file = config.ssl_cert_file @api_cert_file = config.api_cert_file @verify_mode = config.verify_mode end |
Instance Method Details
#cancel_preapproval(data) ⇒ Object
58 59 60 |
# File 'lib/paypal_adaptive/request.rb', line 58 def cancel_preapproval(data) wrap_post(data, "/AdaptivePayments/CancelPreapproval") end |
#convert_currency(data) ⇒ Object
62 63 64 |
# File 'lib/paypal_adaptive/request.rb', line 62 def convert_currency(data) wrap_post(data, "/AdaptivePayments/ConvertCurrency") end |
#execute_payment(data) ⇒ Object
70 71 72 |
# File 'lib/paypal_adaptive/request.rb', line 70 def execute_payment(data) wrap_post(data, "/AdaptivePayments/ExecutePayment") end |
#get_payment_options(data) ⇒ Object
42 43 44 |
# File 'lib/paypal_adaptive/request.rb', line 42 def (data) wrap_post(data, "/AdaptivePayments/GetPaymentOptions") end |
#get_shipping_addresses(data) ⇒ Object
46 47 48 |
# File 'lib/paypal_adaptive/request.rb', line 46 def get_shipping_addresses(data) wrap_post(data, "/AdaptivePayments/GetShippingAddresses") end |
#get_verified_status(data) ⇒ Object
74 75 76 |
# File 'lib/paypal_adaptive/request.rb', line 74 def get_verified_status(data) wrap_post(data, "/AdaptiveAccounts/GetVerifiedStatus") end |
#pay(data) ⇒ Object
30 31 32 |
# File 'lib/paypal_adaptive/request.rb', line 30 def pay(data) wrap_post(data, "/AdaptivePayments/Pay") end |
#payment_details(data) ⇒ Object
34 35 36 |
# File 'lib/paypal_adaptive/request.rb', line 34 def payment_details(data) wrap_post(data, "/AdaptivePayments/PaymentDetails") end |
#post(data, path) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/paypal_adaptive/request.rb', line 95 def post(data, path) #hack fix: JSON.unparse doesn't work in Rails 2.3.5; only {}.to_json does.. api_request_data = JSON.unparse(data) rescue data.to_json url = URI.parse @api_base_url http = Net::HTTP.new(url.host, 443) http.use_ssl = true http.verify_mode = @verify_mode if @api_cert_file cert = File.read(@api_cert_file) http.cert = OpenSSL::X509::Certificate.new(cert) http.key = OpenSSL::PKey::RSA.new(cert) end http.ca_path = @ssl_cert_path unless @ssl_cert_path.blank? http.ca_file = @ssl_cert_file unless @ssl_cert_file.blank? begin response_data = http.post(path, api_request_data, @headers) JSON.parse(response_data.body) rescue Net::HTTPBadGateway => e (e, "Error reading from remote server.") rescue JSON::ParserError => e (e, "Response is not in JSON format.", response_data) rescue Exception => e case e when Errno::ECONNRESET (e, "Connection Reset. Request invalid URL.") else (e, response_data) end end end |
#preapproval(data) ⇒ Object
50 51 52 |
# File 'lib/paypal_adaptive/request.rb', line 50 def preapproval(data) wrap_post(data, "/AdaptivePayments/Preapproval") end |
#preapproval_details(data) ⇒ Object
54 55 56 |
# File 'lib/paypal_adaptive/request.rb', line 54 def preapproval_details(data) wrap_post(data, "/AdaptivePayments/PreapprovalDetails") end |
#refund(data) ⇒ Object
66 67 68 |
# File 'lib/paypal_adaptive/request.rb', line 66 def refund(data) wrap_post(data, "/AdaptivePayments/Refund") end |
#rescue_error_message(e, message = nil, response_data = nil) ⇒ Object
84 85 86 87 88 89 90 91 92 93 |
# File 'lib/paypal_adaptive/request.rb', line 84 def (e, = nil, response_data = nil) error = {"message" => || e} if response_data error["details"] = { "httpCode" => response_data.code, "httpMessage" => response_data..to_s, "httpBody" => response_data.body } end {"responseEnvelope" => {"ack" => "Failure"}, "error" => [error]} end |
#set_payment_options(data) ⇒ Object
38 39 40 |
# File 'lib/paypal_adaptive/request.rb', line 38 def (data) wrap_post(data, "/AdaptivePayments/SetPaymentOptions") end |
#validate ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/paypal_adaptive/request.rb', line 21 def validate #TODO the receiverList field not validating properly # @schema_filepath = "../lib/pay_request_schema.json" # @schema = File.open(@schema_filepath, "rb"){|f| JSON.parse(f.read)} # see page 42 of PP Adaptive Payments PDF for explanation of all fields. #JSON::Schema.validate(@data, @schema) end |
#wrap_post(data, path) ⇒ Object
78 79 80 81 82 |
# File 'lib/paypal_adaptive/request.rb', line 78 def wrap_post(data, path) raise NoDataError unless data PaypalAdaptive::Response.new(post(data, path), @env) end |