Laravel paypal表单提交验证

时间:2017-10-16 13:43:07

标签: javascript php forms laravel paypal

我在Laravel项目中使用paypal API,当用户点击提交时,我想创建并执行PayPal付款。问题是paypal使用javascript按以下方式处理: 我-page.blade.php:

<script src="https://www.paypalobjects.com/api/checkout.js"></script>
<script type="text/javascript">
    (function ($) {
        $('#submit').click(function(event) {
            event.preventDefault()

            $('#payments').fadeIn('slow')

            var CREATE_PAYMENT_URL  = '{{ route('change-company-activity-subject-paypal-create') }}'

            var EXECUTE_PAYMENT_URL = '{{ route('change-company-activity-subject-paypal-execute') }}'

            paypal.Button.render({

                env: 'sandbox', // Or 'sandbox'

                commit: true, // Show a 'Pay Now' button

                payment: function() {
                    return paypal.request.post(CREATE_PAYMENT_URL, {_token: '{{ csrf_token() }}'}).then(function(data) {
                        // console.log(data)
                        return data.id
                    });
                },

                // onAuthorize() is called when the buyer approves the payment
                onAuthorize: function(data, actions) {
                    console.log(data)
                    // Set up the data you need to pass to your server
                    var data = {
                        paymentID: data.paymentID,
                        payerID: data.payerID,
                        _token: '{{ csrf_token() }}'
                    };

                    // Make a call to your server to execute the payment
                    return paypal.request.post(EXECUTE_PAYMENT_URL, data)
                        .then(function (res) {
                            res = JSON.parse(res)
                            console.log(res)
                            window.alert('Payment Complete!');
                        });
                }

            }, '#paypal-button');

            console.log('paypal')  
        })
    })(jQuery)
</script>

付款完成后,在这种情况下会调用window.alert()函数。我考虑过$('#form').submit(),因此在付款执行后提交表单。我的表单具有后端验证规则,如果您的输入未通过某个验证规则,它会重定向您。问题在于可以使用用户的钱并且不提交表格。我该如何避免这个问题?如果在使用Javascript显示登录表单并执行付款时验证已经过去,如何显示Paypal登录表单并执行付款?

1 个答案:

答案 0 :(得分:0)

Paypal还有两个可以使用的参数:

<div id="mainwrapper">
  <div class="top-ci-colorbox"></div>
  <header>Navigation Here</header>
  <main>
    ...
    <br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br>

  </main>
  <footer>Footer Here. Scrolling should stop at black line</footer>
  <div class="bottom-ci-colorbox"></div>
</div>