spree_mollie_gateway 2.1.2 → 2.1.3

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
  SHA256:
3
- metadata.gz: 9f6749beb7795bf09ac3127a8cb795b6a614441ca70713d4ff253df8907c5a46
4
- data.tar.gz: e104df4591e9cdd0f89e34b8922c2f1c49aafa694a7aa6564b5da3dad0764fbe
3
+ metadata.gz: 32d7000b5df3e9c1692a377c76a02eb027f5a23c327caab3501ed33738e53b41
4
+ data.tar.gz: 264ac25b2cabd240940ef786fdf1ce073ba5123f474a404317c85d5e34ec3413
5
5
  SHA512:
6
- metadata.gz: 71ddd793c5e0391bfce434d18b6bb2f91cbd56daa9aa33882d9641b344a527096f8fa82ef578643c91f899cd05a9fd76bbc15bb0cb27708fe0211c0e6221554c
7
- data.tar.gz: 35ba15747c8c489ec7a7452d08b2343c790a4a4cc171a1ce5481f34be6f57b0584367cbcc39bbeaa349da4da27ddd40e5cab50bac523eb8d3dfc2d422acb24e0
6
+ metadata.gz: b05f422beb1c93fd37666ee8623da192ad579ea47a4c4d4d17ab14a7c8e732f9732b05e469c0ce777eabfef681558aff500b8f1fb980fc7070492268a16fad6d
7
+ data.tar.gz: feafb23e5e1071e06c5136685192f979da76749b5e780dfd3388f099188867cd3f186d06950a2291cb4c53a94d90c72897d9c36fcecc4be154096fa805613fbf
data/.travis.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.2.7
4
+ - 2.3.0
5
5
  before_install: gem install bundler -v 1.16.1
6
6
  deploy:
7
7
  provider: rubygems
@@ -75,7 +75,7 @@ module Spree
75
75
  customer = Mollie::Customer.create(
76
76
  email: user.email,
77
77
  api_key: get_preference(:api_key),
78
- )
78
+ )
79
79
  MollieLogger.debug("Created a Mollie Customer for Spree user with ID #{customer.id}")
80
80
  customer
81
81
  end
@@ -168,15 +168,22 @@ module Spree
168
168
  end
169
169
 
170
170
  def cancel(transaction_id)
171
+ MollieLogger.debug("Starting cancelation for #{transaction_id}")
172
+
171
173
  begin
172
174
  mollie_payment = ::Mollie::Payment.get(
173
175
  transaction_id,
174
176
  api_key: get_preference(:api_key)
175
177
  )
176
- mollie_payment.delete(transaction_id) if mollie_payment.cancelable?
177
- ActiveMerchant::Billing::Response.new(true, 'Payment canceled successful')
178
+ if mollie_payment.cancelable?
179
+ mollie_payment.delete(transaction_id)
180
+ ActiveMerchant::Billing::Response.new(true, 'Mollie payment has been cancelled')
181
+ else
182
+ MollieLogger.debug("Molie payment #{transaction_id} is not cancelable. Skipping any further updates.")
183
+ ActiveMerchant::Billing::Response.new(true, 'Mollie payment has not been cancelled because it is not cancelable')
184
+ end
178
185
  rescue Mollie::Exception => e
179
- MollieLogger.debug("Payment could not be canceled #{transaction_id}: #{e.message}")
186
+ MollieLogger.debug("Payment #{transaction_id} could not be canceled: #{e.message}")
180
187
  ActiveMerchant::Billing::Response.new(false, 'Payment cancellation unsuccessful')
181
188
  end
182
189
  end
@@ -215,23 +222,35 @@ module Spree
215
222
  api_key: get_preference(:api_key)
216
223
  )
217
224
 
218
- MollieLogger.debug("Updating order state for payment. Payment has state #{mollie_payment.status}")
219
-
225
+ MollieLogger.debug("Checking Mollie payment status. Mollie payment has status #{mollie_payment.status}")
220
226
  update_by_mollie_status!(mollie_payment, payment)
221
227
  end
222
228
 
223
229
  def update_by_mollie_status!(mollie_payment, payment)
224
230
  case mollie_payment.status
225
- when 'paid'
226
- payment.complete! unless payment.completed?
227
- payment.order.finalize!
228
- payment.order.update_attributes(:state => 'complete', :completed_at => Time.now)
229
- when 'canceled', 'expired', 'failed'
230
- payment.failure! unless payment.failed?
231
- payment.order.update_attributes(:state => 'payment', :completed_at => nil)
232
- else
233
- MollieLogger.debug('Unhandled Mollie payment state received. Therefore we did not update the payment state.')
234
- payment.order.update_attributes(state: 'payment', completed_at: nil)
231
+ when 'paid'
232
+ # If Mollie payment is already paid and refunded amount is more than 0, don't update payment
233
+ if mollie_payment.paid? && mollie_payment.amount_refunded.value > 0
234
+ MollieLogger.debug('Payment is refunded. Not updating the payment status within Spree.')
235
+ return
236
+ end
237
+
238
+ if payment.completed?
239
+ MollieLogger.debug('Payment is already completed. Not updating the payment status within Spree.')
240
+ return
241
+ end
242
+
243
+ # If order is already paid for, don't mark it as complete again.
244
+ payment.complete!
245
+ payment.order.finalize!
246
+ payment.order.update_attributes(:state => 'complete', :completed_at => Time.now)
247
+ MollieLogger.debug('Payment is paid and will transition to completed. Order will be finalized.')
248
+ when 'canceled', 'expired', 'failed'
249
+ payment.failure! unless payment.failed?
250
+ payment.order.update_attributes(:state => 'payment', :completed_at => nil)
251
+ else
252
+ MollieLogger.debug('Unhandled Mollie payment state received. Therefore we did not update the payment state.')
253
+ payment.order.update_attributes(state: 'payment', completed_at: nil)
235
254
  end
236
255
 
237
256
  payment.source.update(status: payment.state)
@@ -1,3 +1,3 @@
1
1
  module SpreeMollieGateway
2
- VERSION = '2.1.2'
2
+ VERSION = '2.1.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_mollie_gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vernon de Goede
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-11 00:00:00.000000000 Z
11
+ date: 2018-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core