effective_orders 6.32.0 → 6.32.2

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
  SHA256:
3
- metadata.gz: 97d5089149494797ab6704bc03da3919a04619ceffe9e51c2f81de5343c6d525
4
- data.tar.gz: d4dc29472beac39508adf8bf61c991380b5626a0ad2227b55897b51c500221c0
3
+ metadata.gz: 0f51ea548ef96074bb66ede0cf1656b1ccf4ac73b810a1b5d41dc84f61ff3d78
4
+ data.tar.gz: b884d8b50d14ecb6d55f199003c58a903ee9a086b32c65e0fc00ccb1868edbed
5
5
  SHA512:
6
- metadata.gz: 8508e2cdc5ea25f4d5400f5f1cd8a3b7933179114cfca1005a67ec985094e05091b429223dc215e75286f05ee7abb1bdf815b3be637aa3e218b8e7e722325702
7
- data.tar.gz: 31b5c5a272bf5431012f65390a898f8ca6cab6a8d304a023e4829aaa9ca04e686dc5645808141f05a680489691973cc9d8315099c433d8a35b461c75971bc639
6
+ metadata.gz: 5e8bcb7e9b5d3b9b4eb54d673db566630a125f6fd7224670d56d7094d347035be79d9a74e299b3028e1daec994d80577996c9ec6d7da3e1b91de9720518cf9e0
7
+ data.tar.gz: 18426d89a198672f566a65be9b82db09ed2131f41d2cc01a3a6581b75ad39df5dec195c411a2d6bf50517a700935d416f0beabba67a419ea126813efcdb68270
@@ -32,13 +32,21 @@ function helcimPayIframeEvent(event) {
32
32
  window.removeEventListener('message', helcimPayIframeEvent, false);
33
33
 
34
34
  let payment = btoa(event.data.eventMessage);
35
-
35
+
36
36
  let $form = $('form[data-helcim-checkout]').first();
37
37
  $form.find('input[name="helcim[payment]"]').val(payment);
38
38
  $form.submit();
39
-
39
+
40
40
  $('#helcimCheckout').fadeOut('slow');
41
41
  $('#helcim-checkout-loading').text('Thank you! Processing payment information. Please wait...');
42
42
  }
43
+
44
+ if(event.data.eventStatus == 'ABORTED') {
45
+ let payment = btoa(event.data.eventMessage);
46
+
47
+ let $form = $('form[data-helcim-checkout]').first();
48
+ $form.find('input[name="helcim[payment]"]').val(payment);
49
+ $form.submit();
50
+ }
43
51
  }
44
52
  };
@@ -86,7 +86,7 @@ module Effective
86
86
  # Always step1
87
87
  def edit
88
88
  @order ||= Effective::Order.deep.was_not_purchased.find(params[:id])
89
- @page_title ||= view_context.order_page_title(@order)
89
+ @page_title ||= 'Order Review'
90
90
 
91
91
  EffectiveResources.authorize!(self, :edit, @order)
92
92
  end
@@ -17,6 +17,12 @@ module Effective
17
17
  # Decode the payment payload
18
18
  payment_payload = api.decode_payment_payload(helcim_params[:payment])
19
19
 
20
+ # Check for a declined payment payload
21
+ if payment_payload == :declined
22
+ return order_declined(payment: {}, provider: 'helcim', card: nil, declined_url: helcim_params[:declined_url])
23
+ end
24
+
25
+ # Check for an unexpected payment payload
20
26
  if payment_payload.blank?
21
27
  flash[:danger] = 'Unable to process helcim order without payment. please try again.'
22
28
  return order_not_processed(declined_url: helcim_params[:declined_url])
@@ -83,16 +83,6 @@ module EffectiveOrdersHelper
83
83
  render(partial: 'effective/orders/order', locals: { order: order })
84
84
  end
85
85
 
86
- def order_page_title(order)
87
- raise 'expected an order' unless order.kind_of?(Effective::Order)
88
-
89
- if controller.action_name == 'edit'
90
- 'Order Review'
91
- else
92
- order.to_s
93
- end
94
- end
95
-
96
86
  def render_checkout(order, namespace: nil, purchased_url: nil, declined_url: nil, deferred_url: nil)
97
87
  raise 'expected an order' unless order.kind_of?(Effective::Order)
98
88
  raise 'unable to checkout an order without a user or organization' if order && (order.user.blank? && order.organization.blank?)
@@ -1,5 +1,7 @@
1
1
  # https://devdocs.helcim.com/docs/overview-of-helcimpayjs
2
2
  # Effective::HelcimApi.new.health_check
3
+ # use card 4242, expiry 01/28, CVV 209 for a general decline
4
+
3
5
  module Effective
4
6
  class HelcimApi
5
7
  # All required
@@ -134,12 +136,22 @@ module Effective
134
136
  # "invoiceNumber"=>"#26-1760118464",
135
137
  # "customerCode"=>"CST0000"}
136
138
 
139
+ # When the payment is aborted, the decoded payload is a string with the error
140
+ # "HelcimPay.js transaction aborted - \"Transaction declined. DECLINED - Do Not Honor\"
141
+
137
142
  def decode_payment_payload(payload)
138
143
  return if payload.blank?
139
144
  raise('expected a string') unless payload.kind_of?(String)
140
145
 
141
- payment = (JSON.parse(Base64.decode64(payload)) rescue nil)
142
- raise('expected payment to be a Hash') unless payment.kind_of?(Hash)
146
+ decoded = (Base64.decode64(payload) rescue nil)
147
+ payment = (JSON.parse(decoded) rescue nil)
148
+
149
+ if payment.blank? && decoded.to_s.downcase.include?('declined')
150
+ return :declined
151
+ end
152
+
153
+ raise('expected payment to be a Hash') unless payment.kind_of?(Hash) || payment.blank?
154
+ return payment if payment.blank?
143
155
 
144
156
  payment = payment.dig('data', 'data')
145
157
  raise('expected payment data') unless payment.kind_of?(Hash)
@@ -1,3 +1,3 @@
1
1
  module EffectiveOrders
2
- VERSION = '6.32.0'.freeze
2
+ VERSION = '6.32.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_orders
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.32.0
4
+ version: 6.32.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 7.2.0
19
+ version: 4.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 7.2.0
26
+ version: 4.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: coffee-rails
29
29
  requirement: !ruby/object:Gem::Requirement