我在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登录表单并执行付款?
答案 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>