Class: Paypal::Express::Request
Constant Summary
Constants inherited
from NVP::Request
NVP::Request::ENDPOINT
Instance Attribute Summary
Attributes inherited from NVP::Request
#version
Instance Method Summary
collapse
-
#agree!(token, options = {}) ⇒ Object
Reference Transaction Specific.
-
#agreement(reference_id) ⇒ Object
-
#cancel!(profile_id, options = {}) ⇒ Object
-
#charge!(reference_id, amount, options = {}) ⇒ Object
-
#checkout!(token, payer_id, payment_requests) ⇒ Object
-
#details(token) ⇒ Object
-
#reactivate!(profile_id, options = {}) ⇒ Object
-
#refund!(transaction_id, options = {}) ⇒ Object
-
#renew!(profile_id, action, options = {}) ⇒ Object
-
#revoke!(reference_id) ⇒ Object
-
#setup(payment_requests, return_url, cancel_url, options = {}) ⇒ Object
-
#subscribe!(token, recurring_profile) ⇒ Object
Recurring Payment Specific.
-
#subscription(profile_id) ⇒ Object
-
#suspend!(profile_id, options = {}) ⇒ Object
-
#transaction_details(transaction_id) ⇒ Object
#common_params, endpoint, #initialize, #request
Methods inherited from Base
#initialize
Methods included from Util
#==, formatted_amount, #numeric_attribute?, to_numeric
Instance Method Details
#agree!(token, options = {}) ⇒ Object
Reference Transaction Specific
101
102
103
104
105
106
107
108
109
110
|
# File 'lib/paypal/express/request.rb', line 101
def agree!(token, options = {})
params = {
:TOKEN => token
}
if options[:max_amount]
params[:MAXAMT] = Util.formatted_amount options[:max_amount]
end
response = self.request :CreateBillingAgreement, params
Response.new response
end
|
#agreement(reference_id) ⇒ Object
112
113
114
115
116
117
118
|
# File 'lib/paypal/express/request.rb', line 112
def agreement(reference_id)
params = {
:REFERENCEID => reference_id,
}
response = self.request :BillAgreementUpdate, params
Response.new response
end
|
#cancel!(profile_id, options = {}) ⇒ Object
90
91
92
|
# File 'lib/paypal/express/request.rb', line 90
def cancel!(profile_id, options = {})
renew!(profile_id, :Cancel, options)
end
|
#charge!(reference_id, amount, options = {}) ⇒ Object
120
121
122
123
124
125
126
127
128
129
130
131
|
# File 'lib/paypal/express/request.rb', line 120
def charge!(reference_id, amount, options = {})
params = {
:REFERENCEID => reference_id,
:AMT => Util.formatted_amount(amount),
:PAYMENTACTION => options[:payment_action] || :Sale
}
if options[:currency_code]
params[:CURRENCYCODE] = options[:currency_code]
end
response = self.request :DoReferenceTransaction, params
Response.new response
end
|
#checkout!(token, payer_id, payment_requests) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/paypal/express/request.rb', line 42
def checkout!(token, payer_id, payment_requests)
params = {
:TOKEN => token,
:PAYERID => payer_id
}
Array(payment_requests).each_with_index do |payment_request, index|
params.merge! payment_request.to_params(index)
end
response = self.request :DoExpressCheckoutPayment, params
Response.new response
end
|
#details(token) ⇒ Object
32
33
34
35
|
# File 'lib/paypal/express/request.rb', line 32
def details(token)
response = self.request :GetExpressCheckoutDetails, {:TOKEN => token}
Response.new response
end
|
#reactivate!(profile_id, options = {}) ⇒ Object
94
95
96
|
# File 'lib/paypal/express/request.rb', line 94
def reactivate!(profile_id, options = {})
renew!(profile_id, :Reactivate, options)
end
|
#refund!(transaction_id, options = {}) ⇒ Object
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
# File 'lib/paypal/express/request.rb', line 145
def refund!(transaction_id, options = {})
params = {
:TRANSACTIONID => transaction_id,
:REFUNDTYPE => :Full
}
if options[:invoice_id]
params[:INVOICEID] = options[:invoice_id]
end
if options[:type]
params[:REFUNDTYPE] = options[:type]
params[:AMT] = options[:amount]
params[:CURRENCYCODE] = options[:currency_code]
end
if options[:note]
params[:NOTE] = options[:note]
end
response = self.request :RefundTransaction, params
Response.new response
end
|
#renew!(profile_id, action, options = {}) ⇒ Object
74
75
76
77
78
79
80
81
82
83
84
|
# File 'lib/paypal/express/request.rb', line 74
def renew!(profile_id, action, options = {})
params = {
:PROFILEID => profile_id,
:ACTION => action
}
if options[:note]
params[:NOTE] = options[:note]
end
response = self.request :ManageRecurringPaymentsProfileStatus, params
Response.new response
end
|
#revoke!(reference_id) ⇒ Object
133
134
135
136
137
138
139
140
|
# File 'lib/paypal/express/request.rb', line 133
def revoke!(reference_id)
params = {
:REFERENCEID => reference_id,
:BillingAgreementStatus => :Canceled
}
response = self.request :BillAgreementUpdate, params
Response.new response
end
|
#setup(payment_requests, return_url, cancel_url, options = {}) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/paypal/express/request.rb', line 7
def setup(payment_requests, return_url, cancel_url, options = {})
params = {
:RETURNURL => return_url,
:CANCELURL => cancel_url
}
if options[:no_shipping]
params[:REQCONFIRMSHIPPING] = 0
params[:NOSHIPPING] = 1
end
{
:solution_type => :SOLUTIONTYPE,
:landing_page => :LANDINGPAGE,
:email => :EMAIL,
:brand => :BRANDNAME,
:locale => :LOCALECODE
}.each do |option_key, param_key|
params[param_key] = options[option_key] if options[option_key]
end
Array(payment_requests).each_with_index do |payment_request, index|
params.merge! payment_request.to_params(index)
end
response = self.request :SetExpressCheckout, params
Response.new response, options
end
|
#subscribe!(token, recurring_profile) ⇒ Object
Recurring Payment Specific
57
58
59
60
61
62
63
64
|
# File 'lib/paypal/express/request.rb', line 57
def subscribe!(token, recurring_profile)
params = {
:TOKEN => token
}
params.merge! recurring_profile.to_params
response = self.request :CreateRecurringPaymentsProfile, params
Response.new response
end
|
#subscription(profile_id) ⇒ Object
66
67
68
69
70
71
72
|
# File 'lib/paypal/express/request.rb', line 66
def subscription(profile_id)
params = {
:PROFILEID => profile_id
}
response = self.request :GetRecurringPaymentsProfileDetails, params
Response.new response
end
|
#suspend!(profile_id, options = {}) ⇒ Object
86
87
88
|
# File 'lib/paypal/express/request.rb', line 86
def suspend!(profile_id, options = {})
renew!(profile_id, :Suspend, options)
end
|
#transaction_details(transaction_id) ⇒ Object
37
38
39
40
|
# File 'lib/paypal/express/request.rb', line 37
def transaction_details(transaction_id)
response = self.request :GetTransactionDetails, {:TRANSACTIONID=> transaction_id}
Response.new response
end
|