lib/active_merchant/billing/gateways/netbanx.rb in activemerchant-1.112.0 vs lib/active_merchant/billing/gateways/netbanx.rb in activemerchant-1.113.0
- old
+ new
@@ -63,13 +63,15 @@
# If the transactions that are pending, API call needs to be Cancellation
settlement_data = get_settlement(authorization)
return settlement_data if settlement_data.message != 'OK'
post = {}
- if settlement_data.params['status'] == 'PENDING'
+ if settlement_data.params['status'] == 'PENDING' && money == settlement_data.params['amount']
post[:status] = 'CANCELLED'
commit(:put, "settlements/#{authorization}", post)
+ elsif settlement_data.params['status'] == 'PENDING' && (money < settlement_data.params['amount'] || money > settlement_data.params['amount'])
+ return Response.new(false, 'Transaction not settled. Either do a full refund or try partial refund after settlement.')
else
add_invoice(post, money, options)
# Setting merchantRefNumber to a unique id for each refund
# This is to support multiple partial refunds for the same order
@@ -194,10 +196,10 @@
country = Country.find(address[:country]) if address[:country]
mapped = {
street: address[:address1],
city: address[:city],
zip: address[:zip],
- state: address[:state],
+ state: address[:state]
}
mapped[:country] = country.code(:alpha2).value unless country.blank?
mapped
end