dongmiao260399 2018-07-08 13:43
浏览 64
已采纳

在同一页面上显示条纹模式,而不是在“https://checkout.stripe.com/v3/...”中显示模式

I have a form for a user do a payment using Stripe and the jQuery below.

But when the user clicks in the "Pay" buton instead of the Stripe modal opens on the page the user is redirected to "https://checkout.stripe.com/v3/....html?distinct_id=..." and the Stripe modal appears on that page.

Do you know why the Stripe modal is not appearing in the current page?

 <form action="{{ route('payment.chargeStripe') }}" method="post" id="paymentForm">
    {{csrf_field()}}
    <div id="credit_card_section">  
        <div class="alert alert-info" role="alert">
            <strong><i class="fa fa-info" aria-hidden="true"></i></strong>
            Click in "Pay" to pay.
        </div>
        <input type="hidden" name="stripeToken" id="stripeToken"/>
        <input type="submit" href="" id="payment" class="btn btn-primary" value=" Pay"/>
    </div>
</form>

jQuery:

<script src="https://js.stripe.com/v3/"></script>
<script src="https://checkout.stripe.com/checkout.js"></script>


<script>
$(function () {
    let stripe = StripeCheckout.configure({
        key: "{{config('services.stripe.key')}}",
        image: "",
        locale: "auto",
        token: (token) => {
            document.querySelector('#stripeToken').value = token.id;
            document.querySelector('#paymentForm').submit();
        }
    });

    document.getElementById('payment').addEventListener('click', function(e){

        stripe.open({
            name: 'test',
            description: '{{session('conference_name')}}',
            amount: '{{session('total') * 100}}',
            currency: 'eur'

        });
        e.preventDefault();
    });

    // Close Checkout on page navigation:
    window.addEventListener('popstate', function() {
        handler.close();
    });
    </script>
  • 写回答

1条回答 默认 最新

  • doulangxun7769 2018-07-08 14:12
    关注
    $(function () {
        let stripe = StripeCheckout.configure({
            key: "{{YOUR_STRIPE_PUBLIC_KEY}}",
            image: "",
            locale: "auto",
            token: (token) => {
                document.querySelector('#stripeToken').value = token.id;
                document.querySelector('#paymentForm').submit();
            }
        });
        document.getElementById('payment').addEventListener('click', function(e){
            stripe.open({
                name: 'test',
                description: '{{YOUR_DESCRIPTION}}',
                amount: '12',
                currency: 'eur'
            });
            e.preventDefault();
        });
    
        // Close Checkout on page navigation:
        window.addEventListener('popstate', function() {
            handler.close();
        });
    });
    

    From the code you have posted, it seems it working fine, but its missing function closing parentheses and a bracket. See last line of my code. Once i fixed this one i can able to see the checkout popup in my current page itself.

    Also check in browser console, to make sure there is not js error.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 qt中connect两个signal
  • ¥20 pix2pixHD运行测试命令时出现数据类型错误无法反向传播的问题
  • ¥15 python处理Excel符合条件的行自动填写数据分类
  • ¥15 汇编hook举例并讲解(通俗易懂,学习用)
  • ¥20 用c++语言模拟键盘电子琴设计
  • ¥15 STM32cubemx生成keil工程,有问题与正常的情况不同,求解!
  • ¥15 如何自动点击银行app的安全键盘,实现密码自动输入
  • ¥15 关于四边形重叠的问题
  • ¥15 用verilog语言设计一个简易的八音符电子琴,可通过按键输入来控制音响。演奏时可以选择是手演奏(由键盘输入)或自动演奏已存入的乐曲。能够自动演奏多首乐曲,且每首乐曲可重复演奏
  • ¥15 sap gui脚本每次到导出Excel的时候就停住不动。不会另存为。