从自定义按钮调用 Stripe 结帐表单

Posted

技术标签:

【中文标题】从自定义按钮调用 Stripe 结帐表单【英文标题】:Calling a Stripe checkout form from a custom button 【发布时间】:2014-11-28 13:00:44 【问题描述】:

我有以下price table. 请注意,这不是我要修改的实际表格,但所有 html 和 CSS 都是相同的。

我想在客户单击提交按钮时使用Simple Strike Checkout plugin 调用Stripe 结帐表单。

根据文档here,我需要使用自定义 JQuery 并按照“如何从自定义按钮或链接调用结帐表单?”问题的说明进行操作。

具体来说,我需要遵循这部分

每个 Stripe 表单都分配有它自己唯一的“id”属性,例如“sc_checkout_form_1”、>“sc_checkout_form_2”等。您只需触发目标表单的提交事件。

例如,要使用包含 id >“my_custom_button”的按钮触发页面上的第一个 Stripe 表单,请使用以下脚本:

jQuery('#my_custom_button').click(function(e) e.preventDefault(); jQuery('#sc_checkout_form_1').submit(); );

我遇到的问题是我的按钮没有唯一的 ID 属性可以让我识别它们。在与 Stripe 支持部门的 Phil Derksen 联系后,他建议:“您需要使用元素的类,或者以某种方式确定如何检测每个特定按钮元素上的点击。”

有人可以对此进行扩展并提供更具体的解决方案吗?

谢谢!

【问题讨论】:

【参考方案1】:

你需要在 jQuery 中遍历 DOM - http://jqfundamentals.com/chapter/traversing-manipulating

或者更快/更简单的方法,您可以将短代码在您的 wordpress 主题中创建的 html(从源代码复制)放置,然后在 wordpress 的文本视图中编辑它,这样您就可以为您的按钮!

我希望能给你一些帮助,让我知道你的进展如何。

【讨论】:

【参考方案2】:

尝试以下链接:Checkout - v2

请参阅自定义按钮部分。您只需要通过 jQuery 识别您的自定义按钮。如果不是 ID,则通过类或遍历页面上的每个控件并根据某些属性识别按钮。然后附加事件。

【讨论】:

【参考方案3】:

HTML

数据量以美分表示 value 是显示文本 data-billing-address 添加帐单地址字段 data-shipping-address 添加送货地址字段

HTML 代码

<input 
    type="button" 
    class="stripeBtn"
    value="Proceed to Checkout"
    data-key="***"
    data-description="***"
    data-amount= ***
    data-currency="usd"
    data-name="***"
    data-billing-address="true"
    data-shipping-address="true"
    data-image="https://stripe.com/img/documentation/checkout/marketplace.png"/>

事件处理程序

确保在处理程序之前加载 stripejs 和 JQuery POST 使用 JQuery 方法 预计来自服务器前节点的回调 res.send('/charged')

JS 代码

$('.stripeBtn').on('click', function(event) 
event.preventDefault();
var $button = $(this);
var opts = $.extend(, $button.data(), 
    token: function(result, args) 
      //result contains token and card info
      //args contains for shipping and billing info

      //disable stripe button
      $('.stripeBtn').prop('disabled', true);

      //POST to route
      $.post( "/charge", 
        token: result.id,
        card: result.card, 
        email: result.email, 
        args: args).success(function(data) 
        //data is the callback
        window.location = data;
      );;
    
);
StripeCheckout.open(opts);
);

【讨论】:

以上是关于从自定义按钮调用 Stripe 结帐表单的主要内容,如果未能解决你的问题,请参考以下文章

无法从自定义 UIView 调用按钮的方法

条纹结帐键盘隐藏付款按钮

从自定义 UICollectionViewCell 获取正确的按钮

无法从自定义表格视图单元格按钮中删除行

JFrame从自定义按钮拖动不流畅

从自定义 uitableviewcell 内的按钮点击委托