後、私は自分のページにエクスプレスチェックアウトボタンを追加し、セットアップサーバ側プロセスをクライアントコードで:ペイパルエクスプレスチェックアウトをリロードページ支払
<script src="https://www.paypalobjects.com/api/checkout.js"></script>
<script>
var CREATE_PAYMENT_URL = "<create_payment_url>";
var EXECUTE_PAYMENT_URL = "<execute_payment_url>";
paypal.Button.render({
env: "sandbox",
payment: function (resolve, reject) {
return paypal.request.post(CREATE_PAYMENT_URL)
.then(function (data) {
resolve(data.id);
})
.catch(function (err) {
reject(err);
});
},
onAuthorize: function (data) {
return paypal.request.post(EXECUTE_PAYMENT_URL, { paymentID: data.paymentID, payerID: data.payerID })
.then(function (data) {
document.querySelector('#paypal-button').innerText = 'Payment Complete!';
console.log("Success", data);
})
.catch(function (err) {
console.log("Error", err);
});
}
}, "#paypal-button");
</script>
私は経由で作成するために、サーバー側.NET SDKを使用して、プロセスの支払いジェネリックハンドラは正常に動作しますが、支払い実行が呼び出された後、ページ全体がリロードされます。
実行リスナ--perp.request.post(EXECUTE_PAYMENT_URL、...)でコールバックを処理したい場合は、.then()メソッドと.catch()メソッドで定義します。
https://developer.paypal.com/demo/checkout/#/pattern/serverのPayPalのインタラクティブデモのリスナーは、期待通りに動作します。
ありがとうございます。
コンソールエラーはありますか?これは、ページのリダイレクトやリロードを行うべきではありません。 – bluepnume
いいえ、私はしません。しかし、私がCREATE_PAYMENT_URLスクリプトで正しいredirect_urlsを使用すると、期待通りに動作します。この質問に対する私の答えの詳細。 –