Javascript 为什么我的结账按钮突然不起作用?
我有一个我一直在开发的应用程序,在最近的一些变化之前一直在工作 我运行了一个bundle更新,更新了一堆gems。从那时起(或大约在那个时候),我的结账过程就不起作用了,我也不知道是什么导致了这个问题 我的development.log文件中没有任何错误,JS控制台中也没有错误 你可以退房 对于登录凭据,请使用:abc@test.com/testing123(其中电子邮件是user,后者是pw) 将该项目添加到购物车中,然后完成结帐过程 输入一些假凭证,并使用信用卡号:4111111111(验证号可以是任意3位数字,过期日期可以是今天之后的任意日期) 单击“签出”后,您将看到表单未提交 就我个人而言,我不知道为什么 我很想听听关于如何进一步排除故障或告诉我原因的想法 谢谢Javascript 为什么我的结账按钮突然不起作用?,javascript,ruby-on-rails,ruby-on-rails-3,Javascript,Ruby On Rails,Ruby On Rails 3,我有一个我一直在开发的应用程序,在最近的一些变化之前一直在工作 我运行了一个bundle更新,更新了一堆gems。从那时起(或大约在那个时候),我的结账过程就不起作用了,我也不知道是什么导致了这个问题 我的development.log文件中没有任何错误,JS控制台中也没有错误 你可以退房 对于登录凭据,请使用:abc@test.com/testing123(其中电子邮件是user,后者是pw) 将该项目添加到购物车中,然后完成结帐过程 输入一些假凭证,并使用信用卡号:4111111111(验证
另外,这不是Heroku的问题-我在当地也有这个问题。我使用的是piggybak购物车gem,而gem维护人员无法在他们的终端复制此错误。因此,我进一步感到困惑:(我按照您的指示,在单击“创建订单”时出错
sjsonp1369201390573({
"error": {
"message": "The 'exp_year' parameter should be an integer (instead, is undefined).",
"type": "card_error",
"param": "exp_year",
"code": "invalid_expiry_year"
}
}
, 402)
这不会出现在JS控制台中。相反,您的应用程序正在创建其他JS脚本文件,如:
https://api.stripe.com/v1/tokens?card[number]=undefined&card[cvc]=undefined&card[exp_month]=undefined&card[exp_year]=undefined&key=pk_u0E6vMzPGDJlYmyLqr83LCahMTL5e&callback=sjsonp1369201390573&_method=POST
尽管错误看起来很简单,但由于我没有使用AJAXQ或任何其他搭载JS系统,我想您需要逐步完成程序以捕获此异常
HTH.看起来piggybak_stripe gem正在使用您没有的类选择器查找信用卡详细信息:
number: $('.card-number').val(),
cvc: $('.card-cvc').val(),
exp_month: $('.card-expiry-month').val(),
exp_year: $('.card-expiry-year').val()
因此,在我向输入添加了适当的类(向piggybak_订单[line_items_attributes][0][payment_attributes][number]
输入等添加卡号类)并使用“424242”作为卡号后,表单提交。许多内容的验证仍然失败。JSON的答案是:
"error": {
"message": "The 'exp_year' parameter should be an integer...",
"type": "card_error",
"param": "exp_year",
"code": "invalid_expiry_year"
}
跟踪错误消息并将适当的类添加到页面上的html元素中。例如,在第427行(html代码)中,您有:
<select id="piggybak_order_line_items_attributes_0_payment_attributes_year" name="piggybak_order[line_items_attributes][0][payment_attributes][year]">
添加以下选择器“经验年”:
<select class="exp_year" id="piggybak_order_line_items_attributes_0_payment_attributes_year" name="piggybak_order[line_items_attributes][0][payment_attributes][year]" >
缺少选择器的元素包括:
- 信用卡
- 卡片[经验月]
- 卡片[出口年份]
- 卡片[号码]
添加这4个类并感到高兴它创建了准确的URL字符串吗?如果是,这是一个问题,因为我指定了v2
条带URL-与v1
。这实际上可能是个问题……现在我想起来了。是的,它正在创建准确的URL字符串。每次单击“创建顺序”按钮时,都会创建一个具有相同字符串的新URL字符串。Hr嗯……好吧……让我试试。我想这可能是因为我使用的是js.stripe.com/v2
,而gem的说明说我应该使用js.stripe.com/v1
。但是我只是在本地更改了它,我仍然得到了相同的错误。我不确定你是如何得到这个URL的,但功能对我来说是一样的。C您是否可以发布卡片详细信息的HTML和提交代码?您似乎没有从表单中获得任何卡片详细信息。