fat_zebra 3.1.0 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +1 -1
- data/lib/fat_zebra.rb +1 -0
- data/lib/fat_zebra/authorise.rb +49 -0
- data/lib/fat_zebra/version.rb +1 -1
- data/spec/cassettes/FatZebra_Authorise/_authorise/with_challenge_response/1_2_3_1.yml +48 -0
- data/spec/cassettes/FatZebra_Authorise/_authorise/with_challenge_response/1_2_3_2.yml +48 -0
- data/spec/cassettes/FatZebra_Authorise/_authorise/with_frictionless_response/1_2_2_1.yml +48 -0
- data/spec/cassettes/FatZebra_Authorise/_authorise/with_frictionless_response/1_2_2_2.yml +48 -0
- data/spec/cassettes/FatZebra_Authorise/_authorise/with_invalid_input/1_2_1_1.yml +50 -0
- data/spec/cassettes/FatZebra_Authorise/_jwt_token/returns_JWT_with_given_params.yml +46 -0
- data/spec/cassettes/FatZebra_Authorise/_jwt_token/returns_JWT_with_no_params.yml +46 -0
- data/spec/cassettes/FatZebra_Authorise/_jwt_token/returns_JWT_with_some_params.yml +46 -0
- data/spec/cassettes/FatZebra_BankAccount/_create/1_1_1.yml +8 -14
- data/spec/cassettes/FatZebra_BankAccount/_create/1_1_2.yml +8 -14
- data/spec/cassettes/FatZebra_BankAccount/_search/1_2_1.yml +30 -30
- data/spec/cassettes/FatZebra_BankAccount/_search/1_2_2.yml +30 -30
- data/spec/cassettes/FatZebra_BankAccount/_search/1_2_3.yml +30 -30
- data/spec/cassettes/FatZebra_Batch/_create/with_file/1_1_1_1.yml +11 -17
- data/spec/cassettes/FatZebra_Batch/_create/with_file/1_1_1_2.yml +11 -17
- data/spec/cassettes/FatZebra_Batch/_create/with_path/1_1_2_1.yml +11 -17
- data/spec/cassettes/FatZebra_Batch/_create/with_path/1_1_2_2.yml +11 -17
- data/spec/cassettes/FatZebra_Batch/_find/1_2_1.yml +19 -31
- data/spec/cassettes/FatZebra_Batch/_find/1_2_2.yml +19 -31
- data/spec/cassettes/FatZebra_Batch/_result/1_4_1.yml +26 -44
- data/spec/cassettes/FatZebra_Batch/_search/1_3_1.yml +6 -6
- data/spec/cassettes/FatZebra_Batch/_search/1_3_2.yml +6 -6
- data/spec/cassettes/FatZebra_Batch/_search/1_3_3.yml +6 -6
- data/spec/cassettes/FatZebra_Card/_create/1_1_1.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_create/1_1_2.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_create/1_1_3.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_create/1_1_4.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_create/1_1_5.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_create/1_1_6.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_update/1_2_1.yml +15 -27
- data/spec/cassettes/FatZebra_Card/_update/1_2_2.yml +15 -27
- data/spec/cassettes/FatZebra_Card/_update/1_2_3.yml +15 -27
- data/spec/cassettes/FatZebra_Card/_update/validations/1_2_4_1.yml +7 -13
- data/spec/cassettes/FatZebra_Customer/_create/1_1_1.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_create/1_1_2.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_create/1_1_3.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_create/1_1_4.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_create/1_1_5.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_create/1_1_6.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_delete/1_5_1.yml +18 -30
- data/spec/cassettes/FatZebra_Customer/_find/1_3_1.yml +18 -30
- data/spec/cassettes/FatZebra_Customer/_find/1_3_2.yml +18 -30
- data/spec/cassettes/FatZebra_Customer/_search/1_2_1.yml +12 -16
- data/spec/cassettes/FatZebra_Customer/_search/1_2_2.yml +12 -16
- data/spec/cassettes/FatZebra_Customer/_search/1_2_3.yml +12 -16
- data/spec/cassettes/FatZebra_Customer/_update/1_4_1.yml +19 -31
- data/spec/cassettes/FatZebra_Customer/_update/1_4_2.yml +19 -31
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_1.yml +8 -14
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_2.yml +8 -14
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_3.yml +8 -14
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_4.yml +8 -14
- data/spec/cassettes/FatZebra_DirectCredit/_create/validations/valid/1_1_5_1_1.yml +7 -13
- data/spec/cassettes/FatZebra_DirectCredit/_delete/1_4_1.yml +16 -28
- data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_1.yml +16 -28
- data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_2.yml +16 -28
- data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_3.yml +13 -13
- data/spec/cassettes/FatZebra_DirectCredit/_search/1_3_1.yml +20 -20
- data/spec/cassettes/FatZebra_DirectCredit/_search/1_3_2.yml +20 -20
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_1.yml +8 -14
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_2.yml +8 -14
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_3.yml +8 -14
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_4.yml +8 -14
- data/spec/cassettes/FatZebra_DirectDebit/_create/validations/valid/1_1_5_1_1.yml +7 -13
- data/spec/cassettes/FatZebra_DirectDebit/_delete/1_4_1.yml +16 -28
- data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_1.yml +16 -28
- data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_2.yml +16 -28
- data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_3.yml +13 -13
- data/spec/cassettes/FatZebra_DirectDebit/_search/1_3_1.yml +20 -20
- data/spec/cassettes/FatZebra_DirectDebit/_search/1_3_2.yml +20 -20
- data/spec/cassettes/FatZebra_Information/_ping/1_1_1.yml +7 -13
- data/spec/cassettes/FatZebra_Information/_ping/1_1_2.yml +7 -13
- data/spec/cassettes/FatZebra_PaymentPlan/_active_/1_8_1.yml +48 -48
- data/spec/cassettes/FatZebra_PaymentPlan/_active_/1_8_2.yml +48 -48
- data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_1.yml +20 -20
- data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_2.yml +20 -20
- data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_3.yml +20 -20
- data/spec/cassettes/FatZebra_PaymentPlan/_delete/1_5_1.yml +28 -28
- data/spec/cassettes/FatZebra_PaymentPlan/_destroy/1_6_1.yml +28 -28
- data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_1.yml +32 -32
- data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_2.yml +32 -32
- data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_3.yml +32 -32
- data/spec/cassettes/FatZebra_PaymentPlan/_suspend_/1_7_1.yml +34 -34
- data/spec/cassettes/FatZebra_PaymentPlan/_suspend_/1_7_2.yml +34 -34
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_1.yml +28 -28
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_2.yml +28 -28
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_3.yml +28 -28
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_4_1.yml +34 -34
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_4_2.yml +34 -34
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_1.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_10.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_11.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_12.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_13.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_2.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_3.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_4.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_5.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_6.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_7.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_8.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_9.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_1.yml +11 -17
- data/spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_2.yml +11 -17
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_1.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_2.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_3.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_4.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_1.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_2.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_3.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_4.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_1.yml +16 -16
- data/spec/cassettes/FatZebra_Refund/_create/1_1_10.yml +16 -16
- data/spec/cassettes/FatZebra_Refund/_create/1_1_2.yml +16 -16
- data/spec/cassettes/FatZebra_Refund/_create/1_1_3.yml +16 -16
- data/spec/cassettes/FatZebra_Refund/_create/1_1_4.yml +16 -16
- data/spec/cassettes/FatZebra_Refund/_create/1_1_5.yml +16 -16
- data/spec/cassettes/FatZebra_Refund/_create/1_1_6.yml +16 -16
- data/spec/cassettes/FatZebra_Refund/_create/1_1_7.yml +16 -16
- data/spec/cassettes/FatZebra_Refund/_create/1_1_8.yml +16 -16
- data/spec/cassettes/FatZebra_Refund/_create/1_1_9.yml +16 -16
- data/spec/cassettes/FatZebra_Refund/_find/1_2_1.yml +24 -24
- data/spec/cassettes/FatZebra_Refund/_find/1_2_2.yml +24 -24
- data/spec/cassettes/FatZebra_Refund/_find/1_2_3.yml +24 -24
- data/spec/cassettes/FatZebra_Refund/_search/responds_with_the_newly-created_refunds.yml +40 -40
- data/spec/cassettes/FatZebra_Refund/_void/1_4_1.yml +24 -24
- data/spec/cassettes/FatZebra_Refund/_void/1_4_2.yml +24 -24
- data/spec/cassettes/FatZebra_Refund/_void/1_4_3.yml +24 -24
- data/spec/cassettes/FatZebra_Refund/_void/1_4_4.yml +24 -24
- data/spec/cassettes/FatZebra_WebHook/_create/1_1_1.yml +7 -13
- data/spec/cassettes/FatZebra_WebHook/_create/1_1_2.yml +7 -13
- data/spec/cassettes/FatZebra_WebHook/_create/1_1_3.yml +7 -13
- data/spec/cassettes/FatZebra_WebHook/_delete/1_4_1.yml +15 -27
- data/spec/cassettes/FatZebra_WebHook/_search/1_2_1.yml +160 -133
- data/spec/cassettes/FatZebra_WebHook/_search/1_2_2.yml +162 -135
- data/spec/cassettes/FatZebra_WebHook/_update/1_3_1.yml +15 -27
- data/spec/cassettes/FatZebra_WebHook/_update/1_3_2.yml +15 -27
- data/spec/lib/fat_zebra/authorise_spec.rb +101 -0
- data/spec/lib/fat_zebra/purchase_spec.rb +3 -3
- data/spec/lib/fat_zebra/refund_spec.rb +1 -1
- data/spec/support/payloads.rb +42 -0
- metadata +13 -4
- data/spec/cassettes/FatZebra_DirectDebit/_create/validations/failed_with_non-float/1_1_5_3_1.yml +0 -52
@@ -23,7 +23,7 @@ http_interactions:
|
|
23
23
|
message: OK
|
24
24
|
headers:
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Mon, 29 Apr 2019 09:20:37 GMT
|
27
27
|
Content-Type:
|
28
28
|
- application/json; charset=utf-8
|
29
29
|
Transfer-Encoding:
|
@@ -35,30 +35,24 @@ http_interactions:
|
|
35
35
|
Cache-Control:
|
36
36
|
- no-store
|
37
37
|
X-Request-Version:
|
38
|
-
- 1.16.9-
|
38
|
+
- 1.16.9-3941@c1d8236
|
39
|
+
X-Runtime:
|
40
|
+
- '0.032522'
|
39
41
|
Pragma:
|
40
42
|
- no-cache
|
41
|
-
X-Xss-Protection:
|
42
|
-
- 1; mode=block
|
43
43
|
X-Request-Id:
|
44
|
-
-
|
45
|
-
X-Runtime:
|
46
|
-
- '0.027988'
|
47
|
-
X-Frame-Options:
|
48
|
-
- SAMEORIGIN
|
49
|
-
X-Content-Type-Options:
|
50
|
-
- nosniff
|
44
|
+
- 8cb733fcf021fd9072423e58
|
51
45
|
X-Backend:
|
52
46
|
- sbox-priv-gateway-a
|
53
47
|
body:
|
54
48
|
encoding: UTF-8
|
55
49
|
string: '{"successful":true,"response":{"address":"http://stage.example.com.au/v1/api/hook_listener","events":"*","mode":"Test","authentication_username":null,"authentication_password":"","is_active":null,"name":"test
|
56
|
-
hook","id":"071-WH-
|
50
|
+
hook","id":"071-WH-NOQIX4KB"},"errors":[],"test":true}'
|
57
51
|
http_version:
|
58
|
-
recorded_at:
|
52
|
+
recorded_at: Mon, 29 Apr 2019 09:20:37 GMT
|
59
53
|
- request:
|
60
54
|
method: put
|
61
|
-
uri: https://gateway.sandbox.fatzebra.com.au/v1.0/web_hooks/071-WH-
|
55
|
+
uri: https://gateway.sandbox.fatzebra.com.au/v1.0/web_hooks/071-WH-NOQIX4KB
|
62
56
|
body:
|
63
57
|
encoding: UTF-8
|
64
58
|
string: '{"address":"http://stage.example.com.au/v1/api/hook_listener","events":"*","mode":"Test","authentication_username":null,"authentication_password":"","is_active":null,"name":"test
|
@@ -80,7 +74,7 @@ http_interactions:
|
|
80
74
|
message: OK
|
81
75
|
headers:
|
82
76
|
Date:
|
83
|
-
-
|
77
|
+
- Mon, 29 Apr 2019 09:20:37 GMT
|
84
78
|
Content-Type:
|
85
79
|
- application/json; charset=utf-8
|
86
80
|
Transfer-Encoding:
|
@@ -92,25 +86,19 @@ http_interactions:
|
|
92
86
|
Cache-Control:
|
93
87
|
- no-store
|
94
88
|
X-Request-Version:
|
95
|
-
- 1.16.9-
|
89
|
+
- 1.16.9-3941@c1d8236
|
90
|
+
X-Runtime:
|
91
|
+
- '0.031956'
|
96
92
|
Pragma:
|
97
93
|
- no-cache
|
98
|
-
X-Xss-Protection:
|
99
|
-
- 1; mode=block
|
100
94
|
X-Request-Id:
|
101
|
-
-
|
102
|
-
X-Runtime:
|
103
|
-
- '0.029835'
|
104
|
-
X-Frame-Options:
|
105
|
-
- SAMEORIGIN
|
106
|
-
X-Content-Type-Options:
|
107
|
-
- nosniff
|
95
|
+
- 94529f48078709302340b848
|
108
96
|
X-Backend:
|
109
97
|
- sbox-priv-gateway-a
|
110
98
|
body:
|
111
99
|
encoding: UTF-8
|
112
100
|
string: '{"successful":true,"response":{"address":"http://stage.example.com.au/v1/api/hook_listener","events":"*","mode":"Test","authentication_username":null,"authentication_password":"","is_active":null,"name":"New
|
113
|
-
Test hook","id":"071-WH-
|
101
|
+
Test hook","id":"071-WH-NOQIX4KB"},"errors":[],"test":true}'
|
114
102
|
http_version:
|
115
|
-
recorded_at:
|
103
|
+
recorded_at: Mon, 29 Apr 2019 09:20:37 GMT
|
116
104
|
recorded_with: VCR 3.0.3
|
@@ -23,7 +23,7 @@ http_interactions:
|
|
23
23
|
message: OK
|
24
24
|
headers:
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Mon, 29 Apr 2019 09:20:38 GMT
|
27
27
|
Content-Type:
|
28
28
|
- application/json; charset=utf-8
|
29
29
|
Transfer-Encoding:
|
@@ -35,30 +35,24 @@ http_interactions:
|
|
35
35
|
Cache-Control:
|
36
36
|
- no-store
|
37
37
|
X-Request-Version:
|
38
|
-
- 1.16.9-
|
38
|
+
- 1.16.9-3941@c1d8236
|
39
|
+
X-Runtime:
|
40
|
+
- '0.030886'
|
39
41
|
Pragma:
|
40
42
|
- no-cache
|
41
|
-
X-Xss-Protection:
|
42
|
-
- 1; mode=block
|
43
43
|
X-Request-Id:
|
44
|
-
-
|
45
|
-
X-Runtime:
|
46
|
-
- '0.028663'
|
47
|
-
X-Frame-Options:
|
48
|
-
- SAMEORIGIN
|
49
|
-
X-Content-Type-Options:
|
50
|
-
- nosniff
|
44
|
+
- 1d1740ccf6ae9e943b19214c
|
51
45
|
X-Backend:
|
52
46
|
- sbox-priv-gateway-a
|
53
47
|
body:
|
54
48
|
encoding: UTF-8
|
55
49
|
string: '{"successful":true,"response":{"address":"http://stage.example.com.au/v1/api/hook_listener","events":"*","mode":"Test","authentication_username":null,"authentication_password":"","is_active":null,"name":"test
|
56
|
-
hook","id":"071-WH-
|
50
|
+
hook","id":"071-WH-Q5W5NSU9"},"errors":[],"test":true}'
|
57
51
|
http_version:
|
58
|
-
recorded_at:
|
52
|
+
recorded_at: Mon, 29 Apr 2019 09:20:38 GMT
|
59
53
|
- request:
|
60
54
|
method: put
|
61
|
-
uri: https://gateway.sandbox.fatzebra.com.au/v1.0/web_hooks/071-WH-
|
55
|
+
uri: https://gateway.sandbox.fatzebra.com.au/v1.0/web_hooks/071-WH-Q5W5NSU9
|
62
56
|
body:
|
63
57
|
encoding: UTF-8
|
64
58
|
string: '{"address":"http://stage.example.com.au/v1/api/hook_listener","events":"*","mode":"Test","authentication_username":null,"authentication_password":"","is_active":null,"name":"test
|
@@ -80,7 +74,7 @@ http_interactions:
|
|
80
74
|
message: OK
|
81
75
|
headers:
|
82
76
|
Date:
|
83
|
-
-
|
77
|
+
- Mon, 29 Apr 2019 09:20:38 GMT
|
84
78
|
Content-Type:
|
85
79
|
- application/json; charset=utf-8
|
86
80
|
Transfer-Encoding:
|
@@ -92,25 +86,19 @@ http_interactions:
|
|
92
86
|
Cache-Control:
|
93
87
|
- no-store
|
94
88
|
X-Request-Version:
|
95
|
-
- 1.16.9-
|
89
|
+
- 1.16.9-3941@c1d8236
|
90
|
+
X-Runtime:
|
91
|
+
- '0.034236'
|
96
92
|
Pragma:
|
97
93
|
- no-cache
|
98
|
-
X-Xss-Protection:
|
99
|
-
- 1; mode=block
|
100
94
|
X-Request-Id:
|
101
|
-
-
|
102
|
-
X-Runtime:
|
103
|
-
- '0.029149'
|
104
|
-
X-Frame-Options:
|
105
|
-
- SAMEORIGIN
|
106
|
-
X-Content-Type-Options:
|
107
|
-
- nosniff
|
95
|
+
- 0ca930a64c9287f6466e0332
|
108
96
|
X-Backend:
|
109
97
|
- sbox-priv-gateway-a
|
110
98
|
body:
|
111
99
|
encoding: UTF-8
|
112
100
|
string: '{"successful":true,"response":{"address":"http://stage.example.com.au/v1/api/hook_listener","events":"*","mode":"Test","authentication_username":null,"authentication_password":"","is_active":null,"name":"New
|
113
|
-
Test hook","id":"071-WH-
|
101
|
+
Test hook","id":"071-WH-Q5W5NSU9"},"errors":[],"test":true}'
|
114
102
|
http_version:
|
115
|
-
recorded_at:
|
103
|
+
recorded_at: Mon, 29 Apr 2019 09:20:38 GMT
|
116
104
|
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FatZebra::Authorise do
|
4
|
+
|
5
|
+
describe '.jwt_token', :vcr do
|
6
|
+
subject(:token) { FatZebra::Authorise.jwt_token(valid_3ds_token_payload) }
|
7
|
+
|
8
|
+
let(:valid_3ds_token_payload) {{
|
9
|
+
reference_id: 'xxxx-xxxx-xxxx',
|
10
|
+
confirm_url: 'https://example.com',
|
11
|
+
order_number: 'xxxx-xxxx-xxxx',
|
12
|
+
currency_code: '036',
|
13
|
+
amount: 100
|
14
|
+
}}
|
15
|
+
|
16
|
+
it 'returns JWT with given params' do
|
17
|
+
is_expected.to be_accepted
|
18
|
+
expect(token.jwt).to be_truthy
|
19
|
+
expect(token.reference_id).to be_truthy
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'returns JWT with some params' do
|
23
|
+
valid_3ds_token_payload.delete(:reference_id)
|
24
|
+
is_expected.to be_accepted
|
25
|
+
expect(token.jwt).to be_truthy
|
26
|
+
expect(token.reference_id).to be_truthy
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'returns JWT with no params' do
|
30
|
+
valid_3ds_token_payload.clear
|
31
|
+
is_expected.to be_accepted
|
32
|
+
expect(token.jwt).to be_truthy
|
33
|
+
expect(token.reference_id).to be_truthy
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '.authorise', :vcr do
|
38
|
+
subject(:authorise) { FatZebra::Authorise.authorise(valid_3ds_authorise_payload) }
|
39
|
+
|
40
|
+
context 'with invalid input' do
|
41
|
+
before do
|
42
|
+
valid_3ds_authorise_payload[:card_expiry] = DateTime.now.prev_month.strftime('%m/%Y')
|
43
|
+
end
|
44
|
+
|
45
|
+
it do
|
46
|
+
is_expected.not_to be_accepted
|
47
|
+
expect(authorise.errors).to match(/Error Validating Credit Card Expiration/)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'with frictionless response' do
|
52
|
+
before do
|
53
|
+
valid_3ds_authorise_payload[:card_number] = '4000000000001000'
|
54
|
+
end
|
55
|
+
|
56
|
+
it do
|
57
|
+
is_expected.to be_accepted
|
58
|
+
expect(authorise.keys).to include('Enrolled', 'ACSUrl', 'CardBin', 'TransactionId')
|
59
|
+
expect(authorise.errors).not_to be_truthy
|
60
|
+
end
|
61
|
+
|
62
|
+
it do
|
63
|
+
expect(authorise.Enrolled).to eq('Y')
|
64
|
+
expect(authorise.ACSUrl).not_to be_truthy
|
65
|
+
expect(authorise.CardBin).to be_truthy
|
66
|
+
expect(authorise.ErrorNo).to eq('0')
|
67
|
+
expect(authorise.ErrorDesc).not_to be_truthy
|
68
|
+
expect(authorise.CardBrand).to be_truthy
|
69
|
+
expect(authorise.TransactionId).to be_truthy
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context 'with challenge response' do
|
74
|
+
before do
|
75
|
+
valid_3ds_authorise_payload[:card_number] = '4111111111111111'
|
76
|
+
end
|
77
|
+
|
78
|
+
it do
|
79
|
+
is_expected.to be_accepted
|
80
|
+
expect(authorise.keys).to include('Enrolled', 'ACSUrl', 'CardBin', 'TransactionId')
|
81
|
+
expect(authorise.errors).not_to be_truthy
|
82
|
+
end
|
83
|
+
|
84
|
+
it do
|
85
|
+
expect(authorise.Enrolled).to eq('Y')
|
86
|
+
expect(authorise.ACSUrl).to be_truthy
|
87
|
+
expect(authorise.CardBin).to be_truthy
|
88
|
+
expect(authorise.ErrorNo).to eq('0')
|
89
|
+
expect(authorise.ErrorDesc).not_to be_truthy
|
90
|
+
expect(authorise.CardBrand).to be_truthy
|
91
|
+
expect(authorise.TransactionId).to be_truthy
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context 'validations' do
|
96
|
+
let(:valid_3ds_authorise_payload) {{}}
|
97
|
+
|
98
|
+
it { expect{ authorise }.to raise_error(FatZebra::RequestValidationError) }
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -16,7 +16,7 @@ describe FatZebra::Purchase do
|
|
16
16
|
it { expect(purchase.card_category).to eq('Credit') }
|
17
17
|
it { expect(purchase.card_token).to_not be_empty }
|
18
18
|
it { expect(purchase.addendum_data).to eq({}) }
|
19
|
-
it { expect(purchase.metadata).to eq({}) }
|
19
|
+
it { expect(purchase.metadata).to eq({ "authorization_tracking_id" => "", "original_transaction_reference" => "" }) }
|
20
20
|
it { expect(purchase.response_code).to eq('00') }
|
21
21
|
|
22
22
|
context 'bad request' do
|
@@ -77,7 +77,7 @@ describe FatZebra::Purchase do
|
|
77
77
|
subject(:void) { FatZebra::Purchase.void(purchase.id) }
|
78
78
|
|
79
79
|
it { is_expected.to be_accepted }
|
80
|
-
it { is_expected.
|
80
|
+
it { is_expected.to be_successful }
|
81
81
|
it { expect(void.message).to eq('Voided') }
|
82
82
|
it { expect(void).to be_a(FatZebra::Purchase) }
|
83
83
|
end
|
@@ -87,7 +87,7 @@ describe FatZebra::Purchase do
|
|
87
87
|
before { expect(purchase.void).to be_truthy }
|
88
88
|
|
89
89
|
it { is_expected.to be_accepted }
|
90
|
-
it { is_expected.
|
90
|
+
it { is_expected.to be_successful }
|
91
91
|
it { expect(purchase.message).to eq('Voided') }
|
92
92
|
it { expect(purchase).to be_a(FatZebra::Purchase) }
|
93
93
|
end
|
@@ -72,7 +72,7 @@ describe FatZebra::Refund do
|
|
72
72
|
let(:reference) { purchase.reference }
|
73
73
|
|
74
74
|
it { is_expected.to be_accepted }
|
75
|
-
it { is_expected.
|
75
|
+
it { is_expected.to be_successful }
|
76
76
|
it { expect(refund.message).to eq('Voided') }
|
77
77
|
it { expect(refund).to be_a(FatZebra::Refund) }
|
78
78
|
end
|
data/spec/support/payloads.rb
CHANGED
@@ -40,4 +40,46 @@ shared_context 'payloads' do
|
|
40
40
|
}
|
41
41
|
}}
|
42
42
|
|
43
|
+
let(:valid_3ds_authorise_payload) {{
|
44
|
+
card_number: '5123456789012346',
|
45
|
+
card_expiry: DateTime.now.next_year.strftime('%m/%Y'),
|
46
|
+
threeds: {
|
47
|
+
enabled: true,
|
48
|
+
amount: 100,
|
49
|
+
billing_address1: 'SOME ADDRESS',
|
50
|
+
billing_city: 'Sydney',
|
51
|
+
billing_country_code: '036', # Australia
|
52
|
+
billing_first_name: 'John',
|
53
|
+
billing_last_name: 'Smith',
|
54
|
+
billing_postal_code: '2000',
|
55
|
+
billing_state: 'NSW',
|
56
|
+
currency_code: '036',
|
57
|
+
df_reference_id: SecureRandom.hex(10),
|
58
|
+
mobile_phone: '1234567890',
|
59
|
+
email: 'dev@fatzebra.com.au',
|
60
|
+
transaction_mode: 'mobile',
|
61
|
+
transaction_type: 'C',
|
62
|
+
order_number: SecureRandom.hex(10),
|
63
|
+
|
64
|
+
shipping_address1: 'SOME ADDRESS',
|
65
|
+
shipping_state: 'NSW',
|
66
|
+
shipping_city: 'Sydney',
|
67
|
+
shipping_country_code: '036',
|
68
|
+
shipping_address2: 'SOME ADDRESS',
|
69
|
+
shipping_address3: 'SOME ADDRESS',
|
70
|
+
shipping_postal_code: '2000',
|
71
|
+
billing_phone: '1234567890',
|
72
|
+
work_phone: '1234567890',
|
73
|
+
billing_address2: 'SOME ADDRESS',
|
74
|
+
billing_address3: 'SOME ADDRESS',
|
75
|
+
authentication_indicator: '01',
|
76
|
+
product_code: 'PHY',
|
77
|
+
|
78
|
+
installment: 2,
|
79
|
+
purchase_date: DateTime.now.next_year.strftime('%Y%m%d%H%M%S'),
|
80
|
+
recurring_end: DateTime.now.next_year.strftime('%Y%m%d'),
|
81
|
+
recurring_frequency: 31
|
82
|
+
}
|
83
|
+
}}
|
84
|
+
|
43
85
|
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.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Savage
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|
@@ -118,6 +118,7 @@ files:
|
|
118
118
|
- lib/fat_zebra/api_operation/search.rb
|
119
119
|
- lib/fat_zebra/api_operation/void.rb
|
120
120
|
- lib/fat_zebra/api_resource.rb
|
121
|
+
- lib/fat_zebra/authorise.rb
|
121
122
|
- lib/fat_zebra/bank_account.rb
|
122
123
|
- lib/fat_zebra/batch.rb
|
123
124
|
- lib/fat_zebra/card.rb
|
@@ -142,6 +143,14 @@ files:
|
|
142
143
|
- lib/fat_zebra/validation.rb
|
143
144
|
- lib/fat_zebra/version.rb
|
144
145
|
- lib/fat_zebra/web_hook.rb
|
146
|
+
- spec/cassettes/FatZebra_Authorise/_authorise/with_challenge_response/1_2_3_1.yml
|
147
|
+
- spec/cassettes/FatZebra_Authorise/_authorise/with_challenge_response/1_2_3_2.yml
|
148
|
+
- spec/cassettes/FatZebra_Authorise/_authorise/with_frictionless_response/1_2_2_1.yml
|
149
|
+
- spec/cassettes/FatZebra_Authorise/_authorise/with_frictionless_response/1_2_2_2.yml
|
150
|
+
- spec/cassettes/FatZebra_Authorise/_authorise/with_invalid_input/1_2_1_1.yml
|
151
|
+
- spec/cassettes/FatZebra_Authorise/_jwt_token/returns_JWT_with_given_params.yml
|
152
|
+
- spec/cassettes/FatZebra_Authorise/_jwt_token/returns_JWT_with_no_params.yml
|
153
|
+
- spec/cassettes/FatZebra_Authorise/_jwt_token/returns_JWT_with_some_params.yml
|
145
154
|
- spec/cassettes/FatZebra_BankAccount/_create/1_1_1.yml
|
146
155
|
- spec/cassettes/FatZebra_BankAccount/_create/1_1_2.yml
|
147
156
|
- spec/cassettes/FatZebra_BankAccount/_search/1_2_1.yml
|
@@ -196,7 +205,6 @@ files:
|
|
196
205
|
- spec/cassettes/FatZebra_DirectDebit/_create/1_1_2.yml
|
197
206
|
- spec/cassettes/FatZebra_DirectDebit/_create/1_1_3.yml
|
198
207
|
- spec/cassettes/FatZebra_DirectDebit/_create/1_1_4.yml
|
199
|
-
- spec/cassettes/FatZebra_DirectDebit/_create/validations/failed_with_non-float/1_1_5_3_1.yml
|
200
208
|
- spec/cassettes/FatZebra_DirectDebit/_create/validations/valid/1_1_5_1_1.yml
|
201
209
|
- spec/cassettes/FatZebra_DirectDebit/_delete/1_4_1.yml
|
202
210
|
- spec/cassettes/FatZebra_DirectDebit/_find/1_2_1.yml
|
@@ -290,6 +298,7 @@ files:
|
|
290
298
|
- spec/cassettes/FatZebra_WebHook/_update/1_3_2.yml
|
291
299
|
- spec/fixtures/batch_test.csv
|
292
300
|
- spec/lib/fat_zebra/api_resource_spec.rb
|
301
|
+
- spec/lib/fat_zebra/authorise_spec.rb
|
293
302
|
- spec/lib/fat_zebra/bank_account_spec.rb
|
294
303
|
- spec/lib/fat_zebra/batch_spec.rb
|
295
304
|
- spec/lib/fat_zebra/card_spec.rb
|
@@ -328,7 +337,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
328
337
|
version: '0'
|
329
338
|
requirements: []
|
330
339
|
rubyforge_project: fat_zebra
|
331
|
-
rubygems_version: 2.6.
|
340
|
+
rubygems_version: 2.7.6.2
|
332
341
|
signing_key:
|
333
342
|
specification_version: 4
|
334
343
|
summary: Fat Zebra payments gem - integrate your ruby app with Fat Zebra
|
data/spec/cassettes/FatZebra_DirectDebit/_create/validations/failed_with_non-float/1_1_5_3_1.yml
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: post
|
5
|
-
uri: https://gateway.sandbox.fatzebra.com.au/v1.0/direct_debits
|
6
|
-
body:
|
7
|
-
encoding: UTF-8
|
8
|
-
string: '{"description":"Confirmation","amount":123,"bsb":"123-123","account_name":"Test","account_number":"012345678","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: 201
|
23
|
-
message: Created
|
24
|
-
headers:
|
25
|
-
Date:
|
26
|
-
- Wed, 24 Oct 2018 01:02:52 GMT
|
27
|
-
Content-Type:
|
28
|
-
- application/json; charset=utf-8
|
29
|
-
Transfer-Encoding:
|
30
|
-
- chunked
|
31
|
-
Connection:
|
32
|
-
- keep-alive
|
33
|
-
Status:
|
34
|
-
- 201 Created
|
35
|
-
Cache-Control:
|
36
|
-
- no-store
|
37
|
-
X-Request-Version:
|
38
|
-
- 1.16.9-3627@3b72f16
|
39
|
-
X-Runtime:
|
40
|
-
- '0.051478'
|
41
|
-
Pragma:
|
42
|
-
- no-cache
|
43
|
-
X-Request-Id:
|
44
|
-
- 8c0141486f43f0bace8e32fc
|
45
|
-
X-Backend:
|
46
|
-
- sbox-priv-gateway-a
|
47
|
-
body:
|
48
|
-
encoding: UTF-8
|
49
|
-
string: '{"successful":true,"response":{"id":"071-DD-5SPL2753","amount":123.0,"bsb":"123-123","account_number":"012345678","account_name":"Test","description":"Confirmation","reference":"071-DD-5SPL2753","date":"2018-10-24","process_date":null,"status":"New","result":null,"metadata":null},"errors":[],"test":true}'
|
50
|
-
http_version:
|
51
|
-
recorded_at: Wed, 24 Oct 2018 01:02:52 GMT
|
52
|
-
recorded_with: VCR 3.0.3
|