Class: PaypalAdaptive::Request
- Inherits:
-
Object
- Object
- PaypalAdaptive::Request
- Defined in:
- lib/request.rb
Instance Method Summary collapse
- #call_api(data, path) ⇒ Object
- #cancel_preapproval(data) ⇒ Object
- #convert_currency(data) ⇒ Object
-
#initialize(env = nil) ⇒ Request
constructor
A new instance of Request.
- #pay(data) ⇒ Object
- #payment_details(data) ⇒ Object
- #preapproval(data) ⇒ Object
- #preapproval_details(data) ⇒ Object
- #refund(data) ⇒ Object
- #set_payment_options(data) ⇒ Object
- #validate ⇒ Object
Constructor Details
#initialize(env = nil) ⇒ Request
Returns a new instance of Request.
12 13 14 15 16 17 18 19 |
# File 'lib/request.rb', line 12 def initialize(env = nil) @env = env @@config ||= PaypalAdaptive::Config.new(@env) @@api_base_url ||= @@config.api_base_url @@headers ||= @@config.headers @@ssl_cert_file ||= @@config.ssl_cert_file @@ssl_ca_cert_path ||= @@config.ssl_ca_cert_path end |
Instance Method Details
#call_api(data, path) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/request.rb', line 81 def call_api(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 = OpenSSL::SSL::VERIFY_PEER if @@ssl_cert_file cert = File.read(@@ssl_cert_file) http.cert = OpenSSL::X509::Certificate.new(cert) http.key = OpenSSL::PKey::RSA.new(cert) end if @@ssl_ca_cert_path http.ca_path = @@ssl_ca_cert_path unless @@ssl_ca_cert_path.nil? #/etc/ssl/certs' end response = http.post(path, api_request_data, @@headers) JSON.parse(response.body) end |
#cancel_preapproval(data) ⇒ Object
63 64 65 66 67 |
# File 'lib/request.rb', line 63 def cancel_preapproval(data) raise NoDataError unless data call_api(data, "/AdaptivePayments/CancelPreapproval") end |
#convert_currency(data) ⇒ Object
69 70 71 72 73 |
# File 'lib/request.rb', line 69 def convert_currency(data) raise NoDataError unless data call_api(data, "/AdaptivePayments/ConvertCurrency") end |
#pay(data) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/request.rb', line 30 def pay(data) raise NoDataError unless data response_data = call_api(data, "/AdaptivePayments/Pay") PaypalAdaptive::Response.new(response_data, @env) end |
#payment_details(data) ⇒ Object
44 45 46 47 48 |
# File 'lib/request.rb', line 44 def payment_details(data) raise NoDataError unless data call_api(data, "/AdaptivePayments/PaymentDetails") end |
#preapproval(data) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/request.rb', line 50 def preapproval(data) raise NoDataError unless data response_data = call_api(data, "/AdaptivePayments/Preapproval") PaypalAdaptive::Response.new(response_data, @env) end |
#preapproval_details(data) ⇒ Object
57 58 59 60 61 |
# File 'lib/request.rb', line 57 def preapproval_details(data) raise NoDataError unless data call_api(data, "/AdaptivePayments/PreapprovalDetails") end |
#refund(data) ⇒ Object
75 76 77 78 79 |
# File 'lib/request.rb', line 75 def refund(data) raise NoDataError unless data call_api(data, "/AdaptivePayments/Refund") end |
#set_payment_options(data) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/request.rb', line 37 def (data) raise NoDataError unless data response_data = call_api(data, "/AdaptivePayments/SetPaymentOptions") PaypalAdaptive::Response.new(response_data, @env) end |
#validate ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/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 |