【问题标题】:Stripe checkout button is not passing the email address条纹结帐按钮未传递电子邮件地址
【发布时间】:2021-03-18 06:41:26
【问题描述】:

我正在设置一个条纹按钮来对产品收取一次性费用。如果该按钮有效,它会向客户收费,但是当我想向客户发送电子邮件时,我无法获取客户电子邮件,而且客户电子邮件也没有显示在条带仪表板中。我有以下代码;

<form action="/purchase" method="post" id="stripe" class="nobottommargin margin-top10">
<noscript>You must <a href="http://www.enable-javascript.com" target="_blank">enable JavaScript</a> in your web browser in order to pay via Stripe.</noscript>

<input type="hidden" name="purchase" >
<input type="hidden" name="software" value="product">
<input type="hidden" name="amount" value="399">

<input 
    type="submit" 
    value="Pay Now"
    class="button button-3d button-large button-rounded btn-block button-green"
    data-image="https://www.domainname.co.uk/images/favicon/favicon-196x196.png"
    data-key="<?php echo $stripe_publishable_key; ?>"
    data-amount="39900"
    data-currency="gbp"
    data-zip-code="true"
    data-billingAddress="true"
    data-name="domainname.co.uk"
    data-description="Product"
    data-label="Pay Now"
    onClick="this.disabled=true; this.value='Processing...';"
/>
<script src="https://checkout.stripe.com/v2/checkout.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script>
$(document).ready(function() {
    $(":submit").on("click", function(event) {
        event.preventDefault();
        var $button = $(this),
            $form = $button.parents("form");
        var opts = $.extend({}, $button.data(), {
            token: function(result) {
                $form.append($("<input>").attr({ type: "hidden", name: "stripeToken", value: result.id })).submit();
                
            }
        });
        StripeCheckout.open(opts);
    });
});
</script>

提交付款时出现以下错误;

Notice: Undefined index: stripeEmail in ........

有人知道为什么吗?

【问题讨论】:

    标签: php stripe-payments


    【解决方案1】:

    您使用的是已弃用的 Checkout 版本,该版本不再有任何重大更新。相反,您应该使用 Stripe 的新 Checkout:https://stripe.com/docs/payments/checkout

    要回答您的问题,您没有获得电子邮件值,因为您没有明确地将其添加到要发布到后端的表单数据中。这应该可以解决它:

    $form
      .append($("<input>").attr({ type: "hidden", name: "stripeToken", value: result.id }))
      .append($("<input>").attr({ type: "hidden", name: "stripeEmail", value: result.email }))
      .submit();
    

    【讨论】:

      猜你喜欢
      • 2021-01-17
      • 2017-09-12
      • 2014-04-28
      • 2011-09-19
      • 2020-08-26
      • 2019-08-22
      • 1970-01-01
      • 2017-12-28
      • 2016-12-25
      相关资源
      最近更新 更多