processout 2.11.0 → 2.14.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/lib/processout.rb +12 -6
- data/lib/processout/activity.rb +14 -0
- data/lib/processout/addon.rb +21 -0
- data/lib/processout/api_request.rb +21 -0
- data/lib/processout/api_version.rb +10 -0
- data/lib/processout/card.rb +79 -0
- data/lib/processout/card_information.rb +14 -0
- data/lib/processout/coupon.rb +20 -0
- data/lib/processout/customer.rb +62 -24
- data/lib/processout/customer_action.rb +9 -0
- data/lib/processout/discount.rb +21 -0
- data/lib/processout/dunning_action.rb +9 -0
- data/lib/processout/event.rb +14 -31
- data/lib/processout/gateway.rb +18 -0
- data/lib/processout/gateway_configuration.rb +19 -1
- data/lib/processout/invoice.rb +136 -1
- data/lib/processout/invoice_detail.rb +22 -0
- data/lib/processout/invoice_device.rb +20 -0
- data/lib/processout/invoice_external_fraud_tools.rb +70 -0
- data/lib/processout/invoice_risk.rb +9 -0
- data/lib/processout/invoice_shipping.rb +19 -0
- data/lib/processout/networking/request.rb +1 -1
- data/lib/processout/payment_data_network_authentication.rb +8 -0
- data/lib/processout/payment_data_three_ds_authentication.rb +8 -0
- data/lib/processout/payment_data_three_ds_request.rb +11 -0
- data/lib/processout/payout.rb +27 -0
- data/lib/processout/payout_item.rb +20 -0
- data/lib/processout/plan.rb +21 -0
- data/lib/processout/product.rb +19 -0
- data/lib/processout/project.rb +18 -27
- data/lib/processout/refund.rb +17 -0
- data/lib/processout/subscription.rb +42 -0
- data/lib/processout/three_ds.rb +103 -0
- data/lib/processout/token.rb +138 -22
- data/lib/processout/transaction.rb +113 -0
- data/lib/processout/transaction_operation.rb +94 -0
- data/lib/processout/version.rb +1 -1
- data/lib/processout/webhook.rb +21 -0
- data/lib/processout/webhook_endpoint.rb +14 -0
- metadata +5 -5
- data/lib/processout/authorization_request.rb +0 -320
@@ -1,6 +1,7 @@
|
|
1
1
|
# The content of this file was automatically generated
|
2
2
|
|
3
3
|
require "cgi"
|
4
|
+
require "json"
|
4
5
|
require "processout/networking/request"
|
5
6
|
require "processout/networking/response"
|
6
7
|
|
@@ -37,6 +38,14 @@ module ProcessOut
|
|
37
38
|
CustomerAction.new(@client, data)
|
38
39
|
end
|
39
40
|
|
41
|
+
# Overrides the JSON marshaller to only send the fields we want
|
42
|
+
def to_json(options)
|
43
|
+
{
|
44
|
+
"type": self.type,
|
45
|
+
"value": self.value,
|
46
|
+
}.to_json
|
47
|
+
end
|
48
|
+
|
40
49
|
# Fills the object with data coming from the API
|
41
50
|
# Params:
|
42
51
|
# +data+:: +Hash+ of data coming from the API
|
data/lib/processout/discount.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# The content of this file was automatically generated
|
2
2
|
|
3
3
|
require "cgi"
|
4
|
+
require "json"
|
4
5
|
require "processout/networking/request"
|
5
6
|
require "processout/networking/response"
|
6
7
|
|
@@ -145,6 +146,26 @@ module ProcessOut
|
|
145
146
|
Discount.new(@client, data)
|
146
147
|
end
|
147
148
|
|
149
|
+
# Overrides the JSON marshaller to only send the fields we want
|
150
|
+
def to_json(options)
|
151
|
+
{
|
152
|
+
"id": self.id,
|
153
|
+
"project": self.project,
|
154
|
+
"project_id": self.project_id,
|
155
|
+
"subscription": self.subscription,
|
156
|
+
"subscription_id": self.subscription_id,
|
157
|
+
"coupon": self.coupon,
|
158
|
+
"coupon_id": self.coupon_id,
|
159
|
+
"name": self.name,
|
160
|
+
"amount": self.amount,
|
161
|
+
"percent": self.percent,
|
162
|
+
"expires_at": self.expires_at,
|
163
|
+
"metadata": self.metadata,
|
164
|
+
"sandbox": self.sandbox,
|
165
|
+
"created_at": self.created_at,
|
166
|
+
}.to_json
|
167
|
+
end
|
168
|
+
|
148
169
|
# Fills the object with data coming from the API
|
149
170
|
# Params:
|
150
171
|
# +data+:: +Hash+ of data coming from the API
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# The content of this file was automatically generated
|
2
2
|
|
3
3
|
require "cgi"
|
4
|
+
require "json"
|
4
5
|
require "processout/networking/request"
|
5
6
|
require "processout/networking/response"
|
6
7
|
|
@@ -37,6 +38,14 @@ module ProcessOut
|
|
37
38
|
DunningAction.new(@client, data)
|
38
39
|
end
|
39
40
|
|
41
|
+
# Overrides the JSON marshaller to only send the fields we want
|
42
|
+
def to_json(options)
|
43
|
+
{
|
44
|
+
"action": self.action,
|
45
|
+
"delay_in_days": self.delay_in_days,
|
46
|
+
}.to_json
|
47
|
+
end
|
48
|
+
|
40
49
|
# Fills the object with data coming from the API
|
41
50
|
# Params:
|
42
51
|
# +data+:: +Hash+ of data coming from the API
|
data/lib/processout/event.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# The content of this file was automatically generated
|
2
2
|
|
3
3
|
require "cgi"
|
4
|
+
require "json"
|
4
5
|
require "processout/networking/request"
|
5
6
|
require "processout/networking/response"
|
6
7
|
|
@@ -80,6 +81,19 @@ module ProcessOut
|
|
80
81
|
Event.new(@client, data)
|
81
82
|
end
|
82
83
|
|
84
|
+
# Overrides the JSON marshaller to only send the fields we want
|
85
|
+
def to_json(options)
|
86
|
+
{
|
87
|
+
"id": self.id,
|
88
|
+
"project": self.project,
|
89
|
+
"project_id": self.project_id,
|
90
|
+
"name": self.name,
|
91
|
+
"data": self.data,
|
92
|
+
"sandbox": self.sandbox,
|
93
|
+
"fired_at": self.fired_at,
|
94
|
+
}.to_json
|
95
|
+
end
|
96
|
+
|
83
97
|
# Fills the object with data coming from the API
|
84
98
|
# Params:
|
85
99
|
# +data+:: +Hash+ of data coming from the API
|
@@ -215,37 +229,6 @@ module ProcessOut
|
|
215
229
|
|
216
230
|
|
217
231
|
|
218
|
-
return_values[0]
|
219
|
-
end
|
220
|
-
|
221
|
-
# Find an event by the Resource ID that generated it.
|
222
|
-
# Params:
|
223
|
-
# +resource_id+:: Resource ID
|
224
|
-
# +options+:: +Hash+ of options
|
225
|
-
def find_by_resource_id(resource_id, options = {})
|
226
|
-
self.prefill(options)
|
227
|
-
|
228
|
-
request = Request.new(@client)
|
229
|
-
path = "/events/by_resource_id/" + CGI.escape(resource_id) + ""
|
230
|
-
data = {
|
231
|
-
|
232
|
-
}
|
233
|
-
|
234
|
-
response = Response.new(request.get(path, data, options))
|
235
|
-
return_values = Array.new
|
236
|
-
|
237
|
-
a = Array.new
|
238
|
-
body = response.body
|
239
|
-
for v in body['events']
|
240
|
-
tmp = Event.new(@client)
|
241
|
-
tmp.fill_with_data(v)
|
242
|
-
a.push(tmp)
|
243
|
-
end
|
244
|
-
|
245
|
-
return_values.push(a)
|
246
|
-
|
247
|
-
|
248
|
-
|
249
232
|
return_values[0]
|
250
233
|
end
|
251
234
|
|
data/lib/processout/gateway.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# The content of this file was automatically generated
|
2
2
|
|
3
3
|
require "cgi"
|
4
|
+
require "json"
|
4
5
|
require "processout/networking/request"
|
5
6
|
require "processout/networking/response"
|
6
7
|
|
@@ -91,6 +92,23 @@ module ProcessOut
|
|
91
92
|
Gateway.new(@client, data)
|
92
93
|
end
|
93
94
|
|
95
|
+
# Overrides the JSON marshaller to only send the fields we want
|
96
|
+
def to_json(options)
|
97
|
+
{
|
98
|
+
"id": self.id,
|
99
|
+
"name": self.name,
|
100
|
+
"display_name": self.display_name,
|
101
|
+
"logo_url": self.logo_url,
|
102
|
+
"url": self.url,
|
103
|
+
"flows": self.flows,
|
104
|
+
"tags": self.tags,
|
105
|
+
"can_pull_transactions": self.can_pull_transactions,
|
106
|
+
"can_refund": self.can_refund,
|
107
|
+
"is_oauth_authentication": self.is_oauth_authentication,
|
108
|
+
"description": self.description,
|
109
|
+
}.to_json
|
110
|
+
end
|
111
|
+
|
94
112
|
# Fills the object with data coming from the API
|
95
113
|
# Params:
|
96
114
|
# +data+:: +Hash+ of data coming from the API
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# The content of this file was automatically generated
|
2
2
|
|
3
3
|
require "cgi"
|
4
|
+
require "json"
|
4
5
|
require "processout/networking/request"
|
5
6
|
require "processout/networking/response"
|
6
7
|
|
@@ -115,6 +116,23 @@ module ProcessOut
|
|
115
116
|
GatewayConfiguration.new(@client, data)
|
116
117
|
end
|
117
118
|
|
119
|
+
# Overrides the JSON marshaller to only send the fields we want
|
120
|
+
def to_json(options)
|
121
|
+
{
|
122
|
+
"id": self.id,
|
123
|
+
"project": self.project,
|
124
|
+
"project_id": self.project_id,
|
125
|
+
"gateway": self.gateway,
|
126
|
+
"gateway_id": self.gateway_id,
|
127
|
+
"name": self.name,
|
128
|
+
"default_currency": self.default_currency,
|
129
|
+
"enabled": self.enabled,
|
130
|
+
"public_keys": self.public_keys,
|
131
|
+
"created_at": self.created_at,
|
132
|
+
"enabled_at": self.enabled_at,
|
133
|
+
}.to_json
|
134
|
+
end
|
135
|
+
|
118
136
|
# Fills the object with data coming from the API
|
119
137
|
# Params:
|
120
138
|
# +data+:: +Hash+ of data coming from the API
|
@@ -190,7 +208,7 @@ module ProcessOut
|
|
190
208
|
request = Request.new(@client)
|
191
209
|
path = "/gateway-configurations"
|
192
210
|
data = {
|
193
|
-
|
211
|
+
"expand_merchant_accounts" => options.fetch(:expand_merchant_accounts, nil)
|
194
212
|
}
|
195
213
|
|
196
214
|
response = Response.new(request.get(path, data, options))
|
data/lib/processout/invoice.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# The content of this file was automatically generated
|
2
2
|
|
3
3
|
require "cgi"
|
4
|
+
require "json"
|
4
5
|
require "processout/networking/request"
|
5
6
|
require "processout/networking/response"
|
6
7
|
|
@@ -23,20 +24,27 @@ module ProcessOut
|
|
23
24
|
attr_reader :name
|
24
25
|
attr_reader :amount
|
25
26
|
attr_reader :currency
|
27
|
+
attr_reader :merchant_initiator_type
|
26
28
|
attr_reader :statement_descriptor
|
27
29
|
attr_reader :statement_descriptor_phone
|
28
30
|
attr_reader :statement_descriptor_city
|
29
31
|
attr_reader :statement_descriptor_company
|
30
32
|
attr_reader :statement_descriptor_url
|
31
33
|
attr_reader :metadata
|
34
|
+
attr_reader :gateway_data
|
32
35
|
attr_reader :return_url
|
33
36
|
attr_reader :cancel_url
|
34
37
|
attr_reader :webhook_url
|
38
|
+
attr_reader :require_backend_capture
|
35
39
|
attr_reader :sandbox
|
36
40
|
attr_reader :created_at
|
37
41
|
attr_reader :risk
|
38
42
|
attr_reader :shipping
|
39
43
|
attr_reader :device
|
44
|
+
attr_reader :external_fraud_tools
|
45
|
+
attr_reader :exemption_reason_3ds2
|
46
|
+
attr_reader :sca_exemption_reason
|
47
|
+
attr_reader :challenge_indicator
|
40
48
|
|
41
49
|
|
42
50
|
def id=(val)
|
@@ -179,6 +187,10 @@ module ProcessOut
|
|
179
187
|
@currency = val
|
180
188
|
end
|
181
189
|
|
190
|
+
def merchant_initiator_type=(val)
|
191
|
+
@merchant_initiator_type = val
|
192
|
+
end
|
193
|
+
|
182
194
|
def statement_descriptor=(val)
|
183
195
|
@statement_descriptor = val
|
184
196
|
end
|
@@ -203,6 +215,10 @@ module ProcessOut
|
|
203
215
|
@metadata = val
|
204
216
|
end
|
205
217
|
|
218
|
+
def gateway_data=(val)
|
219
|
+
@gateway_data = val
|
220
|
+
end
|
221
|
+
|
206
222
|
def return_url=(val)
|
207
223
|
@return_url = val
|
208
224
|
end
|
@@ -215,6 +231,10 @@ module ProcessOut
|
|
215
231
|
@webhook_url = val
|
216
232
|
end
|
217
233
|
|
234
|
+
def require_backend_capture=(val)
|
235
|
+
@require_backend_capture = val
|
236
|
+
end
|
237
|
+
|
218
238
|
def sandbox=(val)
|
219
239
|
@sandbox = val
|
220
240
|
end
|
@@ -271,6 +291,34 @@ module ProcessOut
|
|
271
291
|
|
272
292
|
end
|
273
293
|
|
294
|
+
def external_fraud_tools=(val)
|
295
|
+
if val.nil?
|
296
|
+
@external_fraud_tools = val
|
297
|
+
return
|
298
|
+
end
|
299
|
+
|
300
|
+
if val.instance_of? InvoiceExternalFraudTools
|
301
|
+
@external_fraud_tools = val
|
302
|
+
else
|
303
|
+
obj = InvoiceExternalFraudTools.new(@client)
|
304
|
+
obj.fill_with_data(val)
|
305
|
+
@external_fraud_tools = obj
|
306
|
+
end
|
307
|
+
|
308
|
+
end
|
309
|
+
|
310
|
+
def exemption_reason_3ds2=(val)
|
311
|
+
@exemption_reason_3ds2 = val
|
312
|
+
end
|
313
|
+
|
314
|
+
def sca_exemption_reason=(val)
|
315
|
+
@sca_exemption_reason = val
|
316
|
+
end
|
317
|
+
|
318
|
+
def challenge_indicator=(val)
|
319
|
+
@challenge_indicator = val
|
320
|
+
end
|
321
|
+
|
274
322
|
|
275
323
|
# Initializes the Invoice object
|
276
324
|
# Params:
|
@@ -295,20 +343,27 @@ module ProcessOut
|
|
295
343
|
self.name = data.fetch(:name, nil)
|
296
344
|
self.amount = data.fetch(:amount, nil)
|
297
345
|
self.currency = data.fetch(:currency, nil)
|
346
|
+
self.merchant_initiator_type = data.fetch(:merchant_initiator_type, nil)
|
298
347
|
self.statement_descriptor = data.fetch(:statement_descriptor, nil)
|
299
348
|
self.statement_descriptor_phone = data.fetch(:statement_descriptor_phone, nil)
|
300
349
|
self.statement_descriptor_city = data.fetch(:statement_descriptor_city, nil)
|
301
350
|
self.statement_descriptor_company = data.fetch(:statement_descriptor_company, nil)
|
302
351
|
self.statement_descriptor_url = data.fetch(:statement_descriptor_url, nil)
|
303
352
|
self.metadata = data.fetch(:metadata, nil)
|
353
|
+
self.gateway_data = data.fetch(:gateway_data, nil)
|
304
354
|
self.return_url = data.fetch(:return_url, nil)
|
305
355
|
self.cancel_url = data.fetch(:cancel_url, nil)
|
306
356
|
self.webhook_url = data.fetch(:webhook_url, nil)
|
357
|
+
self.require_backend_capture = data.fetch(:require_backend_capture, nil)
|
307
358
|
self.sandbox = data.fetch(:sandbox, nil)
|
308
359
|
self.created_at = data.fetch(:created_at, nil)
|
309
360
|
self.risk = data.fetch(:risk, nil)
|
310
361
|
self.shipping = data.fetch(:shipping, nil)
|
311
362
|
self.device = data.fetch(:device, nil)
|
363
|
+
self.external_fraud_tools = data.fetch(:external_fraud_tools, nil)
|
364
|
+
self.exemption_reason_3ds2 = data.fetch(:exemption_reason_3ds2, nil)
|
365
|
+
self.sca_exemption_reason = data.fetch(:sca_exemption_reason, nil)
|
366
|
+
self.challenge_indicator = data.fetch(:challenge_indicator, nil)
|
312
367
|
|
313
368
|
end
|
314
369
|
|
@@ -317,6 +372,49 @@ module ProcessOut
|
|
317
372
|
Invoice.new(@client, data)
|
318
373
|
end
|
319
374
|
|
375
|
+
# Overrides the JSON marshaller to only send the fields we want
|
376
|
+
def to_json(options)
|
377
|
+
{
|
378
|
+
"id": self.id,
|
379
|
+
"project": self.project,
|
380
|
+
"project_id": self.project_id,
|
381
|
+
"transaction": self.transaction,
|
382
|
+
"transaction_id": self.transaction_id,
|
383
|
+
"customer": self.customer,
|
384
|
+
"customer_id": self.customer_id,
|
385
|
+
"subscription": self.subscription,
|
386
|
+
"subscription_id": self.subscription_id,
|
387
|
+
"token": self.token,
|
388
|
+
"token_id": self.token_id,
|
389
|
+
"details": self.details,
|
390
|
+
"url": self.url,
|
391
|
+
"name": self.name,
|
392
|
+
"amount": self.amount,
|
393
|
+
"currency": self.currency,
|
394
|
+
"merchant_initiator_type": self.merchant_initiator_type,
|
395
|
+
"statement_descriptor": self.statement_descriptor,
|
396
|
+
"statement_descriptor_phone": self.statement_descriptor_phone,
|
397
|
+
"statement_descriptor_city": self.statement_descriptor_city,
|
398
|
+
"statement_descriptor_company": self.statement_descriptor_company,
|
399
|
+
"statement_descriptor_url": self.statement_descriptor_url,
|
400
|
+
"metadata": self.metadata,
|
401
|
+
"gateway_data": self.gateway_data,
|
402
|
+
"return_url": self.return_url,
|
403
|
+
"cancel_url": self.cancel_url,
|
404
|
+
"webhook_url": self.webhook_url,
|
405
|
+
"require_backend_capture": self.require_backend_capture,
|
406
|
+
"sandbox": self.sandbox,
|
407
|
+
"created_at": self.created_at,
|
408
|
+
"risk": self.risk,
|
409
|
+
"shipping": self.shipping,
|
410
|
+
"device": self.device,
|
411
|
+
"external_fraud_tools": self.external_fraud_tools,
|
412
|
+
"exemption_reason_3ds2": self.exemption_reason_3ds2,
|
413
|
+
"sca_exemption_reason": self.sca_exemption_reason,
|
414
|
+
"challenge_indicator": self.challenge_indicator,
|
415
|
+
}.to_json
|
416
|
+
end
|
417
|
+
|
320
418
|
# Fills the object with data coming from the API
|
321
419
|
# Params:
|
322
420
|
# +data+:: +Hash+ of data coming from the API
|
@@ -372,6 +470,9 @@ module ProcessOut
|
|
372
470
|
if data.include? "currency"
|
373
471
|
self.currency = data["currency"]
|
374
472
|
end
|
473
|
+
if data.include? "merchant_initiator_type"
|
474
|
+
self.merchant_initiator_type = data["merchant_initiator_type"]
|
475
|
+
end
|
375
476
|
if data.include? "statement_descriptor"
|
376
477
|
self.statement_descriptor = data["statement_descriptor"]
|
377
478
|
end
|
@@ -390,6 +491,9 @@ module ProcessOut
|
|
390
491
|
if data.include? "metadata"
|
391
492
|
self.metadata = data["metadata"]
|
392
493
|
end
|
494
|
+
if data.include? "gateway_data"
|
495
|
+
self.gateway_data = data["gateway_data"]
|
496
|
+
end
|
393
497
|
if data.include? "return_url"
|
394
498
|
self.return_url = data["return_url"]
|
395
499
|
end
|
@@ -399,6 +503,9 @@ module ProcessOut
|
|
399
503
|
if data.include? "webhook_url"
|
400
504
|
self.webhook_url = data["webhook_url"]
|
401
505
|
end
|
506
|
+
if data.include? "require_backend_capture"
|
507
|
+
self.require_backend_capture = data["require_backend_capture"]
|
508
|
+
end
|
402
509
|
if data.include? "sandbox"
|
403
510
|
self.sandbox = data["sandbox"]
|
404
511
|
end
|
@@ -414,6 +521,18 @@ module ProcessOut
|
|
414
521
|
if data.include? "device"
|
415
522
|
self.device = data["device"]
|
416
523
|
end
|
524
|
+
if data.include? "external_fraud_tools"
|
525
|
+
self.external_fraud_tools = data["external_fraud_tools"]
|
526
|
+
end
|
527
|
+
if data.include? "exemption_reason_3ds2"
|
528
|
+
self.exemption_reason_3ds2 = data["exemption_reason_3ds2"]
|
529
|
+
end
|
530
|
+
if data.include? "sca_exemption_reason"
|
531
|
+
self.sca_exemption_reason = data["sca_exemption_reason"]
|
532
|
+
end
|
533
|
+
if data.include? "challenge_indicator"
|
534
|
+
self.challenge_indicator = data["challenge_indicator"]
|
535
|
+
end
|
417
536
|
|
418
537
|
self
|
419
538
|
end
|
@@ -441,20 +560,27 @@ module ProcessOut
|
|
441
560
|
self.name = data.fetch(:name, self.name)
|
442
561
|
self.amount = data.fetch(:amount, self.amount)
|
443
562
|
self.currency = data.fetch(:currency, self.currency)
|
563
|
+
self.merchant_initiator_type = data.fetch(:merchant_initiator_type, self.merchant_initiator_type)
|
444
564
|
self.statement_descriptor = data.fetch(:statement_descriptor, self.statement_descriptor)
|
445
565
|
self.statement_descriptor_phone = data.fetch(:statement_descriptor_phone, self.statement_descriptor_phone)
|
446
566
|
self.statement_descriptor_city = data.fetch(:statement_descriptor_city, self.statement_descriptor_city)
|
447
567
|
self.statement_descriptor_company = data.fetch(:statement_descriptor_company, self.statement_descriptor_company)
|
448
568
|
self.statement_descriptor_url = data.fetch(:statement_descriptor_url, self.statement_descriptor_url)
|
449
569
|
self.metadata = data.fetch(:metadata, self.metadata)
|
570
|
+
self.gateway_data = data.fetch(:gateway_data, self.gateway_data)
|
450
571
|
self.return_url = data.fetch(:return_url, self.return_url)
|
451
572
|
self.cancel_url = data.fetch(:cancel_url, self.cancel_url)
|
452
573
|
self.webhook_url = data.fetch(:webhook_url, self.webhook_url)
|
574
|
+
self.require_backend_capture = data.fetch(:require_backend_capture, self.require_backend_capture)
|
453
575
|
self.sandbox = data.fetch(:sandbox, self.sandbox)
|
454
576
|
self.created_at = data.fetch(:created_at, self.created_at)
|
455
577
|
self.risk = data.fetch(:risk, self.risk)
|
456
578
|
self.shipping = data.fetch(:shipping, self.shipping)
|
457
579
|
self.device = data.fetch(:device, self.device)
|
580
|
+
self.external_fraud_tools = data.fetch(:external_fraud_tools, self.external_fraud_tools)
|
581
|
+
self.exemption_reason_3ds2 = data.fetch(:exemption_reason_3ds2, self.exemption_reason_3ds2)
|
582
|
+
self.sca_exemption_reason = data.fetch(:sca_exemption_reason, self.sca_exemption_reason)
|
583
|
+
self.challenge_indicator = data.fetch(:challenge_indicator, self.challenge_indicator)
|
458
584
|
|
459
585
|
self
|
460
586
|
end
|
@@ -469,6 +595,7 @@ module ProcessOut
|
|
469
595
|
request = Request.new(@client)
|
470
596
|
path = "/invoices/" + CGI.escape(@id) + "/authorize"
|
471
597
|
data = {
|
598
|
+
"device" => @device,
|
472
599
|
"synchronous" => options.fetch(:synchronous, nil),
|
473
600
|
"retry_drop_liability_shift" => options.fetch(:retry_drop_liability_shift, nil),
|
474
601
|
"capture_amount" => options.fetch(:capture_amount, nil),
|
@@ -499,6 +626,7 @@ module ProcessOut
|
|
499
626
|
request = Request.new(@client)
|
500
627
|
path = "/invoices/" + CGI.escape(@id) + "/capture"
|
501
628
|
data = {
|
629
|
+
"device" => @device,
|
502
630
|
"authorize_only" => options.fetch(:authorize_only, nil),
|
503
631
|
"synchronous" => options.fetch(:synchronous, nil),
|
504
632
|
"retry_drop_liability_shift" => options.fetch(:retry_drop_liability_shift, nil),
|
@@ -688,6 +816,11 @@ module ProcessOut
|
|
688
816
|
"currency" => @currency,
|
689
817
|
"metadata" => @metadata,
|
690
818
|
"details" => @details,
|
819
|
+
"exemption_reason_3ds2" => @exemption_reason_3ds2,
|
820
|
+
"sca_exemption_reason" => @sca_exemption_reason,
|
821
|
+
"challenge_indicator" => @challenge_indicator,
|
822
|
+
"gateway_data" => @gateway_data,
|
823
|
+
"merchant_initiator_type" => @merchant_initiator_type,
|
691
824
|
"statement_descriptor" => @statement_descriptor,
|
692
825
|
"statement_descriptor_phone" => @statement_descriptor_phone,
|
693
826
|
"statement_descriptor_city" => @statement_descriptor_city,
|
@@ -698,7 +831,9 @@ module ProcessOut
|
|
698
831
|
"webhook_url" => @webhook_url,
|
699
832
|
"risk" => @risk,
|
700
833
|
"shipping" => @shipping,
|
701
|
-
"device" => @device
|
834
|
+
"device" => @device,
|
835
|
+
"require_backend_capture" => @require_backend_capture,
|
836
|
+
"external_fraud_tools" => @external_fraud_tools
|
702
837
|
}
|
703
838
|
|
704
839
|
response = Response.new(request.post(path, data, options))
|