我正在嘗試授權付款,并在稍后捕獲資金。基本上,我想在客戶的信用卡上保留資金。然后處理訂單,最后在訂單準備就緒時捕獲金額。我按照paypal指南做了這件事:https://developer.paypal.com/docs/business/checkout/add-capabilities/authorization/然而,無論我做了什么嘗試,我最終總是“捕獲”全部金額,而不是保留。我正在使用react-paypal-button-v2作為貝寶按鈕,以下是我的代碼:
import { PayPalButton } from "react-paypal-button-v2";
const addPayPalScript = () => {
const script = document.createElement("script");
script.type = "text/javascript";
script.src =
"https://www.paypal.com/sdk/js?client-id=YOUR_CLIENT_ID&intent=authorize";
//script.src = "https://www.paypal.com/sdk/js";
script.async = true;
script.onload = () => {
setSdkReady(true);
};
document.body.appendChild(script);
};
useEffect(() => {
if (!window.paypal) {
addPayPalScript();
setSdkReady(true);
} else {
setSdkReady(true);
}
}
}, []);
return {!sdkReady ? (
<Loader />
) : (
<PayPalButton
amount={100}
onSuccess={successPaymentHandler}
/>
)}
我還嘗試了以下方法:
const addPayPalScript = () => {
const script = document.createElement("script");
script.type = "text/javascript";
script.src =
"https://www.paypal.com/sdk/js";
script.async = true;
script.onload = () => {
setSdkReady(true);
};
document.body.appendChild(script);
};
const initialOptions = {
clientId:
MyPaypalID,
intent: "authorize",
};
return {!sdkReady ? (
<Loader />
) : (
<PayPalButton
amount={100}
onSuccess={successPaymentHandler}
options={initialOptions}
/>
)}
使用官方的react-paypal-js并指定一個執行
actions.order.authorize()
而不是默認捕獲的onApprove函數。