[英]Why paymentID is null after PayPal transaction?
I'm using PayPal in sandbox mode and @paypal/react-paypal-js in my React application and I'm using .NET 5 as my REST API. 這是我想創建訂單時的有效負載:
{
"totalAmount": 102,
"tax": 0,
"fee": 2,
"paymentMethod": 1,
"items": [
{
"amount": 100,
"reciver": "vala",
"phone": "0912351231",
"email": "vala@gmail.com",
"sender": "ali",
"count": 1
}
]
}
這是我調用 PayPal API 的反應代碼的一部分:
<BoxPayment isRtl={isRtl}>
<Text as="h3">{translations.buyPage.paymentMethodTitle}</Text>
<Text as="p">{translations.buyPage.paymentMethodSubTitle}</Text>
<div style={{ 'paddingTop': '.5rem' }}>
<PayPalScriptProvider options={initialOptions}>
<PayPalButtons createOrder={(data, actions) => createOrder(data, actions)}
onApprove={(data, actions: any) => {
console.log('data', data);
console.log('actions', actions);
return actions.order.capture().then((details: any) => {
console.log('details', details);
const name = details.payer.name.given_name;
});
}} />
</PayPalScriptProvider>
</div>
</BoxPayment>
但是在成功付款后,當我 console.log 數據 object 時收到以下內容:
{
"orderID": "48G91901G2470590C",
"payerID": "NBPJH63GK5H5Q",
"paymentID": null,
"billingToken": null,
"facilitatorAccessToken": "A11VAJ-tUcUqKkJgAhnyfVGVYg6Z57SvqHfspQqB8vtUDjDzBMIBlvO6rDvwdIjW7aJwvQQYeMAGyWitChtVZ8LyBzCw"
}
我錯過了什么?
在onApprove
中,打印該數據時尚未捕獲訂單。 先抓訂單。 捕獲訂單后,其交易 ID 將在響應的purchase_units[0].payments.captures[0]
如果您需要對該 ID 執行任何重要操作,例如將其存儲在數據庫中,請使用服務器端集成(不是actions.order.capture 或 actions.order.create,客戶端代碼不適用於數據庫操作)。 請參閱Integrate Checkout指南的“添加和修改代碼”部分中的可選步驟 #5,並確保在其鏈接的演示模式示例中使用客戶端錯誤處理代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.