至少可以说,我发现PayPal开发文档令人困惑。快速结账有3种不同的行动:
Authorization
Order
Sale
使用客户端api,我设置了单个项目的简单sale
。现在我想在服务器端验证此次销售已完全完成; Express Checkout文档说我应该使用payment
的API调用(https://developer.paypal.com/docs/integration/direct/express-checkout/show-payment-details/)
为什么我不会对sale
使用API调用,或者这也是一个选项?在此示例中,sale
和payment
之间有什么区别?当买家购买我的单件商品时,我可以查询sale
和payment
吗?
https://developer.paypal.com/docs/api/payments/#sale_get
提前致谢。
答案 0 :(得分:1)
payment
是sale
,authorization
和order
的父对象,这意味着每当您创建付款方式时(它都是sale
,{ {1}}或authorization
),您可以通过父order
获取详细信息。
也就是说,为什么在此步骤中 Show payment details to buyer 您宁愿拨打payment_id
而不是/v1/payments/payment/{payment_id}
,原因是此时您还没有executed the payment您将在API响应中看到/v1/payments/sale/{sale_id}
。
(因此,此步骤仅用于在买方点击下订单并执行付款之前在页面中显示付款详情。)
在其他情况下,如果您已经执行了付款并且响应中有sale_id
,那么您可以通过向sale_id
进行GET调用来验证这一点,尽管还有其他方式您可以通过webhooks或IPN从PayPal获取付款详细信息。