我执行paypal express checkout并且工作良好,但我不得不将其更改为网站支付专业版。我切换到网站支付专业和设置一切需要,但总是显示"无效的信用卡号码"作为一个错误信息。
我的development.rb
文件有以下代码
ActiveMerchant::Billing::Base.mode = :test
::GATEWAY = ActiveMerchant::Billing::PaypalGateway.new(
:login => "seller_1280588868_biz_api1.hotmail.com",
:password => "1290567879",
:signature => "AZjEOuZ30SjjtX25uAhHyqYeodXnAi.tdG6i-gpZB1dBn2t876XYhKdE2"
)
我使用下面的代码来生成信用卡并验证
def validate_card
unless credit_card.valid?
credit_card.errors.full_messages.each do |message|
errors.add_to_base message
end
end
end
def credit_card
@credit_card ||= ActiveMerchant::Billing::CreditCard.new(
:first_name => first_name,
:last_name => last_name,
:type => card_type,
:number => card_number,
:verification_value => card_verification,
:month => card_expires_on.month,
:year => card_expires_on.year
)
end
我真的不明白为什么会出现这个错误。我想我做的每件事都是正确的。我已输入paypal的沙箱账户信用卡号。
我使用的是rails 3.0.0, ruby 1.9.2和active merchant 1.12.0。
花了差不多半天的时间终于搞定了。错误是我只使用最后4位有效数字而不是所有16位数字,因为paypal在我的信用卡列表页面上只显示最后4位数字。现在它工作了,因为我使用了所有16位数字。
感谢大家的关心和投入。