我正在从REST转向经典API(我对两者都是新手).作为开发人员,我想记录付款的唯一标识符,以将网站销售与Paypal付款ID相关联,例如我想要退款.
REST API用于在返回URL中为我提供付款ID,而经典API在响应中为我提供交易ID.
有什么不同?或者他们是同一资源的别名?存储PAYMENTINFO_0_TRANSACTIONID足够查找付款吗?
两者的例子:
paymentId PAY-0CN62912EY171514DKSECBXA
PAYMENTINFO_0_TRANSACTIONID 4KY08572SD6526629
Run Code Online (Sandbox Code Playgroud)
商家的Web界面显示交易ID,从不显示付款ID:
PayPal Express Checkout Payment Received (Unique Transaction ID 4KY08572SD6526629)
Run Code Online (Sandbox Code Playgroud)
van*_*aaf 10
交易ID是PayPal事务完成后的标识符,无论它来自哪个API(Classic API,REST API,Adaptive Payment API等).当且仅当交易完成时才会发出.
相反,支付ID是REST API中的支付标识符,其不一定表示已完成的支付.例如,假设您使用REST API进行PayPal支付/ v1/payments/payment端点:
POST/v1 /付款/付款
{
"intent":"sale",
"redirect_urls":{
"return_url":"http://ashrafishak.com",
"cancel_url":"http://google.com"
},
"payer":{
"payment_method":"paypal"
},
"transactions":[
{
"amount":{
"total":"7.47",
"currency":"USD"
},
"description":"This is the payment transaction description."
}
]
}
Run Code Online (Sandbox Code Playgroud)
您将收到上述请求中的付款ID,但由于未发出交易ID,因此尚未完成.您需要使用/ v1/payments/payment //执行端点执行事务才能完成.
在您的情况下,由于您希望跟踪交易以便将来退款,我认为仅存储交易ID就足够了.