Laravel paypal表单提交验证

问题描述 投票:0回答:1

我在Laravel项目中使用paypal API,当用户点击提交时,我想创建并执行PayPal付款。问题是paypal是用以下方式用javascript处理的:my-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登录表单并执行付款?

javascript php forms laravel paypal
1个回答
0
投票

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

paypal.Button.render({
  payment: function() {},
  onAuthorize: function(data) {},
  onError: function(err) {
    // error handling
  },
  onCancel: function(data, actions) {
    // cancel handling
  },
});
© www.soinside.com 2019 - 2024. All rights reserved.