Laravel paypal表单提交验证
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel paypal表单提交验证相关的知识,希望对你有一定的参考价值。
我在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登录表单并执行付款?
答案
Paypal还有两个你可以使用的参数:
paypal.Button.render({
payment: function() {},
onAuthorize: function(data) {},
onError: function(err) {
// error handling
},
onCancel: function(data, actions) {
// cancel handling
},
});
以上是关于Laravel paypal表单提交验证的主要内容,如果未能解决你的问题,请参考以下文章
通过 jquery submit() 提交表单后的 Laravel 文件验证;