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
-
#capture!(authorization_id, amount, currency_code, complete_type = 'Complete') ⇒ 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
-
#void!(authorization_id, params = {}) ⇒ 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
124
125
126
127
128
129
130
131
|
# File 'lib/paypal/express/request.rb', line 124
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
133
134
135
136
137
|
# File 'lib/paypal/express/request.rb', line 133
def agreement(reference_id)
params = { REFERENCEID: reference_id }
response = self.request :BillAgreementUpdate, params
Response.new response
end
|
#cancel!(profile_id, options = {}) ⇒ Object
113
114
115
|
# File 'lib/paypal/express/request.rb', line 113
def cancel!(profile_id, options = {})
renew!(profile_id, :Cancel, options)
end
|
#capture!(authorization_id, amount, currency_code, complete_type = 'Complete') ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/paypal/express/request.rb', line 60
def capture!(authorization_id, amount, currency_code, complete_type = 'Complete')
params = {
:AUTHORIZATIONID => authorization_id,
:COMPLETETYPE => complete_type,
:AMT => amount,
:CURRENCYCODE => currency_code
}
response = self.request :DoCapture, params
Response.new response
end
|
#charge!(reference_id, amount, options = {}) ⇒ Object
139
140
141
142
143
144
145
146
147
148
149
150
|
# File 'lib/paypal/express/request.rb', line 139
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
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/paypal/express/request.rb', line 48
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
38
39
40
41
|
# File 'lib/paypal/express/request.rb', line 38
def details(token)
response = self.request :GetExpressCheckoutDetails, { TOKEN: token }
Response.new response
end
|
#reactivate!(profile_id, options = {}) ⇒ Object
117
118
119
|
# File 'lib/paypal/express/request.rb', line 117
def reactivate!(profile_id, options = {})
renew!(profile_id, :Reactivate, options)
end
|
#refund!(transaction_id, options = {}) ⇒ Object
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
# File 'lib/paypal/express/request.rb', line 164
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
97
98
99
100
101
102
103
104
105
106
107
|
# File 'lib/paypal/express/request.rb', line 97
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
152
153
154
155
156
157
158
159
|
# File 'lib/paypal/express/request.rb', line 152
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
31
32
33
34
35
36
|
# 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
params[:ALLOWNOTE] = 0 if options[:allow_note] == false
{
:solution_type => :SOLUTIONTYPE,
:landing_page => :LANDINGPAGE,
:email => :EMAIL,
:brand => :BRANDNAME,
:locale => :LOCALECODE,
:logo => :LOGOIMG,
:cart_border_color => :CARTBORDERCOLOR,
:payflow_color => :PAYFLOWCOLOR
}.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
84
85
86
87
88
89
|
# File 'lib/paypal/express/request.rb', line 84
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
91
92
93
94
95
|
# File 'lib/paypal/express/request.rb', line 91
def subscription(profile_id)
params = { PROFILEID: profile_id }
response = self.request :GetRecurringPaymentsProfileDetails, params
Response.new response
end
|
#suspend!(profile_id, options = {}) ⇒ Object
109
110
111
|
# File 'lib/paypal/express/request.rb', line 109
def suspend!(profile_id, options = {})
renew!(profile_id, :Suspend, options)
end
|
#transaction_details(transaction_id) ⇒ Object
43
44
45
46
|
# File 'lib/paypal/express/request.rb', line 43
def transaction_details(transaction_id)
response = self.request :GetTransactionDetails, {:TRANSACTIONID=> transaction_id}
Response.new response
end
|
#void!(authorization_id, params = {}) ⇒ Object
72
73
74
75
76
77
78
79
80
|
# File 'lib/paypal/express/request.rb', line 72
def void!(authorization_id, params={})
params = {
:AUTHORIZATIONID => authorization_id,
:NOTE => params[:note]
}
response = self.request :DoVoid, params
Response.new response
end
|