Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的结账按钮突然不起作用?_Javascript_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Javascript 为什么我的结账按钮突然不起作用?

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(验证

我有一个我一直在开发的应用程序,在最近的一些变化之前一直在工作

我运行了一个bundle更新,更新了一堆gems。从那时起(或大约在那个时候),我的结账过程就不起作用了,我也不知道是什么导致了这个问题

我的development.log文件中没有任何错误,JS控制台中也没有错误

你可以退房

对于登录凭据,请使用:abc@test.com/testing123(其中电子邮件是user,后者是pw)

将该项目添加到购物车中,然后完成结帐过程

输入一些假凭证,并使用信用卡号:4111111111(验证号可以是任意3位数字,过期日期可以是今天之后的任意日期)

单击“签出”后,您将看到表单未提交

就我个人而言,我不知道为什么

我很想听听关于如何进一步排除故障或告诉我原因的想法

谢谢


另外,这不是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和提交代码?您似乎没有从表单中获得任何卡片详细信息。