rails activemerchant authorize.net 问题

Posted

技术标签:

【中文标题】rails activemerchant authorize.net 问题【英文标题】:rails activemerchant authorize.net problems 【发布时间】:2015-12-11 06:59:56 【问题描述】:

我有一个 Authorize.net 帐户,用于在我的电子商务网站上进行抄送处理,并且我使用 ActiveMerchant 来验证交易。直到不久前它工作得很好,然后就停止了。我不知道为什么。当我在测试模式下运行它时,它工作正常,创建交易并成功授权资金。但是当我尝试使用真实账户时,它失败了。当我从控制台运行它时,代码如下:

cc_hash =
  :first_name         => 'Donald',
  :last_name          => 'Duck',
  :number             => '4007000000027',
  :month              => '8',
  :year               => Time.now.year+1,
  :verification_value => '000'

card = ActiveMerchant::Billing::CreditCard.new(cc_hash)

#--- valid?
RYeller.bar
if card.valid?
  puts "card valid"
else
  puts "card not valid"
end

#ActiveMerchant::Billing::Base.mode = :test
#gateway = ActiveMerchant::Billing::AuthorizeNetGateway.new(:login=>'scrubbed',:password=>'scrubbed')

ActiveMerchant::Billing::Base.mode = :production
gateway = ActiveMerchant::Billing::AuthorizeNetGateway.new(:login=>'scrubbed',:password=>'scrubbed')

amount  = rand(1000)+2500 
options = 
options[:order_id]    = "WEBSITE 26"
options[:description] = 'WEBSITE TEST'

#--- authorize transaction
response = gateway.authorize(amount, card, options)
puts response.inspect

当我在测试模式下运行它时,在我的沙盒帐户中(上面代码中注释掉的两行) - 它工作正常。当我在我的真实帐户上运行它时(代码如上) - 我收到一个错误:“处理过程中发生错误。请致电商家服务提供商。”完整的响应哈希是:

#<ActiveMerchant::Billing::Response:0x1078607d8 @fraud_review=false, @params="response_reason_code"=>"35", "avs_result_code"=>"P", "transaction_id"=>"scrubbed", "response_code"=>2, "response_reason_text"=>"An error occurred during processing. Call Merchant Service Provider.", "card_code"=>"P", @message="An error occurred during processing. Call Merchant Service Provider", @authorization="scrubbed", @test=false, @cvv_result="message"=>"Not Processed", "code"=>"P", @success=false, @avs_result="message"=>"Postal code matches, but street address not verified.", "street_match"=>nil, "postal_match"=>"Y", "code"=>"P">

我正在使用测试 CC 编号和 card.valid?测试返回真。

当我查看 Authorize.net 中的交易时,我看到了所有已创建的交易和所有正确的信息,但交易代码是一般错误。

有什么想法吗?非常感谢您的帮助,我已经走到了尽头,并且正在快速下沉。

【问题讨论】:

【参考方案1】:

您的产品 Authorize.net 是否处于测试模式?否则,唐老鸭将无法使用假信用卡结账。

您应该能够登录到您的生产 Authorize.net 帐户并将测试订单视为拒绝。如果您这样做,那么一切正常,您需要使用真实卡进行测试才能成功交易。如果您想使用假卡进行测试,则需要将您的生产帐户重新设置为测试。

【讨论】:

以上是关于rails activemerchant authorize.net 问题的主要内容,如果未能解决你的问题,请参考以下文章

验证用户的 API 凭证 - Rails、ActiveMerchant 和 PayPal Express Gateway

ruby on rails 1.2.6 和 ActiveMerchant

让 ActiveMerchant PayPal Gateway 在 Rails 3 上工作的问题

rails activemerchant authorize.net 问题

Rails 3.2:activemerchant 中未定义的方法“class_inheritable_accessor”

如果你使用 Google Checkout,是不是还需要在 Rails 中使用 ActiveMerchant/Spree/some payment gateway?