paymentId和TRANSACTIONID之间的区别

Jes*_*ose 4 paypal

我正在从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就足够了.