spree_zaez_cielo 3.0.7 → 3.0.8

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: 33939f91d3e3e96cd2005fced635dc2203866743
4
- data.tar.gz: 87e324acb1727d18705a7786075eb37630c077c7
3
+ metadata.gz: 4c956cee52731767f017f1d52a98826568ab6515
4
+ data.tar.gz: 899b706f8c760e7bb31c4aa068ee15b649473fb5
5
5
  SHA512:
6
- metadata.gz: e7abd8efdde3f24e2c8884facdaee45dc6cba8f79234457f1f67e7af95d57893ee6b5f9858003ba5a89361be0211df938d107af5df46c9708dd910e2deda7620
7
- data.tar.gz: c803b20c01a69019e2c3b4c8c57cfe98eea3fa33d930c97af33773321f5ce3faad333a217ec6d9f605e37364d48e0eabc6c37036685f7b95b51ce1c4138306e5
6
+ metadata.gz: 884c097c616f8c09cbda89f73b01cd8eb13cf44b887c9c8751f40348f286e2360716e25ea8d1158557abfa67349cd9fd6683090080c41e1ed98bfb23dc197855
7
+ data.tar.gz: 571032b330e6072ca0d0763b924a751313676ea25399290d4672fdcbe24681ff53f24bb5e76576e519d03f0991be60307296051f3e4f61119339a7a29190ce22
@@ -137,6 +137,30 @@ module Spree
137
137
  verify_error 'void', ret
138
138
  end
139
139
 
140
+ # Cancel the payment
141
+ #
142
+ # @author Isabella Santos
143
+ #
144
+ # @return [ActiveMerchant::Billing::Response]
145
+ #
146
+ def cancel(response_code)
147
+ transaction = Cielo::Transaction.new
148
+ response = transaction.verify!(response_code)
149
+
150
+ if response[:transacao][:status] == '4' or response[:transacao][:status] == '6'
151
+ response_cancel = transaction.cancel!(response_code)
152
+ if response_cancel[:transacao].present?
153
+ ActiveMerchant::Billing::Response.new(true, Spree.t('cielo.messages.cancel_success'), {}, authorization: response_cancel[:transacao][:tid])
154
+ else
155
+ verify_error 'cancel', response_cancel
156
+ end
157
+ else
158
+ ActiveMerchant::Billing::Response.new(true, Spree.t('cielo.messages.cancel_success'), {}, authorization: response[:transacao][:tid])
159
+ end
160
+ rescue
161
+ verify_error 'cancel', response
162
+ end
163
+
140
164
  private
141
165
 
142
166
  # Returns the credit type formatted
@@ -155,6 +155,30 @@ module Spree
155
155
  verify_error 'void', ret
156
156
  end
157
157
 
158
+ # Cancel the payment
159
+ #
160
+ # @author Isabella Santos
161
+ #
162
+ # @return [ActiveMerchant::Billing::Response]
163
+ #
164
+ def cancel(response_code)
165
+ transaction = Cielo::Transaction.new
166
+ response = transaction.verify!(response_code)
167
+
168
+ if response[:transacao][:status] == '4' or response[:transacao][:status] == '6'
169
+ response_cancel = transaction.cancel!(response_code)
170
+ if response_cancel[:transacao].present?
171
+ ActiveMerchant::Billing::Response.new(true, Spree.t('cielo.messages.cancel_success'), {}, authorization: response_cancel[:transacao][:tid])
172
+ else
173
+ verify_error 'cancel', response_cancel
174
+ end
175
+ else
176
+ ActiveMerchant::Billing::Response.new(true, Spree.t('cielo.messages.cancel_success'), {}, authorization: response[:transacao][:tid])
177
+ end
178
+ rescue
179
+ verify_error 'cancel', response
180
+ end
181
+
158
182
  def auto_capture?
159
183
  true
160
184
  end
@@ -50,6 +50,8 @@ en:
50
50
  capture_rescue: "Cielo: Error when try capture"
51
51
  void_success: "Cielo: Voided successfully"
52
52
  void_rescue: "Cielo: Error when try void"
53
+ cancel_success: "Cielo: Canceled successfully"
54
+ cancel_rescue: "Cielo: Error when try cancel"
53
55
  create_rescue: "Cielo: Error when try create the transaction"
54
56
  invalid_message: "Cielo: The message is invalid. Verify the information and try again."
55
57
  invalid_portions: "Cielo: The number of portions is required"
@@ -50,6 +50,8 @@ pt-BR:
50
50
  capture_rescue: "Cielo: Ocorreu um erro ao tentar capturar o pagamento"
51
51
  void_success: "Cielo: Pagamento cancelado com sucesso"
52
52
  void_rescue: "Cielo: Ocorreu um erro ao tentar cancelar o pagamento"
53
+ cancel_success: "Cielo: Pagamento cancelado com sucesso"
54
+ cancel_rescue: "Cielo: Ocorreu um erro ao tentar cancelar o pagamento"
53
55
  create_rescue: "Cielo: Ocorreu um erro ao tentar criar a transação"
