lib/active_merchant/billing/gateways/cyber_source.rb in activemerchant-1.74.0 vs lib/active_merchant/billing/gateways/cyber_source.rb in activemerchant-1.75.0
- old
+ new
@@ -616,11 +616,11 @@
def add_subscription(xml, options, reference = nil)
options[:subscription] ||= {}
xml.tag! 'recurringSubscriptionInfo' do
if reference
- _, subscription_id, _ = reference.split(";")
+ subscription_id = reference.split(";")[6]
xml.tag! 'subscriptionID', subscription_id
end
xml.tag! 'status', options[:subscription][:status] if options[:subscription][:status]
xml.tag! 'amount', localized_amount(options[:subscription][:amount].to_i, options[:currency] || default_currency) if options[:subscription][:amount]
@@ -707,11 +707,11 @@
end
success = response[:decision] == "ACCEPT"
message = response[:message]
- authorization = success ? [ options[:order_id], response[:requestID], response[:requestToken], action, amount, options[:currency]].compact.join(";") : nil
+ authorization = success ? authorization_from(response, action, amount, options) : nil
Response.new(success, message, response,
:test => test?,
:authorization => authorization,
:avs_result => { :code => response[:avsCode] },
@@ -756,9 +756,14 @@
end
def reason_message(reason_code)
return if reason_code.blank?
@@response_codes[:"r#{reason_code}"]
+ end
+
+ def authorization_from(response, action, amount, options)
+ [options[:order_id], response[:requestID], response[:requestToken], action, amount,
+ options[:currency], response[:subscriptionID]].join(";")
end
end
end
end