使用PayPal REST API,在客户点击"取消订单并返回网站"链接后,我似乎无法弄清楚如何取消付款.也许在生产模式下,PayPal会自动取消这些付款,但在沙箱模式下,它们似乎仍处于"已创建"状态.
这一观察使我相信我需要在返回网站的"cancel_url"页面时以编程方式取消每笔付款.但是,我似乎无法在PayPal REST API文档中找到取消功能.
https://developer.paypal.com/docs/api/
对于它的价值,我正在使用Ruby API.
我上周一直与PayPal的技术支持联系,这就是他们所说的:
如果买方已完成PayPal结帐页面上的工作而未取消结帐,则会将其重定向回您的网站.如果您希望他们在此时取消,您可以构建返回URL以进行最终确认(显示最终总计费用).所以此时买家在您的网站上,但付款执行没有发生.如果买方决定继续,则运行执行命令,使用成功的付款详细信息更新数据库.如果买方决定在此时取消,则不执行执行命令,并清除付款ID和买方的付款人ID.没有要求您需要传递给PayPal以取消买方在PayPal上所做的事情.这将是使用Express Checkout使用Classic API完成的相同类型的过程.一旦买家被发送到PayPal,他们就会选择资金来源和送货地址并被送回您的网站,如果他们想要取消交易,您的网站不会向PayPal发送任何API调用来取消或取消EC令牌.它只是不用于收取付款.
当被问及如何处理未执行的付款时,如果他们在一段时间后自动取消未执行的付款:
是的,我建议您从数据库中删除付款ID,这样就不会有意外付款.默认情况下,如果付款未在3小时内执行,我们的系统将使PayPal付款人的付款到期.
PayPal已在此处发布了答案.