サイトに Paypal ボタンを追加しています。ただし、ボタンが機能する前に、ユーザーが特定の情報 (アドレス ボックス) を入力する必要がある場合に何かをしたいと考えています。ユーザーが情報を入力している場合、Paypal ボタンをクリックすると、ユーザーは Paypal にサインインするように求められます (通常の流れ)。それ以外の場合、ユーザーは次のメッセージを受け取りますalert
。alert('Please choose a delivery address');
私は次のようなことをしようとしています:
$('.paypal-button').on( "click", function() {
alert('Please choose a delivery address');
});
ボタンを無効にしようとしましたが(これは最適ではありませんが)、この他の回答に基づいて機能しないことがわかりました:
$('.paypal-button').prop("disabled",true);
Paypal サンドボックス コードは次のとおりです (実際のサンドボックス資格情報が必要です)。
<!DOCTYPE html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://www.paypalobjects.com/api/checkout.js"></script>
</head>
<body>
<div id="paypal-button-container"></div>
<script>
paypal.Button.render({
env: 'sandbox', // sandbox | production
// PayPal Client IDs - replace with your own
// Create a PayPal app: https://developer.paypal.com/developer/applications/create
client: {
sandbox: 'ABCDEcFpQtjWTOUtWKbyN_bDt4OgqatestlewfBP4-33iV8e1GWU6liB2XYZ',
production: '<insert production client id>'
},
// Show the buyer a 'Pay Now' button in the checkout flow
commit: true,
// payment() is called when the button is clicked
payment: function(data, actions) {
// Make a call to the REST api to create the payment
return actions.payment.create({
payment: {
transactions: [
{
amount: { total: '0.01', currency: 'USD' }
}
]
}
});
},
// onAuthorize() is called when the buyer approves the payment
onAuthorize: function(data, actions) {
// Make a call to the REST api to execute the payment
return actions.payment.execute().then(function() {
window.alert('Payment Complete!');
});
}
}, '#paypal-button-container');
</script>
</body>