gpt4 book ai didi

javascript - 为什么我的表单无法与 Stripe 通信?

转载 作者:行者123 更新时间:2023-11-28 01:25:46 26 4
gpt4 key购买 nike

在包含我的订单的页面上,<head> ,我有:

= jquery_include_tag Rails.application.config.jquery_version
= javascript_include_tag "https://js.stripe.com/v2/"
:javascript
$(function(){
Stripe.setPublishableKey('pk_test_NEgBLhQ1dJGvlE8SDFEXqRQ4');
});
(function() {
var stripeResponseHandler;

$("#new_order").submit(function(event) {
var form;
form = $(this);
form.find("#submit_order").prop("disabled", true);
Stripe.createToken(form, stripeResponseHandler);
return false;
});

stripeResponseHandler = function(status, response) {
var form, token;
form = $("#new_order");
if (response.error) {
form.find(".payment-errors").text(response.error.message);
form.find("#submit_order").prop("disabled", false);
} else {
token = response.id;
form.append($("<input type=\"hidden\" name=\"stripeToken\">").val(token));
form.get(0).submit();
}
};

}).call(this);

上面列出的 key 标记为“测试可发布 key ”,位于 https://manage.stripe.com/account/apikeys .

该页面上的表单包括:

= simple_form_for @order, :html => {:id => "new_order"} do |f|
= f.error_notification
= text_field_tag :number, nil, :name => nil, "data-stripe" => "number"
= text_field_tag :cvc, nil, :name => nil, "data-stripe" => "cvc"
= text_field_tag :expiry_month, nil, "data-stripe" => "exp-month"
= text_field_tag :expiry_year, "data-stripe" => "exp-year"
= f.button :submit, :as => :button, :id => 'submit_order'

(删除所有标签/占位符/等和非 Stripe 字段。)

目前我在本地主机上以开发模式运行它,没有任何 SSL。

当我使用有效或无效的信用卡数据完成订单并单击“创建订单”时,我的 Rails 应用程序会记录订单,但 Javascript 似乎无法与 Stripe 服务器通信。据我所知,在 Chrome 的 Javascript 控制台中,我没有看到任何错误,也没有看到任何 Javascript 事件。我在 https://manage.stripe.com/test/events 上没有看到任何收费——无论成功与否。 .

我了解 Rails,但我是 Javascript 新手。我怎样才能诊断这里发生了什么?原因可能是什么?

最佳答案

  (function() {

这也许应该是

  $(function() {

(你可以放弃 .call(this) 的东西)

它在 <head> 中立即执行,这可能意味着 $("#new_order")没有找到表单——浏览器甚至还没有渲染它,甚至可能还没有从网络上接收到它的 HTML——所以选择器匹配零个项目,并且事件绑定(bind)是一个空操作。

或者,如果您将代码放在 </body> 之前,这也能达到目的。

(此外,将 Stripe.setPublishableKey() 放入 $(function() { … }) block 中是没有用的。)

关于javascript - 为什么我的表单无法与 Stripe 通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22703033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com