fat_zebra 3.2.3 → 3.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fat_zebra/payment_plan.rb +0 -2
- data/lib/fat_zebra/purchase.rb +23 -0
- data/lib/fat_zebra/version.rb +1 -1
- data/spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_1.yml +183 -0
- data/spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_2.yml +183 -0
- data/spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_3.yml +183 -0
- data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_1.yml +109 -0
- data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_2.yml +109 -0
- data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_3.yml +109 -0
- data/spec/cassettes/FatZebra_Purchase/_increment/1_10_1.yml +109 -0
- data/spec/cassettes/FatZebra_Purchase/_increment/1_10_2.yml +109 -0
- data/spec/cassettes/FatZebra_Purchase/_increment/1_10_3.yml +109 -0
- data/spec/cassettes/FatZebra_Purchase/_increment/1_10_4.yml +109 -0
- data/spec/lib/fat_zebra/payment_plan_spec.rb +33 -10
- data/spec/lib/fat_zebra/purchase_spec.rb +18 -0
- metadata +16 -6
@@ -0,0 +1,109 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://gateway.sandbox.fatzebra.com.au/v1.0/purchases
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"amount":10000,"card_holder":"Matthew Savage","card_number":"5123456789012346","card_expiry":"02/2030","cvv":123,"reference":"558867e5b205ddc58db8c30edf5fb7f9","customer_ip":"1.2.3.4","capture":false,"currency":"AUD","test":true}'
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
Authorization:
|
17
|
+
- Basic VEVTVDpURVNU
|
18
|
+
Content-Type:
|
19
|
+
- application/json
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Date:
|
26
|
+
- Tue, 08 Jun 2021 23:45:55 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
Status:
|
34
|
+
- 200 OK
|
35
|
+
Cache-Control:
|
36
|
+
- no-store
|
37
|
+
Strict-Transport-Security:
|
38
|
+
- max-age=31536000; includeSubDomains
|
39
|
+
- max-age=31536000; includeSubDomains
|
40
|
+
X-Request-Version:
|
41
|
+
- 1.21.8
|
42
|
+
Pragma:
|
43
|
+
- no-cache
|
44
|
+
X-Request-Id:
|
45
|
+
- 222f16437f6e911726a3586d
|
46
|
+
X-Runtime:
|
47
|
+
- '0.118003'
|
48
|
+
X-Backend:
|
49
|
+
- gateway
|
50
|
+
body:
|
51
|
+
encoding: UTF-8
|
52
|
+
string: '{"successful":true,"response":{"authorization":"332706","id":"071-P-V9MKMHAL","card_number":"512345XXXXXX2346","card_holder":"Matthew
|
53
|
+
Savage","card_expiry":"2030-02-28","card_token":"ca9op0w3dybutwcfsc8i","card_type":"MasterCard","card_category":"Credit","card_subcategory":"Standard","amount":10000,"decimal_amount":100.0,"successful":true,"message":"Approved","reference":"558867e5b205ddc58db8c30edf5fb7f9","currency":"AUD","transaction_id":"071-P-V9MKMHAL","settlement_date":null,"transaction_date":"2021-06-09T09:45:55+10:00","response_code":"00","captured":false,"captured_amount":0,"rrn":"071PV9MKMHAL","cvv_match":"M","metadata":{"authorization_tracking_id":"","card_sequence_number":"","sca_exemption":"","scheme_token_used":"false","original_transaction_reference":""},"addendum_data":{}},"errors":[],"test":true}'
|
54
|
+
http_version:
|
55
|
+
recorded_at: Tue, 08 Jun 2021 23:45:55 GMT
|
56
|
+
- request:
|
57
|
+
method: put
|
58
|
+
uri: https://gateway.sandbox.fatzebra.com.au/v1.0/purchases/071-P-V9MKMHAL
|
59
|
+
body:
|
60
|
+
encoding: UTF-8
|
61
|
+
string: '{"amount":10200,"test":true}'
|
62
|
+
headers:
|
63
|
+
Accept-Encoding:
|
64
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
65
|
+
Accept:
|
66
|
+
- application/json
|
67
|
+
User-Agent:
|
68
|
+
- Ruby
|
69
|
+
Authorization:
|
70
|
+
- Basic VEVTVDpURVNU
|
71
|
+
Content-Type:
|
72
|
+
- application/json
|
73
|
+
response:
|
74
|
+
status:
|
75
|
+
code: 200
|
76
|
+
message: OK
|
77
|
+
headers:
|
78
|
+
Date:
|
79
|
+
- Tue, 08 Jun 2021 23:45:55 GMT
|
80
|
+
Content-Type:
|
81
|
+
- application/json; charset=utf-8
|
82
|
+
Transfer-Encoding:
|
83
|
+
- chunked
|
84
|
+
Connection:
|
85
|
+
- keep-alive
|
86
|
+
Status:
|
87
|
+
- 200 OK
|
88
|
+
Cache-Control:
|
89
|
+
- no-store
|
90
|
+
Strict-Transport-Security:
|
91
|
+
- max-age=31536000; includeSubDomains
|
92
|
+
- max-age=31536000; includeSubDomains
|
93
|
+
X-Request-Version:
|
94
|
+
- 1.21.8
|
95
|
+
Pragma:
|
96
|
+
- no-cache
|
97
|
+
X-Request-Id:
|
98
|
+
- 6f5813c4661a0151133fe49d
|
99
|
+
X-Runtime:
|
100
|
+
- '0.045495'
|
101
|
+
X-Backend:
|
102
|
+
- gateway
|
103
|
+
body:
|
104
|
+
encoding: UTF-8
|
105
|
+
string: '{"successful":true,"response":{"authorization":"332706","id":"071-P-V9MKMHAL","card_number":"512345XXXXXX2346","card_holder":"Matthew
|
106
|
+
Savage","card_expiry":"2030-02-28","card_token":"ca9op0w3dybutwcfsc8i","card_type":"MasterCard","card_category":"Credit","card_subcategory":"Standard","amount":10200,"decimal_amount":102.0,"successful":true,"message":"Approved","reference":"558867e5b205ddc58db8c30edf5fb7f9","currency":"AUD","transaction_id":"071-P-V9MKMHAL","settlement_date":null,"transaction_date":"2021-06-09T09:45:55+10:00","response_code":"00","captured":false,"captured_amount":0,"rrn":"071PV9MKMHAL","cvv_match":"M","metadata":{"sca_exemption":"","scheme_token_used":"false","card_sequence_number":"","authorization_tracking_id":"","original_transaction_reference":"","original_amount":"10000"},"addendum_data":{}},"errors":[],"test":true}'
|
107
|
+
http_version:
|
108
|
+
recorded_at: Tue, 08 Jun 2021 23:45:55 GMT
|
109
|
+
recorded_with: VCR 3.0.3
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe FatZebra::PaymentPlan do
|
4
4
|
let(:customer) { FatZebra::Customer.create(customer_valid_payload) }
|
5
5
|
|
6
|
-
let(:
|
6
|
+
let(:valid_instalment_payload) {{
|
7
7
|
payment_method: 'Credit Card',
|
8
8
|
customer: customer.id,
|
9
9
|
reference: SecureRandom.hex,
|
@@ -16,22 +16,45 @@ describe FatZebra::PaymentPlan do
|
|
16
16
|
total_amount: 500
|
17
17
|
}}
|
18
18
|
|
19
|
+
let(:valid_subscription_payload) {{
|
20
|
+
payment_method: 'Credit Card',
|
21
|
+
customer: customer.id,
|
22
|
+
reference: SecureRandom.hex,
|
23
|
+
setup_fee: 0,
|
24
|
+
amount: 100,
|
25
|
+
start_date: (Date.today + 90).strftime('%Y-%m-%d'),
|
26
|
+
end_date: (Date.today + 180).strftime('%Y-%m-%d'),
|
27
|
+
frequency: 'Weekly',
|
28
|
+
anniversary: 5,
|
29
|
+
}}
|
30
|
+
|
31
|
+
|
19
32
|
describe '.create', :vcr do
|
20
|
-
subject(:payment_plan) { FatZebra::PaymentPlan.create(
|
33
|
+
subject(:payment_plan) { FatZebra::PaymentPlan.create(valid_instalment_payload) }
|
21
34
|
|
22
35
|
it { is_expected.to be_accepted }
|
23
36
|
it { expect(payment_plan.id).to_not be_empty }
|
24
37
|
it { expect(payment_plan.payments.count).to eq(5) }
|
25
38
|
|
39
|
+
context 'perpetual subscription' do
|
40
|
+
subject(:subscription_payload) { FatZebra::PaymentPlan.create(valid_subscription_payload) }
|
41
|
+
it { is_expected.to be_accepted }
|
42
|
+
it { expect(subscription_payload.id).to_not be_empty }
|
43
|
+
it { expect(subscription_payload.payments.count).to eq(12) }
|
44
|
+
end
|
45
|
+
|
26
46
|
context 'validations' do
|
27
|
-
let(:
|
47
|
+
let(:valid_instalment_payload) {{}}
|
28
48
|
|
29
49
|
it { expect { payment_plan }.to raise_error(FatZebra::RequestValidationError) }
|
50
|
+
|
30
51
|
end
|
52
|
+
|
53
|
+
|
31
54
|
end
|
32
55
|
|
33
56
|
describe '.find', :vcr do
|
34
|
-
let!(:create) { FatZebra::PaymentPlan.create(
|
57
|
+
let!(:create) { FatZebra::PaymentPlan.create(valid_instalment_payload) }
|
35
58
|
subject(:payment_plan) { FatZebra::PaymentPlan.find(create.reference) }
|
36
59
|
|
37
60
|
it { is_expected.to be_accepted }
|
@@ -40,7 +63,7 @@ describe FatZebra::PaymentPlan do
|
|
40
63
|
end
|
41
64
|
|
42
65
|
describe '.update', :vcr do
|
43
|
-
let(:create) { FatZebra::PaymentPlan.create(
|
66
|
+
let(:create) { FatZebra::PaymentPlan.create(valid_instalment_payload) }
|
44
67
|
|
45
68
|
subject(:payment_plan) { FatZebra::PaymentPlan.update(create.id, new_status: 'Suspended') }
|
46
69
|
|
@@ -50,7 +73,7 @@ describe FatZebra::PaymentPlan do
|
|
50
73
|
end
|
51
74
|
|
52
75
|
context '#update', :vcr do
|
53
|
-
let(:payment_plan) { FatZebra::PaymentPlan.new(
|
76
|
+
let(:payment_plan) { FatZebra::PaymentPlan.new(valid_instalment_payload) }
|
54
77
|
before { payment_plan.save }
|
55
78
|
before { payment_plan.update(new_status: 'Suspended') }
|
56
79
|
|
@@ -59,21 +82,21 @@ describe FatZebra::PaymentPlan do
|
|
59
82
|
end
|
60
83
|
|
61
84
|
describe '.delete', :vcr do
|
62
|
-
let(:create) { FatZebra::PaymentPlan.create(
|
85
|
+
let(:create) { FatZebra::PaymentPlan.create(valid_instalment_payload) }
|
63
86
|
subject(:payment_plan) { FatZebra::PaymentPlan.delete(create.id) }
|
64
87
|
|
65
88
|
it { is_expected.to be_accepted }
|
66
89
|
end
|
67
90
|
|
68
91
|
describe '#destroy', :vcr do
|
69
|
-
let(:payment_plan) { FatZebra::PaymentPlan.create(
|
92
|
+
let(:payment_plan) { FatZebra::PaymentPlan.create(valid_instalment_payload) }
|
70
93
|
before { payment_plan.destroy }
|
71
94
|
|
72
95
|
it { expect(payment_plan.status).to eq('Cancelled') }
|
73
96
|
end
|
74
97
|
|
75
98
|
describe '#suspend!', :vcr do
|
76
|
-
let(:payment_plan) { FatZebra::PaymentPlan.new(
|
99
|
+
let(:payment_plan) { FatZebra::PaymentPlan.new(valid_instalment_payload) }
|
77
100
|
before { payment_plan.save }
|
78
101
|
before { payment_plan.suspend! }
|
79
102
|
|
@@ -82,7 +105,7 @@ describe FatZebra::PaymentPlan do
|
|
82
105
|
end
|
83
106
|
|
84
107
|
describe '#active!', :vcr do
|
85
|
-
let(:payment_plan) { FatZebra::PaymentPlan.new(
|
108
|
+
let(:payment_plan) { FatZebra::PaymentPlan.new(valid_instalment_payload) }
|
86
109
|
before { payment_plan.save }
|
87
110
|
before { expect(payment_plan.suspend!.status).to eq('Suspended') }
|
88
111
|
before { payment_plan.active! }
|
@@ -102,4 +102,22 @@ describe FatZebra::Purchase do
|
|
102
102
|
it { expect(settlement.data.first).to be_a(FatZebra::Purchase) }
|
103
103
|
end
|
104
104
|
|
105
|
+
describe '#extend!', :vcr do
|
106
|
+
let(:purchase) { FatZebra::Purchase.create(valid_purchase_payload.merge(capture: false)) }
|
107
|
+
subject(:extend) { purchase.extend! }
|
108
|
+
|
109
|
+
it { is_expected.to be_accepted }
|
110
|
+
it { is_expected.to be_successful }
|
111
|
+
it { expect(extend).to be_a(FatZebra::Purchase) }
|
112
|
+
end
|
113
|
+
|
114
|
+
describe '#increment', :vcr do
|
115
|
+
let(:purchase) { FatZebra::Purchase.create(valid_purchase_payload.merge(capture: false)) }
|
116
|
+
subject(:increment) { purchase.increment!(200) }
|
117
|
+
|
118
|
+
it { is_expected.to be_accepted }
|
119
|
+
it { is_expected.to be_successful }
|
120
|
+
it { expect(increment).to be_a(FatZebra::Purchase) }
|
121
|
+
it { expect(increment.amount).to eq(valid_purchase_payload[:amount] + 200) }
|
122
|
+
end
|
105
123
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fat_zebra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fat Zebra
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -234,6 +234,9 @@ files:
|
|
234
234
|
- spec/cassettes/FatZebra_PaymentPlan/_create/1_1_1.yml
|
235
235
|
- spec/cassettes/FatZebra_PaymentPlan/_create/1_1_2.yml
|
236
236
|
- spec/cassettes/FatZebra_PaymentPlan/_create/1_1_3.yml
|
237
|
+
- spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_1.yml
|
238
|
+
- spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_2.yml
|
239
|
+
- spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_3.yml
|
237
240
|
- spec/cassettes/FatZebra_PaymentPlan/_delete/1_5_1.yml
|
238
241
|
- spec/cassettes/FatZebra_PaymentPlan/_destroy/1_6_1.yml
|
239
242
|
- spec/cassettes/FatZebra_PaymentPlan/_find/1_2_1.yml
|
@@ -278,10 +281,17 @@ files:
|
|
278
281
|
- spec/cassettes/FatZebra_Purchase/_create/1_1_9.yml
|
279
282
|
- spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_1.yml
|
280
283
|
- spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_2.yml
|
284
|
+
- spec/cassettes/FatZebra_Purchase/_extend_/1_9_1.yml
|
285
|
+
- spec/cassettes/FatZebra_Purchase/_extend_/1_9_2.yml
|
286
|
+
- spec/cassettes/FatZebra_Purchase/_extend_/1_9_3.yml
|
281
287
|
- spec/cassettes/FatZebra_Purchase/_find/1_2_1.yml
|
282
288
|
- spec/cassettes/FatZebra_Purchase/_find/1_2_2.yml
|
283
289
|
- spec/cassettes/FatZebra_Purchase/_find/1_2_3.yml
|
284
290
|
- spec/cassettes/FatZebra_Purchase/_find/1_2_4.yml
|
291
|
+
- spec/cassettes/FatZebra_Purchase/_increment/1_10_1.yml
|
292
|
+
- spec/cassettes/FatZebra_Purchase/_increment/1_10_2.yml
|
293
|
+
- spec/cassettes/FatZebra_Purchase/_increment/1_10_3.yml
|
294
|
+
- spec/cassettes/FatZebra_Purchase/_increment/1_10_4.yml
|
285
295
|
- spec/cassettes/FatZebra_Purchase/_refund/1_4_1.yml
|
286
296
|
- spec/cassettes/FatZebra_Purchase/_refund/1_4_2.yml
|
287
297
|
- spec/cassettes/FatZebra_Purchase/_refund/1_4_3.yml
|
@@ -355,7 +365,7 @@ files:
|
|
355
365
|
homepage: ''
|
356
366
|
licenses: []
|
357
367
|
metadata: {}
|
358
|
-
post_install_message:
|
368
|
+
post_install_message:
|
359
369
|
rdoc_options: []
|
360
370
|
require_paths:
|
361
371
|
- lib
|
@@ -370,8 +380,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
370
380
|
- !ruby/object:Gem::Version
|
371
381
|
version: '0'
|
372
382
|
requirements: []
|
373
|
-
rubygems_version: 3.1.
|
374
|
-
signing_key:
|
383
|
+
rubygems_version: 3.1.6
|
384
|
+
signing_key:
|
375
385
|
specification_version: 4
|
376
386
|
summary: Fat Zebra payments gem - integrate your ruby app with Fat Zebra
|
377
387
|
test_files: []
|