54
56
  invalid_message: "A mensagem enviada é inválida. Verifique as informações e tente novamente."
55
57
  invalid_portions: "Cielo: O número de parcelas é requerido"
@@ -215,6 +215,52 @@ describe Spree::PaymentMethod::CieloCredit do
215
215
  end
216
216
  end
217
217
 
218
+ context 'cancel' do
219
+
220
+ context 'successfull canceled' do
221
+
222
+ it 'when transaction is authorized or captured' do
223
+ stub_cielo_request :verify!, 'authorize_success'
224
+ stub_cielo_request :cancel!, 'void_success'
225
+
226
+ response = cielo.cancel('123')
227
+ expect(response.success?).to be true
228
+ expect(response.message).to eq 'Cielo: Canceled successfully'
229
+ end
230
+
231
+ it 'when transaction is created' do
232
+ stub_cielo_request :verify!, 'create_success'
233
+ stub_cielo_request :cancel!, 'void_success'
234
+
235
+ response = cielo.cancel('123')
236
+ expect(response.success?).to be true
237
+ expect(response.message).to eq 'Cielo: Canceled successfully'
238
+ end
239
+
240
+ end
241
+
242
+ context 'error' do
243
+
244
+ it 'should return an invalid response when the request is invalid' do
245
+ stub_cielo_request :verify!, 'authorize_success'
246
+ stub_cielo_request :cancel!, 'void_error'
247
+
248
+ response = cielo.cancel('123')
249
+ expect(response.success?).to be false
250
+ expect(response.message).to eq "Cielo: 041 - O status 'Nao autorizada' não permite cancelamento."
251
+ end
252
+
253
+ it 'should return an invalid response when occurs an error on void' do
254
+ stub_cielo_request :verify!, 'authorize_success'
255
+ allow_any_instance_of(Cielo::Transaction).to receive(:cancel!).and_return(nil)
256
+
257
+ response = cielo.cancel('123')
258
+ expect(response.success?).to be false
259
+ expect(response.message).to eq 'Cielo: Error when try cancel'
260
+ end
261
+ end
262
+ end
263
+
218
264
  def stub_cielo_request(method, filename)
219
265
  cielo_response = JSON.parse File.read("spec/fixtures/cielo_returns/#{filename}.json"), symbolize_names: true
220
266
  allow_any_instance_of(Cielo::Transaction).to receive(method).and_return(cielo_response)
@@ -159,6 +159,52 @@ describe Spree::PaymentMethod::CieloDebt do
159
159
  end
160
160
  end
161
161
 
162
+ context 'cancel' do
163
+
164
+ context 'successfull canceled' do
165
+
166
+ it 'when transaction is authorized or captured' do
167
+ stub_cielo_request :verify!, 'authorize_success'
168
+ stub_cielo_request :cancel!, 'void_success'
169
+
170
+ response = cielo.cancel('123')
171
+ expect(response.success?).to be true
172
+ expect(response.message).to eq 'Cielo: Canceled successfully'
173
+ end
174
+
175
+ it 'when transaction is created' do
176
+ stub_cielo_request :verify!, 'create_success'
177
+ stub_cielo_request :cancel!, 'void_success'
178
+
179
+ response = cielo.cancel('123')
180
+ expect(response.success?).to be true
181
+ expect(response.message).to eq 'Cielo: Canceled successfully'
182
+ end
183
+
184
+ end
185
+
186
+ context 'error' do
187
+
188
+ it 'should return an invalid response when the request is invalid' do
189
+ stub_cielo_request :verify!, 'authorize_success'
190
+ stub_cielo_request :cancel!, 'void_error'
191
+
192
+ response = cielo.cancel('123')
193
+ expect(response.success?).to be false
194
+ expect(response.message).to eq "Cielo: 041 - O status 'Nao autorizada' não permite cancelamento."
195
+ end
196
+
197
+ it 'should return an invalid response when occurs an error on void' do
198
+ stub_cielo_request :verify!, 'authorize_success'
199
+ allow_any_instance_of(Cielo::Transaction).to receive(:cancel!).and_return(nil)
200
+
201
+ response = cielo.cancel('123')
202
+ expect(response.success?).to be false
203
+ expect(response.message).to eq 'Cielo: Error when try cancel'
204
+ end
205
+ end
206
+ end
207
+
162
208
  def stub_cielo_request(method, filename)
163
209
  cielo_response = JSON.parse File.read("spec/fixtures/cielo_returns/#{filename}.json"), symbolize_names: true
164
210
  allow_any_instance_of(Cielo::Transaction).to receive(method).and_return(cielo_response)
@@ -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.7'
5
+ s.version = '3.0.8'
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'
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.7
4
+ version: 3.0.8
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-16 00:00:00.000000000 Z
11
+ date: 2016-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core