spree_vpago 2.2.2.pre.pre38 → 2.2.2.pre.pre40

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: 6f928f176e0a9faa7c833f8a84357ef1b47b54e90317a746572e82990ec2fb70
4
- data.tar.gz: 2575d2d9ed15e63f58efa5ab80efe48a82f21cadef0b42e0277d59b64adfe98e
3
+ metadata.gz: ba1b0a5520634444abf62c6b2bd65ed6660be8bbad0f53ae16a3eb359cabe260
4
+ data.tar.gz: 56fc2911ed815ec53799f6d0a6456d64798e513de758830e34c79af6b871df16
5
5
  SHA512:
6
- metadata.gz: 1c783db7c54b8692924880f17c19e589e7b0ed097031fd93778e701364e5520c341e02ae1c2bf957ae4c014450d9411bfee35a14e73c27327ce6418e2d903c42
7
- data.tar.gz: aa2a7c19225b123ef6e6c1dd1531cef9402fe67c7fbf04da3aa035ab54f46a5214501fbcbb4bf2393f84a602ba813fdf4cbe60910a1aa0937f126c9619a58572
6
+ metadata.gz: b29505ce698611342dc6eb6ab1a787cb8ec7a427244a25db1cd476b17431b0425603fd6b8b8cb30ba5262155e5a701d910f5a4bb182815bc64b6daf151fa5f6f
7
+ data.tar.gz: fd7291a06bb337ea5be06da2d0ef7cd2bd0affec96c73057d9d34eceda56b44ec7954347bf1b2858dcd3aa207bca9b5a72db66e101e62c6179b7e1b17038ea91
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- spree_vpago (2.2.2.pre.pre38)
4
+ spree_vpago (2.2.2.pre.pre40)
5
5
  faraday
6
6
  google-cloud-firestore
7
7
  spree_api (>= 4.5)
@@ -16,6 +16,8 @@ module Spree
16
16
  return redirect_to @payment.processing_url, allow_other_host: true unless @payment.checkout?
17
17
 
18
18
  @order = @payment.order
19
+
20
+ Rails.logger.info("[Vpago][#{@payment.number}] Showing checkout page for order #{@order.number}")
19
21
  end
20
22
 
21
23
  # GET
@@ -25,7 +27,7 @@ module Spree
25
27
 
26
28
  @order = @payment.order
27
29
 
28
- Rails.logger.info("[Vpago] Showing processing page for payment #{@payment.number} for order #{@order.number}")
30
+ Rails.logger.info("[Vpago][#{@payment.number}] Showing processing page for order #{@order.number}")
29
31
  end
30
32
 
31
33
  # GET
@@ -36,7 +38,7 @@ module Spree
36
38
  @order = @payment.order
37
39
  raise CanCan::AccessDenied unless @order.completed?
38
40
 
39
- Rails.logger.info("[Vpago] Showing success page for payment #{@payment.number} for order #{@order.number}")
41
+ Rails.logger.info("[Vpago][#{@payment.number}] Showing success page for order #{@order.number}")
40
42
  end
41
43
 
42
44
  # GET
@@ -48,9 +50,9 @@ module Spree
48
50
  return render json: { status: :failed }, status: :ok if @payment.failed?
49
51
 
50
52
  if @payment.payment_method.support_check_transaction_api?
51
- Rails.logger.info("[Vpago] Checking transaction for payment #{@payment.number}")
53
+ Rails.logger.info("[Vpago][#{@payment.number}] Checking transaction for payment #{@payment.number}")
52
54
  checker = @payment.payment_method.check_transaction(@payment)
53
- Rails.logger.info("[Vpago] Check transaction result for payment #{@payment.number} with success: #{checker.success?}, failed: #{checker.try(:failed?)}")
55
+ Rails.logger.info("[Vpago][#{@payment.number}] Check transaction result for payment #{@payment.number} with success: #{checker.success?}, failed: #{checker.try(:failed?)}")
54
56
 
55
57
  if checker.success?
56
58
  render json: { status: :success }, status: :ok
@@ -60,43 +62,46 @@ module Spree
60
62
  render json: { status: :pending }, status: :ok
61
63
  end
62
64
  else
65
+ Rails.logger.info("[Vpago][#{@payment.number}] Payment method does not support check transaction API")
63
66
  render json: { status: :pending }, status: :ok
64
67
  end
65
68
  end
66
69
 
67
70
  # POST
68
71
  def process_payment
69
- Rails.logger.info("[Vpago] Received payment notification: method=#{request.method}, params=#{params.to_unsafe_h}")
70
72
  return render json: { status: :ok }, status: :ok if request.method != 'POST'
71
73
 
72
74
  return_params = sanitize_return_params
73
75
  @payment = Vpago::PaymentFinder.new(return_params).find_and_verify
74
76
 
77
+ # log process payment requested
78
+ Rails.logger.info("[Vpago][#{@payment&.number}] Process payment requested with params: #{return_params}")
79
+
75
80
  if @payment.nil?
76
81
  Rails.logger.error("[Vpago] Payment not found for params: #{return_params}")
77
82
  return render_not_found
78
83
  end
79
84
 
80
- Rails.logger.info("[Vpago] Payment found: #{@payment&.number}, order: #{@payment&.order&.number}")
85
+ Rails.logger.info("[Vpago][#{@payment.number}] Payment found: #{@payment&.number}, order: #{@payment&.order&.number}")
81
86
 
