spree_zaez_cielo 3.0.7 → 3.0.8

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: 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