ActiveMerchant Cybersource授权错误原因102



我正在调试一个当前在Ruby 2.5.8ActiveMerchant 1.117.0上运行的应用程序。

我能够成功创建并保存订阅。但是,当我尝试对保存的卡进行授权时,我会得到reasonCode 102。Cybersource网关端的错误为the subscription () could not be found

我正在尝试使用以下功能进行授权:

def authorize(token, amount, order_id, line_items)
response = gateway.authorize(amount, token, order_id: order_id, line_items: line_items)
if !response.success?
raise Exceptions::ChargeFailed.new(response.message, response: response)
end
response
end

这个错误会让我相信这里的格式不正确。有人能给我举一些ActiveMerchant CyberSource授权订阅的例子吗?或者指出这里可能出了什么问题?

经过一番挖掘,ActiveMerchant CyberSource gem 内部的代币分配逻辑似乎发生了变化

最初的逻辑是:

if reference
_, subscription_id, _ = reference.split(";")
xml.tag! 'subscriptionID',  subscription_id
end

最新版本转向:

if reference
subscription_id = reference.split(";")[6]
xml.tag! 'subscriptionID',  subscription_id
end

我之前使用的应用程序将CyberSource配置文件/订阅id格式化为;#{token};。为了使用这些最新的更新,令牌需要格式化为;;;;;;#{token}

相关内容

  • 没有找到相关文章

最新更新