spree_vpago 2.0.8.pre.beta → 2.0.8.pre.beta2
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 +4 -4
- data/Gemfile.lock +1 -1
- data/app/controllers/spree/vpago_payments_controller.rb +6 -0
- data/app/models/spree/gateway/true_money.rb +1 -0
- data/app/models/vpago/payment_decorator.rb +1 -1
- data/app/services/vpago/payment_url_constructor.rb +13 -1
- data/app/views/spree/vpago_payments/forms/spree/gateway/_true_money.html.erb +2 -2
- data/lib/spree_vpago/version.rb +1 -1
- data/lib/vpago/true_money/base.rb +8 -0
- data/lib/vpago/true_money/checkout.rb +14 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d006f101539dd059e92dd575c6a40c036a753638e0f095c4680fb8fec2e3fc27
|
4
|
+
data.tar.gz: 5b7137318a4d5be9fea18f55951414bfc973d39cef0d67b8459aacefcee78c01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40a1984b36bf03669c53488af115deac0ca3b694fe5c039864b0589abf94be54bdd47154d19b47e5a834af13e2ec581dd55e90d54f6021e6543d6c1e0980c3bd
|
7
|
+
data.tar.gz: d0fa00d9485ac9493cbe82d49e1c7a4f5f671f000ea7dd385e17b08dc7304cacb061ff9c3bc3d106bc5bbb76883e2afd8ab7029f702fb1da64ab6fee97251ce4
|
data/Gemfile.lock
CHANGED
@@ -33,6 +33,12 @@ module Spree
|
|
33
33
|
|
34
34
|
@order = @payment.order
|
35
35
|
raise CanCan::AccessDenied unless @order.completed?
|
36
|
+
|
37
|
+
if params[:offsite_payment].present?
|
38
|
+
redirect_to @payment.payment_url, allow_other_host: true
|
39
|
+
else
|
40
|
+
render :success
|
41
|
+
end
|
36
42
|
end
|
37
43
|
|
38
44
|
# POST
|
@@ -9,6 +9,7 @@ module Vpago
|
|
9
9
|
:success_url,
|
10
10
|
:process_payment_url,
|
11
11
|
:processing_app_url,
|
12
|
+
:payment_url,
|
12
13
|
to: :url_constructor
|
13
14
|
end
|
14
15
|
|
@@ -60,7 +61,6 @@ module Vpago
|
|
60
61
|
def vattanac_mini_app_payment?
|
61
62
|
payment_method.type_vattanac_mini_app?
|
62
63
|
end
|
63
|
-
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -17,7 +17,19 @@ module Vpago
|
|
17
17
|
def processing_app_url = "#{@payment.payment_method.preferred_merchant_scheme}/vpago_payments/processing?#{query}"
|
18
18
|
|
19
19
|
def query
|
20
|
-
|
20
|
+
params = {
|
21
|
+
payment_number: payment.number,
|
22
|
+
order_number: order.number,
|
23
|
+
order_jwt_token: order_jwt_token
|
24
|
+
}
|
25
|
+
|
26
|
+
params[:offsite_payment] = true if payment.payment_method.type_true_money?
|
27
|
+
|
28
|
+
params.to_query
|
29
|
+
end
|
30
|
+
|
31
|
+
def payment_url
|
32
|
+
"#{base_url}/book/payment?number=#{@payment.order.number}&tk=#{@payment.order.token}"
|
21
33
|
end
|
22
34
|
|
23
35
|
private
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<% @checkout = ::Vpago::TrueMoney::Checkout.new(@payment) %>
|
2
|
-
<% webview_url = @checkout.generate_payment_urls[:
|
2
|
+
<% webview_url = @checkout.generate_payment_urls[:webview] rescue nil %>
|
3
3
|
|
4
4
|
<% if webview_url.present? %>
|
5
5
|
<script>
|
6
6
|
document.addEventListener("DOMContentLoaded", function () {
|
7
|
-
window.location.href = "<%= j webview_url %>";
|
7
|
+
window.top.location.href = "<%= j webview_url %>";
|
8
8
|
});
|
9
9
|
</script>
|
10
10
|
<% else %>
|
data/lib/spree_vpago/version.rb
CHANGED
@@ -69,6 +69,10 @@ module Vpago
|
|
69
69
|
}
|
70
70
|
end
|
71
71
|
|
72
|
+
def redirection_type
|
73
|
+
payment_method.preferred_redirection_type
|
74
|
+
end
|
75
|
+
|
72
76
|
def check_transaction_url
|
73
77
|
"#{payment_method.preferred_check_transaction_url}/#{external_ref_id}"
|
74
78
|
end
|
@@ -126,6 +130,10 @@ module Vpago
|
|
126
130
|
def signature_input
|
127
131
|
"#{timestamp}#{payload.to_json}"
|
128
132
|
end
|
133
|
+
|
134
|
+
def processing_url
|
135
|
+
"#{@payment.processing_url}&offsite_payment=true"
|
136
|
+
end
|
129
137
|
end
|
130
138
|
end
|
131
139
|
end
|
@@ -2,19 +2,26 @@ module Vpago
|
|
2
2
|
module TrueMoney
|
3
3
|
class Checkout < Base
|
4
4
|
def generate_payment_urls
|
5
|
+
request_body = {
|
6
|
+
payment_info: payload.to_json,
|
7
|
+
redirectionType: redirection_type
|
8
|
+
}
|
9
|
+
|
10
|
+
if redirection_type == 'mobileapp'
|
11
|
+
request_body[:merchantDeepLink] = @payment.processing_app_url
|
12
|
+
request_body[:merchantAndroidPackageName] = merchant_android_package_name
|
13
|
+
else
|
14
|
+
request_body[:refererLink] = @payment.processing_url
|
15
|
+
end
|
16
|
+
|
5
17
|
response = Faraday.post(generate_payment_url) do |req|
|
6
18
|
req.headers = default_headers
|
7
|
-
req.body =
|
8
|
-
payment_info: payload.to_json,
|
9
|
-
redirectionType: 'mobileapp',
|
10
|
-
merchantDeepLink: @payment.processing_app_url,
|
11
|
-
merchantAndroidPackageName: merchant_android_package_name
|
12
|
-
}.to_json
|
19
|
+
req.body = request_body.to_json
|
13
20
|
end
|
14
21
|
|
15
22
|
body = parse_json(response.body)
|
16
23
|
|
17
|
-
raise "Generate Payment Error: #{response.status} - #{body['message'] || response.body}" unless response.success? && body
|
24
|
+
raise "Generate Payment Error: #{response.status} - #{body['message'] || response.body}" unless response.success? && body.dig('status', 'code') == '000001'
|
18
25
|
|
19
26
|
{
|
20
27
|
webview: body['data']['webview'],
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_vpago
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.8.pre.
|
4
|
+
version: 2.0.8.pre.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- You
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-07-
|
11
|
+
date: 2025-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|