killbill-orbital 0.1.15 → 0.1.16

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/orbital/api.rb +19 -12
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c90683dbb5624318660b222ed49996d0d4711d0c
4
- data.tar.gz: 040e8159d7062353b4cd4f14335995fdc86d2a0f
3
+ metadata.gz: 91350a421679b6f95e4962578817e7c0f0df4752
4
+ data.tar.gz: d4a57c435bd04c18aec2e350a82840860c507173
5
5
  SHA512:
6
- metadata.gz: 4e55832e76989ed676bbeddfec7b8a672986b658e897d4d2f39236cce1d9ca1505bd67eba6e3059b20db4b348996fb627b5a97b4dec1842f35be78ab48ea76ff
7
- data.tar.gz: bd5c61ae437ec4faf9536ae94e708035fac9584fcfc91a72fa268576ebbc18d2fb487840520baca1594304a44494b864c44b3dd13e87c408bc3d9add93df1a80
6
+ metadata.gz: 910086570f85138191317e400c3418dee367cde8f924d2ee12dd4460feb2e6daccf6765cde51ed3369246f715bef6d49aac438db3b705be0fa1746401377f552
7
+ data.tar.gz: cc81b8b0ee456cae8f15cabafb7e2cebc066b16ba30fe496de9f1f85b04f674e3e250b481cc072e2e9973a7547f0581a554405f2739707342c9210ac756f67df
data/lib/orbital/api.rb CHANGED
@@ -148,36 +148,42 @@ module Killbill #:nodoc:
148
148
 
149
149
  def try_fix_undefined_trxs(plugin_trxs_info, options, context)
150
150
  stale = false
151
- auth_order_id = find_auth_order_id(plugin_trxs_info)
151
+ auth_order_id, authorization = find_auth_order_id_and_authorization(plugin_trxs_info)
152
152
  plugin_trxs_info.each do |plugin_trx_info|
153
153
  next unless should_try_to_fix_trx plugin_trx_info, options
154
154
  # Resort to auth order id for scenarios like MarkForCapture where Orbital Order Id is not persisted
155
155
  # when remote call fails.
156
156
  order_id = plugin_trx_info.second_payment_reference_id.nil? ? auth_order_id : plugin_trx_info.second_payment_reference_id
157
- stale = true if fix_undefined_trx plugin_trx_info, order_id, context, options
157
+ stale = true if fix_undefined_trx plugin_trx_info, order_id, authorization, context, options
158
158
  end
159
159
  stale
160
160
  end
161
161
 
162
- def find_auth_order_id(plugin_trxs_info)
163
- auth_plugin_info_with_order_id = plugin_trxs_info.find { |info| info.transaction_type == :AUTHORIZE && !info.second_payment_reference_id.nil? }
164
- return auth_plugin_info_with_order_id.nil? ? nil : auth_plugin_info_with_order_id.second_payment_reference_id
162
+ def find_auth_order_id_and_authorization(plugin_trxs_info)
163
+ auth_plugin_info = plugin_trxs_info.find { |info| info.transaction_type == :AUTHORIZE && !info.second_payment_reference_id.nil? }
164
+ if auth_plugin_info.nil?
165
+ return [nil, nil]
166
+ end
167
+ [auth_plugin_info.second_payment_reference_id,
168
+ find_value_from_properties(auth_plugin_info.properties, 'authorization')]
165
169
  end
166
170
 
167
171
  def should_try_to_fix_trx(plugin_trx_info, options)
168
172
  plugin_trx_info.status == :UNDEFINED && pass_delay_time(plugin_trx_info, options)
169
173
  end
170
174
 
171
- def fix_undefined_trx(plugin_trx_info, order_id, context, options)
175
+ def fix_undefined_trx(plugin_trx_info, order_id, authorization, context, options)
172
176
  payment_processor_account_id = find_value_from_properties(plugin_trx_info.properties, 'payment_processor_account_id')
173
177
  trace_number = find_value_from_properties(plugin_trx_info.properties, 'trace_number')
174
178
  return false if trace_number.nil? || order_id.nil? || payment_processor_account_id.nil?
175
179
 
176
180
  gateway = lookup_gateway(payment_processor_account_id, context.tenant_id)
177
181
  if plugin_trx_info.transaction_type == :CAPTURE
178
- response, amount, currency = retry_capture(plugin_trx_info, order_id, trace_number, context, gateway)
182
+ logger.info("Attempt to fix UNDEFINED capture for kb_transaction_id='#{plugin_trx_info.kb_transaction_payment_id}'")
183
+ response, amount, currency = retry_capture(plugin_trx_info, order_id, authorization, trace_number, context, gateway)
179
184
  update_response_if_needed plugin_trx_info, order_id, response, options, amount, currency
180
185
  else
186
+ logger.info("Attempt to query UNDEFINED transaction for kb_transaction_id='#{plugin_trx_info.kb_transaction_payment_id}'")
181
187
  response = inquiry(order_id, trace_number, gateway)
182
188
  update_response_if_needed plugin_trx_info, order_id, response, options
183
189
  end
@@ -228,17 +234,18 @@ module Killbill #:nodoc:
228
234
  gateway.inquiry(order_id, trace_number)
229
235
  end
230
236
 
231
- def retry_capture(plugin_trx_info, order_id, trace_number, context, gateway)
237
+ def retry_capture(plugin_trx_info, order_id, authorization, trace_number, context, gateway)
232
238
  options = {:trace_number => trace_number, :order_id => order_id}
233
- kb_payment = @kb_apis.payment_api.get_payment(plugin_trx_info.kb_payment_id, false, false, [], context)
239
+
240
+ # Pass a cloned object of context to avoid being modified in get_payment via to_java
241
+ kb_payment = @kb_apis.payment_api.get_payment(plugin_trx_info.kb_payment_id, false, false, [], context.clone)
234
242
  kb_transaction = kb_payment.transactions.detect {|trx| trx.id == plugin_trx_info.kb_transaction_payment_id}
235
- linked_trx = @transaction_model.authorizations_from_kb_payment_id(plugin_trx_info.kb_payment_id, context.tenant_id).last
236
243
 
237
244
  amount = kb_transaction.amount
238
245
  currency = kb_transaction.currency
239
246
  return [gateway.capture(to_cents(amount, currency),
240
- linked_trx.txn_id,
241
- options),
247
+ authorization,
248
+ options),
242
249
  amount,
243
250
  currency]
244
251
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: killbill-orbital
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kill Bill core team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-07 00:00:00.000000000 Z
11
+ date: 2019-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement