spree_zaez_cielo 3.0.4 → 3.0.5
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 +4 -4
- data/app/models/spree/payment_method/cielo_credit.rb +36 -50
- data/spec/features/checkout_with_cielo_credit_spec.rb +1 -3
- data/spec/fixtures/cielo_returns/authorize_token_success.json +1 -0
- data/spec/fixtures/cielo_returns/purchase_token_success.json +1 -0
- data/spec/models/spree/payment_method/cielo_credit_spec.rb +9 -21
- data/spree_zaez_cielo.gemspec +2 -1
- metadata +20 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ac2388adf429e3428e2155259c53a03b4f539928
|
|
4
|
+
data.tar.gz: a35ee56108197d854a6b6855ba3d356a4c4bd34c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a50afaf3307b3d3d364d299c02d34dffafb64b9a7f47a9e6a3b52c2259d5c84203e40a5f30a215f44bc2cad6f95a3a48c5e415b408de9d45f2e9cf57e91168ff
|
|
7
|
+
data.tar.gz: bd6cf0a60c66161257012ccfce3c22cc533eaaead676cff8d5f00cbb9c80e171856cc096c9bd640fada009b585546765fefb0e6471b01ee7b06ca4994db073bf
|
|
@@ -23,19 +23,8 @@ module Spree
|
|
|
23
23
|
capturar: 'true'
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
if source.gateway_customer_profile_id
|
|
26
|
+
if source.gateway_customer_profile_id?
|
|
27
27
|
params = { token: CGI.escape(source.gateway_customer_profile_id) }
|
|
28
|
-
elsif Spree::CieloConfig.generate_token
|
|
29
|
-
params = generate_token source
|
|
30
|
-
|
|
31
|
-
if params[:token].nil?
|
|
32
|
-
params = {
|
|
33
|
-
cartao_numero: source.number,
|
|
34
|
-
cartao_validade: "#{source.year}#{source.month}",
|
|
35
|
-
cartao_seguranca: source.verification_value,
|
|
36
|
-
cartao_portador: source.name
|
|
37
|
-
}
|
|
38
|
-
end
|
|
39
28
|
else
|
|
40
29
|
params = {
|
|
41
30
|
cartao_numero: source.number,
|
|
@@ -43,19 +32,28 @@ module Spree
|
|
|
43
32
|
cartao_seguranca: source.verification_value,
|
|
44
33
|
cartao_portador: source.name
|
|
45
34
|
}
|
|
35
|
+
|
|
36
|
+
if Spree::CieloConfig.generate_token
|
|
37
|
+
params[:'gerar-token'] = 'true'
|
|
38
|
+
end
|
|
46
39
|
end
|
|
40
|
+
|
|
47
41
|
transaction_params = mount_params(total_value, source, params.merge!(default_params))
|
|
48
42
|
|
|
49
43
|
transaction = Cielo::Transaction.new
|
|
50
|
-
|
|
44
|
+
response = transaction.create!(transaction_params, :store)
|
|
51
45
|
|
|
52
|
-
if
|
|
53
|
-
|
|
46
|
+
if response[:transacao][:status] == '6'
|
|
47
|
+
if Spree::CieloConfig.generate_token
|
|
48
|
+
storage_token source, response[:transacao]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
ActiveMerchant::Billing::Response.new(true, Spree.t('cielo.messages.purchase_success'), {}, authorization: response[:transacao][:tid])
|
|
54
52
|
else
|
|
55
|
-
ActiveMerchant::Billing::Response.new(false, Spree.t('cielo.messages.purchase_fail'), {}, authorization:
|
|
53
|
+
ActiveMerchant::Billing::Response.new(false, Spree.t('cielo.messages.purchase_fail'), {}, authorization: response[:transacao][:tid])
|
|
56
54
|
end
|
|
57
55
|
rescue
|
|
58
|
-
verify_error 'purchase',
|
|
56
|
+
verify_error 'purchase', response
|
|
59
57
|
end
|
|
60
58
|
|
|
61
59
|
# Authorizes the payment to Cielo
|
|
@@ -76,19 +74,8 @@ module Spree
|
|
|
76
74
|
capturar: 'false'
|
|
77
75
|
}
|
|
78
76
|
|
|
79
|
-
if source.gateway_customer_profile_id
|
|
77
|
+
if source.gateway_customer_profile_id?
|
|
80
78
|
params = { token: CGI.escape(source.gateway_customer_profile_id) }
|
|
81
|
-
elsif Spree::CieloConfig.generate_token
|
|
82
|
-
params = generate_token source
|
|
83
|
-
|
|
84
|
-
if params[:token].nil?
|
|
85
|
-
params = {
|
|
86
|
-
cartao_numero: source.number,
|
|
87
|
-
cartao_validade: "#{source.year}#{source.month}",
|
|
88
|
-
cartao_seguranca: source.verification_value,
|
|
89
|
-
cartao_portador: source.name
|
|
90
|
-
}
|
|
91
|
-
end
|
|
92
79
|
else
|
|
93
80
|
params = {
|
|
94
81
|
cartao_numero: source.number,
|
|
@@ -96,19 +83,28 @@ module Spree
|
|
|
96
83
|
cartao_seguranca: source.verification_value,
|
|
97
84
|
cartao_portador: source.name
|
|
98
85
|
}
|
|
86
|
+
|
|
87
|
+
if Spree::CieloConfig.generate_token
|
|
88
|
+
params[:'gerar-token'] = 'true'
|
|
89
|
+
end
|
|
99
90
|
end
|
|
91
|
+
|
|
100
92
|
transaction_params = mount_params(total_value, source, params.merge!(default_params))
|
|
101
93
|
|
|
102
94
|
transaction = Cielo::Transaction.new
|
|
103
|
-
|
|
95
|
+
response = transaction.create!(transaction_params, :store)
|
|
96
|
+
|
|
97
|
+
if response[:transacao][:status] == '4'
|
|
98
|
+
if Spree::CieloConfig.generate_token
|
|
99
|
+
storage_token source, response[:transacao]
|
|
100
|
+
end
|
|
104
101
|
|
|
105
|
-
|
|
106
|
-
ActiveMerchant::Billing::Response.new(true, Spree.t('cielo.messages.authorize_success'), {}, authorization: ret[:transacao][:tid])
|
|
102
|
+
ActiveMerchant::Billing::Response.new(true, Spree.t('cielo.messages.authorize_success'), {}, authorization: response[:transacao][:tid])
|
|
107
103
|
else
|
|
108
|
-
ActiveMerchant::Billing::Response.new(false, Spree.t('cielo.messages.authorize_fail'), {}, authorization:
|
|
104
|
+
ActiveMerchant::Billing::Response.new(false, Spree.t('cielo.messages.authorize_fail'), {}, authorization: response[:transacao][:tid])
|
|
109
105
|
end
|
|
110
106
|
rescue
|
|
111
|
-
verify_error 'authorize',
|
|
107
|
+
verify_error 'authorize', response
|
|
112
108
|
end
|
|
113
109
|
|
|
114
110
|
# Captures the payment
|
|
@@ -160,30 +156,20 @@ module Spree
|
|
|
160
156
|
cc_type
|
|
161
157
|
end
|
|
162
158
|
|
|
163
|
-
#
|
|
159
|
+
# Storage the token generated in request
|
|
164
160
|
#
|
|
165
161
|
# @author Isabella Santos
|
|
166
162
|
#
|
|
167
163
|
# @param credit_card [Spree::CreditCard]
|
|
164
|
+
# @param response [Hash]
|
|
168
165
|
#
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
token_request = Cielo::Token.new
|
|
173
|
-
token_parameters = {
|
|
174
|
-
cartao_numero: credit_card.number,
|
|
175
|
-
cartao_validade: "#{credit_card.year}#{credit_card.month}",
|
|
176
|
-
cartao_portador: credit_card.name
|
|
177
|
-
}
|
|
178
|
-
response = token_request.create! token_parameters, :store
|
|
179
|
-
|
|
180
|
-
if response[:'retorno-token'][:token][:'dados-token'][:'codigo-token']
|
|
181
|
-
token = response[:'retorno-token'][:token][:'dados-token'][:'codigo-token']
|
|
166
|
+
def storage_token credit_card, response
|
|
167
|
+
if response[:token][:'dados-token'][:status] == '1' and response[:token][:'dados-token'][:'codigo-token']
|
|
168
|
+
token = response[:token][:'dados-token'][:'codigo-token']
|
|
182
169
|
credit_card.update_attributes(gateway_customer_profile_id: token)
|
|
183
|
-
return { token: token }
|
|
184
170
|
end
|
|
185
171
|
rescue
|
|
186
|
-
|
|
172
|
+
false
|
|
187
173
|
end
|
|
188
174
|
|
|
189
175
|
# Returns the params to Cielo::Transaction
|
|
@@ -42,9 +42,7 @@ describe 'Checkout with Cielo Credit Payment Method', type: :feature do
|
|
|
42
42
|
it 'should create a token and use in next transactions', js: true do
|
|
43
43
|
Spree::CieloConfig.generate_token = true
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
allow_any_instance_of(Cielo::Token).to receive(:create!).and_return(response)
|
|
47
|
-
stub_cielo_request
|
|
45
|
+
stub_cielo_request 'authorize_token_success'
|
|
48
46
|
|
|
49
47
|
navigate_to_payment
|
|
50
48
|
fill_credit_card_data
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"transacao":{"tid":"100699306930C9392002","pan":"9HihX8E+Hzyu2Ol+kdeOh0oUa/GvzRoyW8Q3I3An9KE=","dados-pedido":{"numero":"123","valor":"1000","moeda":"986","data-hora":"2015-07-09T11:21:00.821-03:00","idioma":"PT","taxa-embarque":"0"},"forma-pagamento":{"bandeira":"mastercard","produto":"2","parcelas":"2"},"status":"4","autenticacao":{"codigo":"4","mensagem":"Transacao sem autenticacao","data-hora":"2015-07-09T11:21:00.857-03:00","valor":"1000","eci":"0"},"autorizacao":{"codigo":"4","mensagem":"Transação autorizada","data-hora":"2015-07-09T11:21:00.873-03:00","valor":"1000","lr":"00","arp":"123456","nsu":"197241"},"token":{"dados-token":{"codigo-token":"2ta/YqYaeyolf2NHkBWO8grPqZE44j3PvRAQxVQQGgE=","status":"1","numero-cartao":"411111******1111"}}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"transacao":{"tid":"100699306930CC6B2002","pan":"9HihX8E+Hzyu2Ol+kdeOh0oUa/GvzRoyW8Q3I3An9KE=","dados-pedido":{"numero":"123","valor":"1000","moeda":"986","data-hora":"2015-07-09T14:47:49.820-03:00","idioma":"PT","taxa-embarque":"0"},"forma-pagamento":{"bandeira":"mastercard","produto":"2","parcelas":"2"},"status":"6","autenticacao":{"codigo":"6","mensagem":"Transacao sem autenticacao","data-hora":"2015-07-09T14:47:49.827-03:00","valor":"1000","eci":"0"},"autorizacao":{"codigo":"6","mensagem":"Transação autorizada","data-hora":"2015-07-09T14:47:49.831-03:00","valor":"1000","lr":"00","arp":"123456","nsu":"198059"},"captura":{"codigo":"6","mensagem":"Transacao capturada com sucesso","data-hora":"2015-07-09T14:47:49.856-03:00","valor":"1000"},"token":{"dados-token":{"codigo-token":"2ta/YqYaeyolf2NHkBWO8grPqZE44j3PvRAQxVQQGgE=","status":"1","numero-cartao":"411111******1111"}}}}
|
|
@@ -37,9 +37,7 @@ describe Spree::PaymentMethod::CieloCredit do
|
|
|
37
37
|
|
|
38
38
|
it 'should create the token and save on credit card when the setting is enable' do
|
|
39
39
|
Spree::CieloConfig.generate_token = true
|
|
40
|
-
|
|
41
|
-
allow_any_instance_of(Cielo::Token).to receive(:create!).and_return(token_response)
|
|
42
|
-
stub_cielo_request :create!, 'authorize_success'
|
|
40
|
+
stub_cielo_request :create!, 'authorize_token_success'
|
|
43
41
|
|
|
44
42
|
response = cielo.authorize(1000, credit_card, gateway_options)
|
|
45
43
|
expect(response.success?).to be true
|
|
@@ -47,15 +45,11 @@ describe Spree::PaymentMethod::CieloCredit do
|
|
|
47
45
|
expect(credit_card.gateway_customer_profile_id).to eq '2ta/YqYaeyolf2NHkBWO8grPqZE44j3PvRAQxVQQGgE='
|
|
48
46
|
end
|
|
49
47
|
|
|
50
|
-
it 'should not storage the token if the request
|
|
48
|
+
it 'should not storage the token if the request is unauthorized' do
|
|
51
49
|
Spree::CieloConfig.generate_token = true
|
|
52
|
-
|
|
53
|
-
allow_any_instance_of(Cielo::Token).to receive(:create!).and_return(token_response)
|
|
54
|
-
stub_cielo_request :create!, 'authorize_success'
|
|
50
|
+
stub_cielo_request :create!, 'authorize_error'
|
|
55
51
|
|
|
56
|
-
|
|
57
|
-
expect(response.success?).to be true
|
|
58
|
-
expect(response.message).to eq 'Cielo: transaction authorized successfully'
|
|
52
|
+
cielo.authorize(1000, credit_card, gateway_options)
|
|
59
53
|
expect(credit_card.gateway_customer_profile_id).to be_nil
|
|
60
54
|
end
|
|
61
55
|
end
|
|
@@ -77,7 +71,7 @@ describe Spree::PaymentMethod::CieloCredit do
|
|
|
77
71
|
expect(response.message).to eq 'Cielo: The message is invalid. Verify the information and try again.'
|
|
78
72
|
end
|
|
79
73
|
|
|
80
|
-
it 'should
|
|
74
|
+
it 'should return an invalid response when occurs an error on authorization' do
|
|
81
75
|
allow_any_instance_of(Cielo::Transaction).to receive(:create!).and_return(nil)
|
|
82
76
|
|
|
83
77
|
response = cielo.authorize(1000, credit_card, gateway_options)
|
|
@@ -114,9 +108,7 @@ describe Spree::PaymentMethod::CieloCredit do
|
|
|
114
108
|
|
|
115
109
|
it 'should create the token and save on credit card when the setting is enable' do
|
|
116
110
|
Spree::CieloConfig.generate_token = true
|
|
117
|
-
|
|
118
|
-
allow_any_instance_of(Cielo::Token).to receive(:create!).and_return(token_response)
|
|
119
|
-
stub_cielo_request :create!, 'purchase_success'
|
|
111
|
+
stub_cielo_request :create!, 'purchase_token_success'
|
|
120
112
|
|
|
121
113
|
response = cielo.purchase(1000, credit_card, gateway_options)
|
|
122
114
|
expect(response.success?).to be true
|
|
@@ -124,15 +116,11 @@ describe Spree::PaymentMethod::CieloCredit do
|
|
|
124
116
|
expect(credit_card.gateway_customer_profile_id).to eq '2ta/YqYaeyolf2NHkBWO8grPqZE44j3PvRAQxVQQGgE='
|
|
125
117
|
end
|
|
126
118
|
|
|
127
|
-
it 'should not storage the token if the request
|
|
119
|
+
it 'should not storage the token if the request is unauthorized' do
|
|
128
120
|
Spree::CieloConfig.generate_token = true
|
|
129
|
-
|
|
130
|
-
allow_any_instance_of(Cielo::Token).to receive(:create!).and_return(token_response)
|
|
131
|
-
stub_cielo_request :create!, 'purchase_success'
|
|
121
|
+
stub_cielo_request :create!, 'authorize_error'
|
|
132
122
|
|
|
133
|
-
|
|
134
|
-
expect(response.success?).to be true
|
|
135
|
-
expect(response.message).to eq 'Cielo: transaction purchased successfully'
|
|
123
|
+
cielo.purchase(1000, credit_card, gateway_options)
|
|
136
124
|
expect(credit_card.gateway_customer_profile_id).to be_nil
|
|
137
125
|
end
|
|
138
126
|
end
|
data/spree_zaez_cielo.gemspec
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Gem::Specification.new do |s|
|
|
3
3
|
s.platform = Gem::Platform::RUBY
|
|
4
4
|
s.name = 'spree_zaez_cielo'
|
|
5
|
-
s.version = '3.0.
|
|
5
|
+
s.version = '3.0.5'
|
|
6
6
|
s.summary = 'Adds Cielo as a Payment Method to Spree Commerce'
|
|
7
7
|
s.description = s.summary
|
|
8
8
|
s.required_ruby_version = '>= 2.0.0'
|
|
@@ -35,4 +35,5 @@ Gem::Specification.new do |s|
|
|
|
35
35
|
s.add_development_dependency 'guard-bundler'
|
|
36
36
|
s.add_development_dependency 'guard-rspec'
|
|
37
37
|
s.add_development_dependency 'guard-shell'
|
|
38
|
+
s.add_development_dependency 'http_logger'
|
|
38
39
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spree_zaez_cielo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.0.
|
|
4
|
+
version: 3.0.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Zaez Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-02-
|
|
11
|
+
date: 2016-02-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: spree_core
|
|
@@ -262,6 +262,20 @@ dependencies:
|
|
|
262
262
|
- - ">="
|
|
263
263
|
- !ruby/object:Gem::Version
|
|
264
264
|
version: '0'
|
|
265
|
+
- !ruby/object:Gem::Dependency
|
|
266
|
+
name: http_logger
|
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
|
268
|
+
requirements:
|
|
269
|
+
- - ">="
|
|
270
|
+
- !ruby/object:Gem::Version
|
|
271
|
+
version: '0'
|
|
272
|
+
type: :development
|
|
273
|
+
prerelease: false
|
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
275
|
+
requirements:
|
|
276
|
+
- - ">="
|
|
277
|
+
- !ruby/object:Gem::Version
|
|
278
|
+
version: '0'
|
|
265
279
|
description: Adds Cielo as a Payment Method to Spree Commerce
|
|
266
280
|
email: contato@zaez.net
|
|
267
281
|
executables: []
|
|
@@ -325,12 +339,14 @@ files:
|
|
|
325
339
|
- spec/features/checkout_with_cielo_debt_spec.rb
|
|
326
340
|
- spec/fixtures/cielo_returns/authorize_error.json
|
|
327
341
|
- spec/fixtures/cielo_returns/authorize_success.json
|
|
342
|
+
- spec/fixtures/cielo_returns/authorize_token_success.json
|
|
328
343
|
- spec/fixtures/cielo_returns/capture_error.json
|
|
329
344
|
- spec/fixtures/cielo_returns/capture_success.json
|
|
330
345
|
- spec/fixtures/cielo_returns/create_error.json
|
|
331
346
|
- spec/fixtures/cielo_returns/create_success.json
|
|
332
347
|
- spec/fixtures/cielo_returns/error_001.json
|
|
333
348
|
- spec/fixtures/cielo_returns/purchase_success.json
|
|
349
|
+
- spec/fixtures/cielo_returns/purchase_token_success.json
|
|
334
350
|
- spec/fixtures/cielo_returns/token_success.json
|
|
335
351
|
- spec/fixtures/cielo_returns/void_error.json
|
|
336
352
|
- spec/fixtures/cielo_returns/void_success.json
|
|
@@ -379,12 +395,14 @@ test_files:
|
|
|
379
395
|
- spec/features/checkout_with_cielo_debt_spec.rb
|
|
380
396
|
- spec/fixtures/cielo_returns/authorize_error.json
|
|
381
397
|
- spec/fixtures/cielo_returns/authorize_success.json
|
|
398
|
+
- spec/fixtures/cielo_returns/authorize_token_success.json
|
|
382
399
|
- spec/fixtures/cielo_returns/capture_error.json
|
|
383
400
|
- spec/fixtures/cielo_returns/capture_success.json
|
|
384
401
|
- spec/fixtures/cielo_returns/create_error.json
|
|
385
402
|
- spec/fixtures/cielo_returns/create_success.json
|
|
386
403
|
- spec/fixtures/cielo_returns/error_001.json
|
|
387
404
|
- spec/fixtures/cielo_returns/purchase_success.json
|
|
405
|
+
- spec/fixtures/cielo_returns/purchase_token_success.json
|
|
388
406
|
- spec/fixtures/cielo_returns/token_success.json
|
|
389
407
|
- spec/fixtures/cielo_returns/void_error.json
|
|
390
408
|
- spec/fixtures/cielo_returns/void_success.json
|