lib/active_merchant/billing/gateways/forte.rb in activemerchant-1.86.0 vs lib/active_merchant/billing/gateways/forte.rb in activemerchant-1.87.0
- old
+ new
@@ -189,11 +189,11 @@
Response.new(
success_from(response),
message_from(response),
response,
- authorization: authorization_from(response),
+ authorization: authorization_from(response, parameters),
avs_result: AVSResult.new(code: response['response']['avs_result']),
cvv_result: CVVResult.new(response['response']['cvv_code']),
test: test?
)
end
@@ -217,12 +217,16 @@
def message_from(response)
response['response']['response_desc']
end
- def authorization_from(response)
- [response.try(:[], 'transaction_id'), response.try(:[], 'response').try(:[], 'authorization_code')].join('#')
+ def authorization_from(response, parameters)
+ if parameters[:action] == 'capture'
+ [response['transaction_id'], response.dig('response', 'authorization_code'), parameters[:transaction_id], parameters[:authorization_code]].join('#')
+ else
+ [response['transaction_id'], response.dig('response', 'authorization_code')].join('#')
+ end
end
def endpoint
"/accounts/act_#{@options[:account_id].strip}/locations/loc_#{@options[:location_id].strip}/transactions/"
end
@@ -251,16 +255,16 @@
def split_authorization(authorization)
authorization.split('#')
end
def authorization_code_from(authorization)
- _, authorization_code = split_authorization(authorization)
- authorization_code
+ _, authorization_code, _, original_auth_authorization_code = split_authorization(authorization)
+ original_auth_authorization_code.present? ? original_auth_authorization_code : authorization_code
end
def transaction_id_from(authorization)
- transaction_id, _ = split_authorization(authorization)
- transaction_id
+ transaction_id, _, original_auth_transaction_id, _= split_authorization(authorization)
+ original_auth_transaction_id.present? ? original_auth_transaction_id : transaction_id
end
end
end
end