spree_zaez_cielo 3.0.4 → 3.0.5

Sign up to get free protection for your applications and to get access to all the features.
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