spree_vpago 2.0.8.pre.beta9 → 2.0.8.pre.beta11

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: 41ae1b041537ad47af66ebd8dabb355603b9692e5bcaee0d64811c8a99e16799
4
- data.tar.gz: b53481a96674d16239a2ffcb9a6990f95972c2d17d8407ae427bcc04efcd47e3
3
+ metadata.gz: 585696d448dbf93a95e724e1aa388c4298c09a413dcb602d025910ea9c50127e
4
+ data.tar.gz: 6be8d0700b63a768d464ad1ca8b8db49e689509b4594b969cfb65a64dbe3f112
5
5
  SHA512:
6
- metadata.gz: 5260086f8373dc170bfca0b6136689fbaa20ddf2857d1d0864fd8adba103cbc75ba1a37f1c6d99debb2807feb2206229447041703595421c5431e1e2381cab51
7
- data.tar.gz: da555201c4e37e05bb4d9e42818c5af09a429dbc295bc93c3f834bc6206ec1311fd2fe96839a03bb7c45010455e4b57a1cbd5580a3b309de1fec5331b8ab7b60
6
+ metadata.gz: a18622fcacc3b06b25d378be98696c41f70cd5c56f46e312226fe907c62c0c64ff62473bef149ae459eae88bc2c9094572f5ccfa33ee41196576135d4a4d1c43
7
+ data.tar.gz: 298b91f109fbdb2ac1629e06a7d57328136a837de11163a593ce4205da43e3a4f9e97e623abf7e16d092a0198c89e6f8238878d5d95106ca80b9c324e9488121
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- spree_vpago (2.0.8.pre.beta9)
4
+ spree_vpago (2.0.8.pre.beta11)
5
5
  faraday
6
6
  google-cloud-firestore
7
7
  spree_api (>= 4.5)
@@ -7,7 +7,6 @@ module Vpago
7
7
  base.delegate :checkout_url,
8
8
  :web_checkout_url,
9
9
  :processing_url,
10
- :processing_deeplink_url,
11
10
  :success_url,
12
11
  :process_payment_url,
13
12
  to: :url_constructor
@@ -12,7 +12,6 @@ module Vpago
12
12
  def checkout_url = "#{base_url}/vpago_payments/checkout?#{query}&platform=app"
13
13
  def web_checkout_url = "#{base_url}/vpago_payments/checkout?#{query}&platform=web"
14
14
  def processing_url = "#{base_url}/vpago_payments/processing?#{query}"
15
- def processing_deeplink_url = "#{@payment.payment_method.preferred_return_url_scheme}/vpago_payments/processing?#{query}"
16
15
  def success_url = "#{base_url}/vpago_payments/success?#{query}"
17
16
  def process_payment_url = "#{base_url}/vpago_payments/process_payment?#{query}"
18
17
 
@@ -4,40 +4,31 @@
4
4
 
5
5
  <script>
6
6
  document.addEventListener("DOMContentLoaded", () => {
7
+ const platform = "<%= params[:platform] %>";
8
+ const redirectUrl = "<%= j redirect_url %>";
9
+ const confirmButton = document.getElementById("confirm-payment-button");
10
+ const firebaseConfigs = <%= Rails.application.credentials.firebase_web_config.to_json.html_safe %>;
11
+ const docRefPath = "<%= @payment.user_informer.document_reference_path %>";
12
+ const successUrl = "<%= @payment.success_url %>";
13
+
14
+ function setupConfirmPaymentButton() {
15
+ if (platform === "app") {
16
+ if (confirmButton) confirmButton.style.display = "none";
17
+ window.location.href = redirectUrl;
18
+ } else if (confirmButton) {
19
+ confirmButton.addEventListener("click", () => window.open(redirectUrl, "_blank"));
20
+ }
21
+ }
7
22
 
8
- const setupConfirmPaymentButton = () => {
9
- const confirmButton = document.getElementById("confirm-payment-button");
10
- if (!confirmButton) return;
11
-
12
- confirmButton.addEventListener("click", () => {
13
- window.open("<%= j redirect_url %>", "_blank");
14
- });
15
- };
16
-
17
- const setupPaymentProcessingListener = () => {
18
- const firebaseConfigs = <%= Rails.application.credentials.firebase_web_config.to_json.html_safe %>;
19
- const documentReferencePath = "<%= @payment.user_informer.document_reference_path %>";
20
- const successUrl = "<%= @payment.success_url %>";
21
-
23
+ function setupPaymentProcessingListener() {
22
24
  if (window.initPaymentProcessingListener) {
23
- window.initPaymentProcessingListener(firebaseConfigs, documentReferencePath, successUrl);
25
+ window.initPaymentProcessingListener(firebaseConfigs, docRefPath, successUrl);
24
26
  } else {
25
27
  console.warn("initPaymentProcessingListener is not defined");
26
28
  }
27
- };
29
+ }
28
30
 
29
31
  setupConfirmPaymentButton();
30
32
  setupPaymentProcessingListener();
31
-
32
33
  });
33
34
  </script>
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
@@ -1,7 +1,7 @@
1
1
  module SpreeVpago
2
2
  module_function
3
3
 
4
- VERSION = '2.0.8-beta9'.freeze
4
+ VERSION = '2.0.8-beta11'.freeze
5
5
 
6
6
  def version
7
7
  Gem::Version.new VERSION
@@ -95,10 +95,6 @@ module Vpago
95
95
  {}
96
96
  end
97
97
 
98
- def payment_method
99
- @payment.payment_method
100
- end
101
-
102
98
  def fetch_access_token
103
99
  response = Faraday.post(
104
100
  access_token_url,
@@ -115,6 +111,30 @@ module Vpago
115
111
  JSON.parse(response.body).fetch('access_token')
116
112
  end
117
113
 
114
+ def return_url_scheme
115
+ payment_method.preferred_return_url_scheme
116
+ end
117
+
118
+ def return_deeplink
119
+ "#{return_url_scheme}/vpago_payments/processing?payment_number=#{external_ref_id}&order_number=#{order.number}&order_jwt_token=#{order_jwt_token}"
120
+ end
121
+
122
+ def order_jwt_token
123
+ @order_jwt_token ||= JWT.encode(jwt_payload, order.token, 'HS256')
124
+ end
125
+
126
+ def order
127
+ @payment.order
128
+ end
129
+
130
+ def jwt_payload
131
+ { order_number: order.number, order_id: order.id }
132
+ end
133
+
134
+ def payment_method
135
+ @payment.payment_method
136
+ end
137
+
118
138
  def algorithm
119
139
  DEFAULT_ALGORITHM
120
140
  end
@@ -7,7 +7,7 @@ module Vpago
7
7
  request_body = {
8
8
  payment_info: payload.to_json,
9
9
  redirectionType: redirection_type,
10
- merchantDeepLink: @payment.processing_deeplink_url,
10
+ merchantDeepLink: return_deeplink,
11
11
  merchantAndroidPackageName: android_package_name,
12
12
  refererLink: @payment.processing_url
13
13
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_vpago
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.8.pre.beta9
4
+ version: 2.0.8.pre.beta11
5
5
  platform: ruby
6
6
  authors:
7
7
  - You