judopay 2.1.0 → 2.1.3
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/.gitignore +24 -23
- data/.rspec +1 -1
- data/.rubocop.yml +54 -51
- data/.travis.yml +6 -6
- data/CHANGELOG.md +17 -17
- data/Gemfile +4 -4
- data/LICENSE +21 -21
- data/README.md +96 -94
- data/Rakefile +22 -22
- data/judopay.gemspec +38 -38
- data/lib/certs/digicert_sha256_ca.pem +49 -49
- data/lib/certs/rapidssl_ca.crt +63 -63
- data/lib/faraday/judo_mashify.rb +11 -11
- data/lib/faraday/raise_http_exception.rb +19 -19
- data/lib/judopay.rb +70 -70
- data/lib/judopay/api.rb +10 -10
- data/lib/judopay/connection.rb +77 -77
- data/lib/judopay/core_ext/hash.rb +29 -29
- data/lib/judopay/core_ext/string.rb +32 -32
- data/lib/judopay/error.rb +117 -115
- data/lib/judopay/mash.rb +11 -11
- data/lib/judopay/model.rb +134 -134
- data/lib/judopay/models/android_payment.rb +26 -26
- data/lib/judopay/models/android_preauth.rb +8 -8
- data/lib/judopay/models/apple_payment.rb +26 -26
- data/lib/judopay/models/apple_preauth.rb +9 -9
- data/lib/judopay/models/card_address.rb +11 -11
- data/lib/judopay/models/card_payment.rb +33 -33
- data/lib/judopay/models/card_preauth.rb +11 -11
- data/lib/judopay/models/collection.rb +16 -16
- data/lib/judopay/models/encrypt_details.rb +18 -0
- data/lib/judopay/models/inner/pk_payment.rb +17 -17
- data/lib/judopay/models/inner/pk_payment_token.rb +13 -13
- data/lib/judopay/models/inner/transmitted_field.rb +39 -39
- data/lib/judopay/models/inner/wallet.rb +30 -30
- data/lib/judopay/models/market/collection.rb +10 -10
- data/lib/judopay/models/market/payment.rb +10 -10
- data/lib/judopay/models/market/preauth.rb +10 -10
- data/lib/judopay/models/market/refund.rb +10 -10
- data/lib/judopay/models/market/transaction.rb +10 -10
- data/lib/judopay/models/one_use_token_payment.rb +29 -0
- data/lib/judopay/models/payment.rb +8 -8
- data/lib/judopay/models/preauth.rb +8 -8
- data/lib/judopay/models/refund.rb +16 -16
- data/lib/judopay/models/register_card.rb +27 -27
- data/lib/judopay/models/save_card.rb +24 -25
- data/lib/judopay/models/token_payment.rb +30 -30
- data/lib/judopay/models/token_preauth.rb +10 -10
- data/lib/judopay/models/transaction.rb +8 -8
- data/lib/judopay/models/void.rb +19 -19
- data/lib/judopay/models/web_payments/payment.rb +28 -28
- data/lib/judopay/models/web_payments/preauth.rb +10 -10
- data/lib/judopay/models/web_payments/transaction.rb +19 -19
- data/lib/judopay/models/web_payments/web_payment_operation.rb +8 -8
- data/lib/judopay/null_logger.rb +9 -11
- data/lib/judopay/request.rb +50 -50
- data/lib/judopay/response.rb +7 -7
- data/lib/judopay/serializer.rb +27 -27
- data/lib/judopay/version.rb +4 -4
- data/spec/factories.rb +227 -208
- data/spec/faraday/response_spec.rb +27 -27
- data/spec/fixtures/card_payments/create.json +21 -21
- data/spec/fixtures/card_payments/create_3dsecure.json +7 -7
- data/spec/fixtures/card_payments/create_bad_request.json +12 -12
- data/spec/fixtures/card_payments/create_declined.json +23 -23
- data/spec/fixtures/card_payments/validate.json +4 -4
- data/spec/fixtures/token_payments/create.json +21 -21
- data/spec/fixtures/transactions/all.json +237 -237
- data/spec/fixtures/transactions/android_payment.json +26 -26
- data/spec/fixtures/transactions/apple_payment.json +26 -26
- data/spec/fixtures/transactions/find.json +22 -22
- data/spec/fixtures/transactions/find_not_found.json +4 -4
- data/spec/fixtures/transactions/register_card.json +28 -28
- data/spec/fixtures/transactions/save_card.json +27 -27
- data/spec/fixtures/transactions/void.json +26 -26
- data/spec/fixtures/web_payments/payments/create.json +3 -3
- data/spec/fixtures/web_payments/payments/find.json +38 -38
- data/spec/judopay/android_payment_spec.rb +74 -74
- data/spec/judopay/apple_payment_spec.rb +80 -80
- data/spec/judopay/card_address_spec.rb +10 -10
- data/spec/judopay/card_payment_spec.rb +51 -63
- data/spec/judopay/card_preauth_spec.rb +35 -35
- data/spec/judopay/collection_spec.rb +26 -26
- data/spec/judopay/core_ext/hash_spec.rb +24 -24
- data/spec/judopay/core_ext/string_spec.rb +16 -16
- data/spec/judopay/error_spec.rb +70 -70
- data/spec/judopay/judopay_spec.rb +19 -19
- data/spec/judopay/market/collection_spec.rb +26 -26
- data/spec/judopay/market/payment_spec.rb +14 -14
- data/spec/judopay/market/preauth_spec.rb +14 -14
- data/spec/judopay/market/refund_spec.rb +26 -26
- data/spec/judopay/market/transaction_spec.rb +14 -14
- data/spec/judopay/payment_spec.rb +14 -14
- data/spec/judopay/preauth_spec.rb +14 -14
- data/spec/judopay/refund_spec.rb +26 -26
- data/spec/judopay/register_card_spec.rb +24 -24
- data/spec/judopay/save_card_spec.rb +23 -23
- data/spec/judopay/token_payment_spec.rb +22 -22
- data/spec/judopay/token_preauth_spec.rb +22 -22
- data/spec/judopay/transaction_spec.rb +51 -51
- data/spec/judopay/void_spec.rb +24 -24
- data/spec/judopay/web_payments/payment_spec.rb +16 -16
- data/spec/judopay/web_payments/preauth_spec.rb +16 -16
- data/spec/judopay/web_payments/transaction_spec.rb +15 -15
- data/spec/spec_helper.rb +41 -41
- data/test/additions_payment_test.rb +30 -0
- data/test/authentication_test.rb +23 -23
- data/test/base/integration_base.rb +20 -20
- data/test/base/payments_tests.rb +47 -47
- data/test/base/token_payment_tests.rb +98 -98
- data/test/card_details_test.rb +21 -21
- data/test/configuration_test.rb +35 -35
- data/test/helper/assertion_helper.rb +29 -29
- data/test/payment_test.rb +10 -10
- data/test/preauth_test.rb +10 -10
- data/test/register_card_test.rb +42 -42
- data/test/save_card_test.rb +23 -0
- data/test/token_payment_test.rb +10 -10
- data/test/token_preauth_test.rb +10 -10
- data/test/void_test.rb +45 -45
- metadata +18 -12
@@ -1,8 +1,8 @@
|
|
1
|
-
module Judopay
|
2
|
-
module WebPayments
|
3
|
-
module WebPaymentOperation
|
4
|
-
PAYMENT = 0
|
5
|
-
REGISTER = 1
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
1
|
+
module Judopay
|
2
|
+
module WebPayments
|
3
|
+
module WebPaymentOperation
|
4
|
+
PAYMENT = 0
|
5
|
+
REGISTER = 1
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
data/lib/judopay/null_logger.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
|
-
require 'logger'
|
2
|
-
|
3
|
-
module Judopay
|
4
|
-
class NullLogger < Logger
|
5
|
-
def initialize(*)
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
end
|
11
|
-
end
|
1
|
+
require 'logger'
|
2
|
+
|
3
|
+
module Judopay
|
4
|
+
class NullLogger < Logger
|
5
|
+
def initialize(*) end
|
6
|
+
|
7
|
+
def add(*) end
|
8
|
+
end
|
9
|
+
end
|
data/lib/judopay/request.rb
CHANGED
@@ -1,50 +1,50 @@
|
|
1
|
-
require 'openssl'
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
module Judopay
|
5
|
-
# Defines HTTP request methods
|
6
|
-
module Request
|
7
|
-
# Perform an HTTP GET request
|
8
|
-
def get(path, options = {}, raw = false)
|
9
|
-
request(:get, path, options, raw)
|
10
|
-
end
|
11
|
-
|
12
|
-
# Perform an HTTP POST request
|
13
|
-
def post(path, options = {}, raw = false)
|
14
|
-
request(:post, path, options, raw)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Perform an HTTP PUT request
|
18
|
-
def put(path, options = {}, raw = false)
|
19
|
-
request(:put, path, options, raw)
|
20
|
-
end
|
21
|
-
|
22
|
-
# Perform an HTTP DELETE request
|
23
|
-
def delete(path, options = {}, raw = false)
|
24
|
-
request(:delete, path, options, raw)
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
# Perform an HTTP request
|
30
|
-
def request(method, path, options, raw = false)
|
31
|
-
response = connection(raw).send(method) do |request|
|
32
|
-
case method
|
33
|
-
when :get, :delete
|
34
|
-
request.url(path, options)
|
35
|
-
when :post, :put
|
36
|
-
request.path = path
|
37
|
-
unless options.nil?
|
38
|
-
request.body = Judopay::Serializer.new(options).as_json
|
39
|
-
Judopay.log(Logger::DEBUG, 'Request body: ' + request.body)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
Judopay.log(Logger::DEBUG, response)
|
45
|
-
|
46
|
-
return response if raw
|
47
|
-
Response.create(response.body)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
1
|
+
require 'openssl'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Judopay
|
5
|
+
# Defines HTTP request methods
|
6
|
+
module Request
|
7
|
+
# Perform an HTTP GET request
|
8
|
+
def get(path, options = {}, raw = false)
|
9
|
+
request(:get, path, options, raw)
|
10
|
+
end
|
11
|
+
|
12
|
+
# Perform an HTTP POST request
|
13
|
+
def post(path, options = {}, raw = false)
|
14
|
+
request(:post, path, options, raw)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Perform an HTTP PUT request
|
18
|
+
def put(path, options = {}, raw = false)
|
19
|
+
request(:put, path, options, raw)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Perform an HTTP DELETE request
|
23
|
+
def delete(path, options = {}, raw = false)
|
24
|
+
request(:delete, path, options, raw)
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
# Perform an HTTP request
|
30
|
+
def request(method, path, options, raw = false)
|
31
|
+
response = connection(raw).send(method) do |request|
|
32
|
+
case method
|
33
|
+
when :get, :delete
|
34
|
+
request.url(path, options)
|
35
|
+
when :post, :put
|
36
|
+
request.path = path
|
37
|
+
unless options.nil?
|
38
|
+
request.body = Judopay::Serializer.new(options).as_json
|
39
|
+
Judopay.log(Logger::DEBUG, 'Request body: ' + request.body)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
Judopay.log(Logger::DEBUG, response)
|
45
|
+
|
46
|
+
return response if raw
|
47
|
+
Response.create(response.body)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/judopay/response.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
module Judopay
|
2
|
-
module Response
|
3
|
-
def self.create(response_hash)
|
4
|
-
response_hash
|
5
|
-
end
|
6
|
-
end
|
7
|
-
end
|
1
|
+
module Judopay
|
2
|
+
module Response
|
3
|
+
def self.create(response_hash)
|
4
|
+
response_hash
|
5
|
+
end
|
6
|
+
end
|
7
|
+
end
|
data/lib/judopay/serializer.rb
CHANGED
@@ -1,27 +1,27 @@
|
|
1
|
-
module Judopay
|
2
|
-
# @private
|
3
|
-
class Serializer
|
4
|
-
attr_reader :serialized_object
|
5
|
-
|
6
|
-
def initialize(serialized_object)
|
7
|
-
@serialized_object = serialized_object
|
8
|
-
end
|
9
|
-
|
10
|
-
def as_json
|
11
|
-
output_hash = hashify(@serialized_object).camel_case_keys!
|
12
|
-
JSON.generate(output_hash)
|
13
|
-
end
|
14
|
-
|
15
|
-
# Turn a hash with nested Virtus objects into a simple nested hash
|
16
|
-
def hashify(source)
|
17
|
-
output_hash = {}
|
18
|
-
source.to_hash.each do |key, value|
|
19
|
-
next if value.nil?
|
20
|
-
|
21
|
-
# Is this a Virtus model object that we need to hashify?
|
22
|
-
output_hash[key] = value.class.included_modules.include?(Virtus::Model::Core) ? hashify(value) : value
|
23
|
-
end
|
24
|
-
output_hash
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
1
|
+
module Judopay
|
2
|
+
# @private
|
3
|
+
class Serializer
|
4
|
+
attr_reader :serialized_object
|
5
|
+
|
6
|
+
def initialize(serialized_object)
|
7
|
+
@serialized_object = serialized_object
|
8
|
+
end
|
9
|
+
|
10
|
+
def as_json
|
11
|
+
output_hash = hashify(@serialized_object).camel_case_keys!
|
12
|
+
JSON.generate(output_hash)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Turn a hash with nested Virtus objects into a simple nested hash
|
16
|
+
def hashify(source)
|
17
|
+
output_hash = {}
|
18
|
+
source.to_hash.each do |key, value|
|
19
|
+
next if value.nil?
|
20
|
+
|
21
|
+
# Is this a Virtus model object that we need to hashify?
|
22
|
+
output_hash[key] = value.class.included_modules.include?(Virtus::Model::Core) ? hashify(value) : value
|
23
|
+
end
|
24
|
+
output_hash
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/judopay/version.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
module Judopay
|
2
|
-
SDK_VERSION = '2.1.
|
3
|
-
API_VERSION = '5.2.0'.freeze
|
4
|
-
end
|
1
|
+
module Judopay
|
2
|
+
SDK_VERSION = '2.1.3'.freeze
|
3
|
+
API_VERSION = '5.2.0'.freeze
|
4
|
+
end
|
data/spec/factories.rb
CHANGED
@@ -1,208 +1,227 @@
|
|
1
|
-
models = %w(
|
2
|
-
card_payment
|
3
|
-
card_preauth
|
4
|
-
collection
|
5
|
-
refund
|
6
|
-
token_payment
|
7
|
-
token_preauth
|
8
|
-
web_payments/payment
|
9
|
-
market/collection
|
10
|
-
market/refund
|
11
|
-
save_card
|
12
|
-
register_card
|
13
|
-
void
|
14
|
-
apple_payment
|
15
|
-
android_payment
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
:
|
174
|
-
|
175
|
-
|
176
|
-
:
|
177
|
-
:
|
178
|
-
|
179
|
-
|
180
|
-
:
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
:
|
200
|
-
:
|
201
|
-
:
|
202
|
-
:
|
203
|
-
:
|
204
|
-
:
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
1
|
+
models = %w(
|
2
|
+
card_payment
|
3
|
+
card_preauth
|
4
|
+
collection
|
5
|
+
refund
|
6
|
+
token_payment
|
7
|
+
token_preauth
|
8
|
+
web_payments/payment
|
9
|
+
market/collection
|
10
|
+
market/refund
|
11
|
+
save_card
|
12
|
+
register_card
|
13
|
+
void
|
14
|
+
apple_payment
|
15
|
+
android_payment
|
16
|
+
encrypt_details
|
17
|
+
one_use_token_payment
|
18
|
+
)
|
19
|
+
models.each { |model| require_relative '../lib/judopay/models/' + model }
|
20
|
+
require 'securerandom'
|
21
|
+
|
22
|
+
FactoryBot.define do
|
23
|
+
trait :payment_details do
|
24
|
+
your_consumer_reference 123
|
25
|
+
sequence :your_payment_reference do |n|
|
26
|
+
SecureRandom.hex(21) + n.to_s
|
27
|
+
end
|
28
|
+
amount 1.01
|
29
|
+
end
|
30
|
+
|
31
|
+
trait :valid_card do
|
32
|
+
card_number '4976000000003436'
|
33
|
+
expiry_date '12/20'
|
34
|
+
cv2 452
|
35
|
+
end
|
36
|
+
|
37
|
+
trait :declined_card do
|
38
|
+
card_number '4221690000004963'
|
39
|
+
expiry_date '12/20'
|
40
|
+
cv2 125
|
41
|
+
end
|
42
|
+
|
43
|
+
trait :valid_token_details do
|
44
|
+
consumer_token '3UW4DV9wI0oKkMFS'
|
45
|
+
card_token 'SXw4hnv1vJuEujQR'
|
46
|
+
cv2 452
|
47
|
+
end
|
48
|
+
|
49
|
+
trait :valid_judo_id do
|
50
|
+
judo_id '100435-197'
|
51
|
+
end
|
52
|
+
|
53
|
+
trait :valid_collection_or_refund_details do
|
54
|
+
receipt_id '1234'
|
55
|
+
amount 1.01
|
56
|
+
sequence :your_payment_reference do |n|
|
57
|
+
SecureRandom.hex(21) + n.to_s
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
trait :client_ip_address_and_user_agent do
|
62
|
+
client_ip_address '127.0.0.1'
|
63
|
+
client_user_agent 'Mozilla/5.0 (Windows NT 6.2; Win64; x64)...'
|
64
|
+
end
|
65
|
+
|
66
|
+
factory :card_payment, :class => Judopay::CardPayment do
|
67
|
+
payment_details
|
68
|
+
valid_judo_id
|
69
|
+
valid_card
|
70
|
+
currency 'GBP'
|
71
|
+
|
72
|
+
trait :declined do
|
73
|
+
card_number '4221690000004963'
|
74
|
+
cv2 125
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
factory :card_preauth, :class => Judopay::CardPreauth do
|
79
|
+
payment_details
|
80
|
+
valid_card
|
81
|
+
valid_judo_id
|
82
|
+
currency 'GBP'
|
83
|
+
|
84
|
+
trait :declined do
|
85
|
+
card_number '4221690000004963'
|
86
|
+
cv2 125
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
factory :collection, :class => Judopay::Collection do
|
91
|
+
valid_collection_or_refund_details
|
92
|
+
end
|
93
|
+
|
94
|
+
factory :refund, :class => Judopay::Refund do
|
95
|
+
valid_collection_or_refund_details
|
96
|
+
end
|
97
|
+
|
98
|
+
factory :token_payment, :class => Judopay::TokenPayment do
|
99
|
+
payment_details
|
100
|
+
valid_token_details
|
101
|
+
valid_judo_id
|
102
|
+
currency 'GBP'
|
103
|
+
end
|
104
|
+
|
105
|
+
factory :token_preauth, :class => Judopay::TokenPreauth do
|
106
|
+
payment_details
|
107
|
+
valid_token_details
|
108
|
+
valid_judo_id
|
109
|
+
currency 'GBP'
|
110
|
+
end
|
111
|
+
|
112
|
+
factory :web_payment, :class => Judopay::WebPayments::Payment do
|
113
|
+
valid_judo_id
|
114
|
+
payment_details
|
115
|
+
client_ip_address_and_user_agent
|
116
|
+
|
117
|
+
partner_service_fee 1.00
|
118
|
+
end
|
119
|
+
|
120
|
+
factory :web_preauth, :class => Judopay::WebPayments::Payment do
|
121
|
+
valid_judo_id
|
122
|
+
payment_details
|
123
|
+
client_ip_address_and_user_agent
|
124
|
+
|
125
|
+
partner_service_fee 1.00
|
126
|
+
end
|
127
|
+
|
128
|
+
factory :market_collection, :class => Judopay::Market::Collection do
|
129
|
+
valid_collection_or_refund_details
|
130
|
+
end
|
131
|
+
|
132
|
+
factory :market_refund, :class => Judopay::Market::Refund do
|
133
|
+
valid_collection_or_refund_details
|
134
|
+
end
|
135
|
+
|
136
|
+
factory :save_card, :class => Judopay::SaveCard do
|
137
|
+
valid_card
|
138
|
+
|
139
|
+
your_consumer_reference 123
|
140
|
+
end
|
141
|
+
|
142
|
+
factory :register_card, :class => Judopay::RegisterCard do
|
143
|
+
payment_details
|
144
|
+
valid_card
|
145
|
+
valid_judo_id
|
146
|
+
currency 'GBP'
|
147
|
+
|
148
|
+
trait :declined do
|
149
|
+
card_number '4221690000004963'
|
150
|
+
cv2 125
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
factory :void, :class => Judopay::Void do
|
155
|
+
valid_collection_or_refund_details
|
156
|
+
end
|
157
|
+
|
158
|
+
factory :apple_payment, :class => Judopay::ApplePayment do
|
159
|
+
payment_details
|
160
|
+
valid_judo_id
|
161
|
+
currency 'GBP'
|
162
|
+
|
163
|
+
client_details do
|
164
|
+
{
|
165
|
+
:key => 'someValidKey',
|
166
|
+
:value => 'someValidValue'
|
167
|
+
}
|
168
|
+
end
|
169
|
+
|
170
|
+
pk_payment do
|
171
|
+
{
|
172
|
+
:token => {
|
173
|
+
:payment_instrument_name => 'Visa 9911',
|
174
|
+
:payment_network => 'Visa',
|
175
|
+
:payment_data => {
|
176
|
+
:version => 'EC_v1',
|
177
|
+
:data => 'someData',
|
178
|
+
:signature => 'someData',
|
179
|
+
:header => {
|
180
|
+
:ephemeralPublicKey => 'someData',
|
181
|
+
:publicKeyHash => 'someData',
|
182
|
+
:transactionId => 'someData'
|
183
|
+
}
|
184
|
+
}
|
185
|
+
},
|
186
|
+
:billing_address => nil,
|
187
|
+
:shipping_address => nil
|
188
|
+
}
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
factory :android_payment, :class => Judopay::AndroidPayment do
|
193
|
+
payment_details
|
194
|
+
valid_judo_id
|
195
|
+
currency 'GBP'
|
196
|
+
|
197
|
+
wallet do
|
198
|
+
{
|
199
|
+
:encrypted_message => 'ZW5jcnlwdGVkTWVzc2FnZQ==',
|
200
|
+
:environment => 3,
|
201
|
+
:ephemeral_public_key => 'ZXBoZW1lcmFsUHVibGljS2V5',
|
202
|
+
:google_transaction_id => '123456789',
|
203
|
+
:instrument_details => '1234',
|
204
|
+
:instrument_type => 'VISA',
|
205
|
+
:public_key => 'someKey',
|
206
|
+
:tag => 'c2lnbmF0dXJl',
|
207
|
+
:version => 1
|
208
|
+
}
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
factory :encrypt_details, :class => Judopay::EncryptDetails do
|
213
|
+
card_number '4976000000003436'
|
214
|
+
expiry_date '12/20'
|
215
|
+
cv2 452
|
216
|
+
end
|
217
|
+
|
218
|
+
factory :one_use_token_payment, :class => Judopay::OneUseTokenPayment do
|
219
|
+
your_consumer_reference 'oneUseTokenTestConsumer'
|
220
|
+
sequence :your_payment_reference do |n|
|
221
|
+
SecureRandom.hex(21) + n.to_s
|
222
|
+
end
|
223
|
+
amount 1.01
|
224
|
+
currency "GBP"
|
225
|
+
end
|
226
|
+
|
227
|
+
end
|