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
128
129
130
131
132
133
134
135
136
137
|
# File 'lib/paypal/express/request.rb', line 128
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
139
140
141
142
143
144
145
|
# File 'lib/paypal/express/request.rb', line 139
def agreement(reference_id)
params = {
:REFERENCEID => reference_id
}
response = self.request :BillAgreementUpdate, params
Response.new response
end
|
#cancel!(profile_id, options = {}) ⇒ Object
117
118
119
|
# File 'lib/paypal/express/request.rb', line 117
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
147
148
149
150
151
152
153
154
155
156
157
158
|
# File 'lib/paypal/express/request.rb', line 147
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
121
122
123
|
# File 'lib/paypal/express/request.rb', line 121
def reactivate!(profile_id, options = {})
renew!(profile_id, :Reactivate, options)
end
|
#refund!(transaction_id, options = {}) ⇒ Object
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
|
# File 'lib/paypal/express/request.rb', line 172
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
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/paypal/express/request.rb', line 101
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
160
161
162
163
164
165
166
167
|
# File 'lib/paypal/express/request.rb', line 160
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
90
91
|
# 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
93
94
95
96
97
98
99
|
# File 'lib/paypal/express/request.rb', line 93
def subscription(profile_id)
params = {
:PROFILEID => profile_id
}
response = self.request :GetRecurringPaymentsProfileDetails, params
Response.new response
end
|
#suspend!(profile_id, options = {}) ⇒ Object
113
114
115
|
# File 'lib/paypal/express/request.rb', line 113
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
|