我正在尝试注册测试信用卡,以便我可以测试我的应用程序。我正在使用ActiveMerchant
。我有一个注册表单,用户输入数据,然后我收集参数,并将其转移到付款,但我只是作为回应得到一个零。
我有这样的代码:
user.rb
def store_credit_card(payment_attributes)
pay = Payment.new(payment_attributes) # this return always nil. Why?
pay.build_contact_info
pay.contact_info.name = name
pay.contact_info.email = email
pay.contact_info.phone = phone
pay.first_name = first_name
pay.last_name = last_name
pay.construct_billing_address(self)
pay.escrow_amount = (0.01).to_money
pay.authorize!
end
我将参数传输到store_credit_card
,它们看起来像这样:
payment_attributes
{"card_type"=>"bogus", "card_number"=>"1", "card_expires_month"=>"12", "card_expires_year"=>"2015", "security_code"=>"123"}
但是当我打电话时:
pay = Payment.new(payment_attributes)
pay
始终返回nil
。
为了能够使用ActiveMerchant注册伪卡,我该怎么办?为什么它会返回零? 我正在我的本地开发环境中开发。我正在使用Ubuntu。
答案 0 :(得分:0)
您好喜欢回答我自己的问题。 深入研究调试器并进入付款方式后,我发现我转移到ActiveMerchant的邮政编码报告错误。但错误本身没有报告一些上层功能,这很奇怪。无论如何,错误是我发送了一个有
的json数据billing_attributes { zipcode: $scope.zipcode}
但是当我查看我的观点时,我发现我使用了ng-model zipcode
我不小心错过了发送到ActiveMerchant的数据_
,应该是:
billing_attributes { zip_code: $scope.zipcode}
所有这些问题都是因为拼写错误。这不是一个大问题,但是想要注意一下如果有人遇到这个问题的地方。数据似乎很好,但是对于所有其他数据,请注意您发送的数据是否真的按照它应该格式化。