将PayPal SetExpressCheckout SOAP API替换为REST API V2的技术问询
我来帮你梳理下这次PayPal API迁移里的三个关键问题,都是实际迁移中容易踩坑的点:
1. Orders API vs Payments API:哪个替代SetExpressCheckout?
毫无疑问,Orders API是你要找的SetExpressCheckout替代方案。
SetExpressCheckout的核心是创建支付会话、引导用户完成PayPal授权,后续再执行扣款——这个流程和REST V2 Orders API的POST /v2/checkout/orders(创建订单,定义金额、回调等)+ 用户授权(前端跳转PayPal或用JS SDK完成)+ POST /v2/checkout/orders/{order_id}/capture(捕获资金)完全对应。
而Payments API更多是面向已完成的支付操作(比如退款已捕获资金、查询支付记录),它不负责创建用户授权的会话流程,和SetExpressCheckout的定位完全不同。
2. SOAP令牌能否用于REST API的扣款/退款?
不行,SOAP API返回的EC令牌(Express Checkout Token)和REST API的体系完全不兼容,没法直接在REST接口里使用。
这意味着如果你们还有历史SOAP发起的交易需要后续扣款或退款操作,必须保留SOAP API的实现,直到所有旧交易的生命周期结束(比如过了退款有效期,或者所有待扣款订单都处理完毕)。
REST API只能使用自身生成的资源ID(比如订单IDorder_id、捕获IDcapture_id)来执行后续操作,旧的EC令牌在REST体系里是无效的。
3. 商户账户配置与权限是否需要调整?
需要单独为REST API配置对应的权限,原来SOAP API的权限不会自动迁移到REST体系。
比如你提到的SOAP版TransactionSearch,对应的REST V2接口是GET /v2/checkout/orders(带搜索参数)或者GET /v2/payments/captures等,你需要在PayPal开发者后台的REST应用里,确保已经授予了对应的权限(比如“读取订单”“读取支付记录”等)。
具体操作是:登录PayPal开发者平台,找到你的REST APP,进入“权限”页面,添加并启用所需的权限,部分敏感权限可能需要PayPal审核,提前做好准备即可。
内容的提问来源于stack exchange,提问作者Urs Meili

