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
|
|
@@ -115,6 +116,27 @@ module ProcessOut
|
|
115
116
|
InvoiceDetail.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
|
+
"name": self.name,
|
123
|
+
"type": self.type,
|
124
|
+
"amount": self.amount,
|
125
|
+
"quantity": self.quantity,
|
126
|
+
"metadata": self.metadata,
|
127
|
+
"reference": self.reference,
|
128
|
+
"description": self.description,
|
129
|
+
"brand": self.brand,
|
130
|
+
"model": self.model,
|
131
|
+
"discount_amount": self.discount_amount,
|
132
|
+
"condition": self.condition,
|
133
|
+
"marketplace_merchant": self.marketplace_merchant,
|
134
|
+
"marketplace_merchant_is_business": self.marketplace_merchant_is_business,
|
135
|
+
"marketplace_merchant_created_at": self.marketplace_merchant_created_at,
|
136
|
+
"category": self.category,
|
137
|
+
}.to_json
|
138
|
+
end
|
139
|
+
|
118
140
|
# Fills the object with data coming from the API
|
119
141
|
# Params:
|
120
142
|
# +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
|
|
@@ -9,6 +10,7 @@ module ProcessOut
|
|
9
10
|
|
10
11
|
attr_reader :channel
|
11
12
|
attr_reader :ip_address
|
13
|
+
attr_reader :id
|
12
14
|
|
13
15
|
|
14
16
|
def channel=(val)
|
@@ -19,6 +21,10 @@ module ProcessOut
|
|
19
21
|
@ip_address = val
|
20
22
|
end
|
21
23
|
|
24
|
+
def id=(val)
|
25
|
+
@id = val
|
26
|
+
end
|
27
|
+
|
22
28
|
|
23
29
|
# Initializes the InvoiceDevice object
|
24
30
|
# Params:
|
@@ -29,6 +35,7 @@ module ProcessOut
|
|
29
35
|
|
30
36
|
self.channel = data.fetch(:channel, nil)
|
31
37
|
self.ip_address = data.fetch(:ip_address, nil)
|
38
|
+
self.id = data.fetch(:id, nil)
|
32
39
|
|
33
40
|
end
|
34
41
|
|
@@ -37,6 +44,15 @@ module ProcessOut
|
|
37
44
|
InvoiceDevice.new(@client, data)
|
38
45
|
end
|
39
46
|
|
47
|
+
# Overrides the JSON marshaller to only send the fields we want
|
48
|
+
def to_json(options)
|
49
|
+
{
|
50
|
+
"channel": self.channel,
|
51
|
+
"ip_address": self.ip_address,
|
52
|
+
"id": self.id,
|
53
|
+
}.to_json
|
54
|
+
end
|
55
|
+
|
40
56
|
# Fills the object with data coming from the API
|
41
57
|
# Params:
|
42
58
|
# +data+:: +Hash+ of data coming from the API
|
@@ -50,6 +66,9 @@ module ProcessOut
|
|
50
66
|
if data.include? "ip_address"
|
51
67
|
self.ip_address = data["ip_address"]
|
52
68
|
end
|
69
|
+
if data.include? "id"
|
70
|
+
self.id = data["id"]
|
71
|
+
end
|
53
72
|
|
54
73
|
self
|
55
74
|
end
|
@@ -63,6 +82,7 @@ module ProcessOut
|
|
63
82
|
end
|
64
83
|
self.channel = data.fetch(:channel, self.channel)
|
65
84
|
self.ip_address = data.fetch(:ip_address, self.ip_address)
|
85
|
+
self.id = data.fetch(:id, self.id)
|
66
86
|
|
67
87
|
self
|
68
88
|
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# The content of this file was automatically generated
|
2
|
+
|
3
|
+
require "cgi"
|
4
|
+
require "json"
|
5
|
+
require "processout/networking/request"
|
6
|
+
require "processout/networking/response"
|
7
|
+
|
8
|
+
module ProcessOut
|
9
|
+
class InvoiceExternalFraudTools
|
10
|
+
|
11
|
+
attr_reader :forter
|
12
|
+
|
13
|
+
|
14
|
+
def forter=(val)
|
15
|
+
@forter = val
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
# Initializes the InvoiceExternalFraudTools object
|
20
|
+
# Params:
|
21
|
+
# +client+:: +ProcessOut+ client instance
|
22
|
+
# +data+:: data that can be used to fill the object
|
23
|
+
def initialize(client, data = {})
|
24
|
+
@client = client
|
25
|
+
|
26
|
+
self.forter = data.fetch(:forter, nil)
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
# Create a new InvoiceExternalFraudTools using the current client
|
31
|
+
def new(data = {})
|
32
|
+
InvoiceExternalFraudTools.new(@client, data)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Overrides the JSON marshaller to only send the fields we want
|
36
|
+
def to_json(options)
|
37
|
+
{
|
38
|
+
"forter": self.forter,
|
39
|
+
}.to_json
|
40
|
+
end
|
41
|
+
|
42
|
+
# Fills the object with data coming from the API
|
43
|
+
# Params:
|
44
|
+
# +data+:: +Hash+ of data coming from the API
|
45
|
+
def fill_with_data(data)
|
46
|
+
if data.nil?
|
47
|
+
return self
|
48
|
+
end
|
49
|
+
if data.include? "forter"
|
50
|
+
self.forter = data["forter"]
|
51
|
+
end
|
52
|
+
|
53
|
+
self
|
54
|
+
end
|
55
|
+
|
56
|
+
# Prefills the object with the data passed as parameters
|
57
|
+
# Params:
|
58
|
+
# +data+:: +Hash+ of data
|
59
|
+
def prefill(data)
|
60
|
+
if data.nil?
|
61
|
+
return self
|
62
|
+
end
|
63
|
+
self.forter = data.fetch(:forter, self.forter)
|
64
|
+
|
65
|
+
self
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
@@ -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
|
InvoiceRisk.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
|
+
"score": self.score,
|
45
|
+
"is_legit": self.is_legit,
|
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
|
@@ -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
|
|
@@ -97,6 +98,24 @@ module ProcessOut
|
|
97
98
|
InvoiceShipping.new(@client, data)
|
98
99
|
end
|
99
100
|
|
101
|
+
# Overrides the JSON marshaller to only send the fields we want
|
102
|
+
def to_json(options)
|
103
|
+
{
|
104
|
+
"amount": self.amount,
|
105
|
+
"method": self.method,
|
106
|
+
"provider": self.provider,
|
107
|
+
"delay": self.delay,
|
108
|
+
"address1": self.address1,
|
109
|
+
"address2": self.address2,
|
110
|
+
"city": self.city,
|
111
|
+
"state": self.state,
|
112
|
+
"country_code": self.country_code,
|
113
|
+
"zip": self.zip,
|
114
|
+
"phone_number": self.phone_number,
|
115
|
+
"expects_shipping_at": self.expects_shipping_at,
|
116
|
+
}.to_json
|
117
|
+
end
|
118
|
+
|
100
119
|
# Fills the object with data coming from the API
|
101
120
|
# Params:
|
102
121
|
# +data+:: +Hash+ of data coming from the API
|
@@ -13,7 +13,7 @@ module ProcessOut
|
|
13
13
|
req.basic_auth @client.project_id, @client.project_secret
|
14
14
|
req.content_type = "application/json"
|
15
15
|
req["API-Version"] = "1.4.0.0"
|
16
|
-
req["User-Agent"] = "ProcessOut Ruby-Bindings/2.
|
16
|
+
req["User-Agent"] = "ProcessOut Ruby-Bindings/2.14.4"
|
17
17
|
|
18
18
|
unless options.nil?
|
19
19
|
req["Idempotency-Key"] = options.fetch(:idempotency_key, "")
|
@@ -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
|
|
@@ -31,6 +32,13 @@ module ProcessOut
|
|
31
32
|
PaymentDataNetworkAuthentication.new(@client, data)
|
32
33
|
end
|
33
34
|
|
35
|
+
# Overrides the JSON marshaller to only send the fields we want
|
36
|
+
def to_json(options)
|
37
|
+
{
|
38
|
+
"cavv": self.cavv,
|
39
|
+
}.to_json
|
40
|
+
end
|
41
|
+
|
34
42
|
# Fills the object with data coming from the API
|
35
43
|
# Params:
|
36
44
|
# +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
|
|
@@ -31,6 +32,13 @@ module ProcessOut
|
|
31
32
|
PaymentDataThreeDSAuthentication.new(@client, data)
|
32
33
|
end
|
33
34
|
|
35
|
+
# Overrides the JSON marshaller to only send the fields we want
|
36
|
+
def to_json(options)
|
37
|
+
{
|
38
|
+
"XID": self.xid,
|
39
|
+
}.to_json
|
40
|
+
end
|
41
|
+
|
34
42
|
# Fills the object with data coming from the API
|
35
43
|
# Params:
|
36
44
|
# +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
|
|
@@ -49,6 +50,16 @@ module ProcessOut
|
|
49
50
|
PaymentDataThreeDSRequest.new(@client, data)
|
50
51
|
end
|
51
52
|
|
53
|
+
# Overrides the JSON marshaller to only send the fields we want
|
54
|
+
def to_json(options)
|
55
|
+
{
|
56
|
+
"acs_url": self.acs_url,
|
57
|
+
"pareq": self.pareq,
|
58
|
+
"md": self.md,
|
59
|
+
"term_url": self.term_url,
|
60
|
+
}.to_json
|
61
|
+
end
|
62
|
+
|
52
63
|
# Fills the object with data coming from the API
|
53
64
|
# Params:
|
54
65
|
# +data+:: +Hash+ of data coming from the API
|
data/lib/processout/payout.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
|
|
@@ -157,6 +158,32 @@ module ProcessOut
|
|
157
158
|
Payout.new(@client, data)
|
158
159
|
end
|
159
160
|
|
161
|
+
# Overrides the JSON marshaller to only send the fields we want
|
162
|
+
def to_json(options)
|
163
|
+
{
|
164
|
+
"id": self.id,
|
165
|
+
"project": self.project,
|
166
|
+
"project_id": self.project_id,
|
167
|
+
"status": self.status,
|
168
|
+
"amount": self.amount,
|
169
|
+
"currency": self.currency,
|
170
|
+
"metadata": self.metadata,
|
171
|
+
"bank_name": self.bank_name,
|
172
|
+
"bank_summary": self.bank_summary,
|
173
|
+
"sales_transactions": self.sales_transactions,
|
174
|
+
"sales_volume": self.sales_volume,
|
175
|
+
"refunds_transactions": self.refunds_transactions,
|
176
|
+
"refunds_volume": self.refunds_volume,
|
177
|
+
"chargebacks_transactions": self.chargebacks_transactions,
|
178
|
+
"chargebacks_volume": self.chargebacks_volume,
|
179
|
+
"fees": self.fees,
|
180
|
+
"adjustments": self.adjustments,
|
181
|
+
"reserve": self.reserve,
|
182
|
+
"settled_at": self.settled_at,
|
183
|
+
"created_at": self.created_at,
|
184
|
+
}.to_json
|
185
|
+
end
|
186
|
+
|
160
187
|
# Fills the object with data coming from the API
|
161
188
|
# Params:
|
162
189
|
# +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
|
|
@@ -139,6 +140,25 @@ module ProcessOut
|
|
139
140
|
PayoutItem.new(@client, data)
|
140
141
|
end
|
141
142
|
|
143
|
+
# Overrides the JSON marshaller to only send the fields we want
|
144
|
+
def to_json(options)
|
145
|
+
{
|
146
|
+
"id": self.id,
|
147
|
+
"project": self.project,
|
148
|
+
"project_id": self.project_id,
|
149
|
+
"payout": self.payout,
|
150
|
+
"payout_id": self.payout_id,
|
151
|
+
"transaction": self.transaction,
|
152
|
+
"transaction_id": self.transaction_id,
|
153
|
+
"type": self.type,
|
154
|
+
"gateway_resource_id": self.gateway_resource_id,
|
155
|
+
"amount": self.amount,
|
156
|
+
"fees": self.fees,
|
157
|
+
"metadata": self.metadata,
|
158
|
+
"created_at": self.created_at,
|
159
|
+
}.to_json
|
160
|
+
end
|
161
|
+
|
142
162
|
# Fills the object with data coming from the API
|
143
163
|
# Params:
|
144
164
|
# +data+:: +Hash+ of data coming from the API
|
data/lib/processout/plan.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
|
|
@@ -121,6 +122,26 @@ module ProcessOut
|
|
121
122
|
Plan.new(@client, data)
|
122
123
|
end
|
123
124
|
|
125
|
+
# Overrides the JSON marshaller to only send the fields we want
|
126
|
+
def to_json(options)
|
127
|
+
{
|
128
|
+
"id": self.id,
|
129
|
+
"project": self.project,
|
130
|
+
"project_id": self.project_id,
|
131
|
+
"url": self.url,
|
132
|
+
"name": self.name,
|
133
|
+
"amount": self.amount,
|
134
|
+
"currency": self.currency,
|
135
|
+
"metadata": self.metadata,
|
136
|
+
"interval": self.interval,
|
137
|
+
"trial_period": self.trial_period,
|
138
|
+
"return_url": self.return_url,
|
139
|
+
"cancel_url": self.cancel_url,
|
140
|
+
"sandbox": self.sandbox,
|
141
|
+
"created_at": self.created_at,
|
142
|
+
}.to_json
|
143
|
+
end
|
144
|
+
|
124
145
|
# Fills the object with data coming from the API
|
125
146
|
# Params:
|
126
147
|
# +data+:: +Hash+ of data coming from the API
|
data/lib/processout/product.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
|
|
@@ -109,6 +110,24 @@ module ProcessOut
|
|
109
110
|
Product.new(@client, data)
|
110
111
|
end
|
111
112
|
|
113
|
+
# Overrides the JSON marshaller to only send the fields we want
|
114
|
+
def to_json(options)
|
115
|
+
{
|
116
|
+
"id": self.id,
|
117
|
+
"project": self.project,
|
118
|
+
"project_id": self.project_id,
|
119
|
+
"url": self.url,
|
120
|
+
"name": self.name,
|
121
|
+
"amount": self.amount,
|
122
|
+
"currency": self.currency,
|
123
|
+
"metadata": self.metadata,
|
124
|
+
"return_url": self.return_url,
|
125
|
+
"cancel_url": self.cancel_url,
|
126
|
+
"sandbox": self.sandbox,
|
127
|
+
"created_at": self.created_at,
|
128
|
+
}.to_json
|
129
|
+
end
|
130
|
+
|
112
131
|
# Fills the object with data coming from the API
|
113
132
|
# Params:
|
114
133
|
# +data+:: +Hash+ of data coming from the API
|