82
87
  # for ABA reviewing mode, we can disable pushback from bank, and only process it from our app UI instead.
83
88
  # This will give ABA team to know that we don't rely on just pushback and have fallback to process payment.
84
89
  if @payment.payment_method.type_payway_v2? && @payment.payment_method.reviewing_mode? && request_from_external_server?
85
- Rails.logger.info("[Vpago] Received payment notification from bank in reviewing mode, skipping processing: #{params}")
90
+ Rails.logger.info("[Vpago][#{@payment.number}] Received payment notification from bank in reviewing mode, skipping processing")
86
91
  return render json: { status: :ok }, status: :ok
87
92
  end
88
93
 
89
94
  unless @payment.order.paid?
90
- Rails.logger.info("[Vpago] Enqueuing payment processor job for payment #{@payment.number}: #{params}")
95
+ Rails.logger.info("[Vpago][#{@payment.number}] Enqueuing payment processor job for payment #{@payment.number}")
91
96
  Vpago::PaymentProcessorJob.perform_later(
92
97
  payment_number: @payment.number
93
98
  )
94
99
  end
95
100
 
96
- Rails.logger.info("[Vpago] Successfully enqueued payment processor job for payment #{@payment.number}: #{params}")
101
+ Rails.logger.info("[Vpago][#{@payment.number}] Successfully enqueued payment processor job for payment #{@payment.number}")
97
102
  render json: { status: :ok }, status: :ok
98
103
  rescue StandardError => e
99
- Rails.logger.error("[Vpago] Failed to enqueue payment processor job: #{params} #{e.message}")
104
+ Rails.logger.error("[Vpago][#{@payment.number}] Failed to enqueue payment processor job for payment #{@payment.number}: #{e.message}")
100
105
  render json: { status: :internal_server_error, message: 'Failed to enqueue payment processor job' }, status: :internal_server_error
101
106
  end
102
107
 
@@ -108,11 +113,11 @@ module Spree
108
113
  return render_not_found unless @payment
109
114
 
110
115
  Vpago::PaymentProcessorJob.perform_later(payment_number: @payment.number) unless @payment.order.paid?
111
- Rails.logger.info("[Vpago] Successfully enqueued payment processor job for payment #{@payment.number}: #{params}")
116
+ Rails.logger.info("[Vpago][#{@payment.number}] Successfully enqueued payment processor job for payment #{@payment.number}")
112
117
 
113
118
  render json: { status: { code: '000001', message: 'success' }, data: nil }, status: :ok
114
119
  rescue StandardError => e
115
- Rails.logger.error("[Vpago] Failed to enqueue payment processor job: #{params} #{e.message}")
120
+ Rails.logger.error("[Vpago][#{@payment.number}] Failed to enqueue payment processor job for payment #{@payment.number}: #{e.message}")
116
121
  render json: { status: :internal_server_error, message: 'Failed to enqueue payment processor job' }, status: :internal_server_error
117
122
  end
118
123
 
@@ -33,6 +33,8 @@ module Vpago
33
33
  end
34
34
  end
35
35
 
36
+ # Stores preloaded payout IDs in private_metadata to avoid N+1 queries
37
+ # when checking whether payouts exist for this payment.
36
38
  def preload_payout_ids=(ids)
37
39
  self.private_metadata ||= {}
38
40
  self.private_metadata['preload_payout_ids'] = ids
@@ -115,4 +117,4 @@ module Vpago
115
117
  end
116
118
  end
117
119
 
118
- Spree::Payment.prepend(Vpago::PaymentDecorator) unless Spree::Payment.included_modules.include?(Vpago::PaymentDecorator)
120
+ Spree::Payment.prepend(Vpago::PaymentDecorator) unless Spree::Payment.include?(Vpago::PaymentDecorator)
@@ -72,7 +72,7 @@
72
72
 
73
73
  shouldShowRedirectContainer = !shouldOpenCheckoutUrl && shouldOpenAbaPayDeeplink;
74
74
  if(shouldShowRedirectContainer){
75
- showRedirectContainer("Open ABA Mobile", () => openDeeplinkUrl(data.abapay_deeplink));
75
+ showRedirectContainer("Open ABA Mobile", () => window.location.href = data.abapay_deeplink);
76
76
  }
77
77
  })
78
78
  .catch(function(error) {
@@ -1,7 +1,7 @@
1
1
  module SpreeVpago
2
2
  module_function
3
3
 
4
- VERSION = '2.2.2-pre38'.freeze
4
+ VERSION = '2.2.2-pre40'.freeze
5
5
 
6
6
  def version
7
7
  Gem::Version.new VERSION
@@ -56,7 +56,7 @@ module Vpago
56
56
  end
57
57
 
58
58
  def items_eligible?
59
- @payment&.order&.line_items&.all?(&:sufficient_stock?) == true
59
+ @payment&.order&.line_items&.all?(&:sufficient_stock?) == true # rubocop:disable Style/SafeNavigationChainLength
60
60
  end
61
61
  end
62
62
  end
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.2.2.pre.pre38
4
+ version: 2.2.2.pre.pre40
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-23 00:00:00.000000000 Z
11
+ date: 2026-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday