在ActiveMerchant中,CyberSource授权错误原因102表示无效的商户ID。这通常是由于配置错误导致的。以下是解决方法的代码示例:
config/initializers/active_merchant.rb
文件中添加以下代码:ActiveMerchant::Billing::CyberSourceGateway.wiredump_device = File.open('log/cybersource.log', 'a')
ActiveMerchant::Billing::CyberSourceGateway.wiredump_device.sync = true
ActiveMerchant::Billing::CyberSourceGateway.wiredump_device.binmode
ActiveMerchant::Billing::CyberSourceGateway.wiredump_device.set_encoding(Encoding::BINARY)
cyber_source_options = {
login: 'your_merchant_id',
password: 'your_transaction_key'
}
ActiveMerchant::Billing::Base.mode = :test # 或者 :production
ActiveMerchant::Billing::CyberSourceGateway.new(cyber_source_options)
确保替换your_merchant_id
和your_transaction_key
为您自己的商户ID和交易密钥。
确保您在CyberSource账户设置中启用了网关访问。登录到CyberSource商户门户,导航到"账户管理" > "访问管理",确保您的账户有权访问网关。
检查您的CyberSource商户ID是否正确。登录到CyberSource商户门户,导航到"账户管理" > "商户设置",确保您的商户ID与ActiveMerchant配置文件中的商户ID一致。
如果您正在使用CyberSource测试环境,请确保您在ActiveMerchant配置文件中将ActiveMerchant::Billing::Base.mode
设置为:test
。如果您正在使用CyberSource生产环境,请将其设置为:production
。
如果您仍然遇到问题,建议查看ActiveMerchant和CyberSource的文档,以获取更多关于配置和错误处理的信息。