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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 44b86666a7498bb608fea3a1e4ca0a7a2720a262
4
- data.tar.gz: 5610340416beb53e46b2f436ffd27e1147065d29
3
+ metadata.gz: ac2388adf429e3428e2155259c53a03b4f539928
4
+ data.tar.gz: a35ee56108197d854a6b6855ba3d356a4c4bd34c
5
5
  SHA512:
6
- metadata.gz: 448b339bb12e77116e2bdaa4c26aba16c73055725bfcde27e3cad046ba0a3a698745e89b9efa8fef6529d0a9ba9cd07dc836dd5f2aeca087a98e3cbc25b8a50f
7
- data.tar.gz: 0f937b6166815fc6e87223ae17d5d5b98dc9abc003679dbcc0e7e3f9209b527e768fcc1e12994de4ad874d96fd384978b7f4b61e11ddd0b9ee6f8eb45c573ebb
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.present?
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
- ret = transaction.create!(transaction_params, :store)
44
+ response = transaction.create!(transaction_params, :store)
51
45
 
52
- if ret[:transacao][:status] == '6'
53
- ActiveMerchant::Billing::Response.new(true, Spree.t('cielo.messages.purchase_success'), {}, authorization: ret[:transacao][:tid])
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: ret[:transacao][:tid])
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', ret
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.present?
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
- ret = transaction.create!(transaction_params, :store)
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
- if ret[:transacao][:status] == '4'
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: ret[:transacao][:tid])
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', ret
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
- # Generate and storage the token in the source object
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
- # @return [Hash]
170
- #
171
- def generate_token credit_card
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
- response = JSON.parse File.read('spec/fixtures/cielo_returns/token_success.json'), symbolize_names: true
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
- token_response = JSON.parse File.read('spec/fixtures/cielo_returns/token_success.json'), symbolize_names: true
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 fail' do
48
+ it 'should not storage the token if the request is unauthorized' do
51
49
  Spree::CieloConfig.generate_token = true
52
- token_response = JSON.parse File.read('spec/fixtures/cielo_returns/capture_error.json'), symbolize_names: true
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
- response = cielo.authorize(1000, credit_card, gateway_options)
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 rturn an invalid response when occurs an error on authorization' do
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
- token_response = JSON.parse File.read('spec/fixtures/cielo_returns/token_success.json'), symbolize_names: true
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 fail' do
119
+ it 'should not storage the token if the request is unauthorized' do
128
120
  Spree::CieloConfig.generate_token = true
129
- token_response = JSON.parse File.read('spec/fixtures/cielo_returns/capture_error.json'), symbolize_names: true
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
- response = cielo.purchase(1000, credit_card, gateway_options)
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
@@ -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.4'
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
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-12 00:00:00.000000000 Z
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