如何通过PayPal REST API授权为商户创建webhook获取实时交易数据
问题解答
你的需求场景可以实现,你之前的操作错误属于调用逻辑和接口适配问题,以下是正确实现路径及备选方案:
正确实现方案(给授权商户单独创建账户级webhook)
- 首先确认你的第三方应用已在PayPal开发者后台完成合作伙伴功能开通,这是调用商户级资源接口的前提,未开通该权限的应用所有接口调用默认仅操作自身应用资源
- 商户授权流程中,除了申请
https://uri.paypal.com/services/applications/webhooks作用域,还需额外申请你需要订阅的webhook事件对应的权限 scope(例如交易类事件需搭配https://api.paypal.com/v1/payments/.*相关作用域) - 调用创建webhook接口时,不能使用你自身平台的client credentials生成的access token,必须使用商户完成授权后返回的、属于该商户专属的access token发起请求,无需额外添加
PayPal-Auth-Assertion请求头,PayPal会自动根据传入的access token归属,将创建的webhook绑定到对应商户账户下 - 验证方式:你可以调用
GET /v1/notifications/webhooks接口,传入对应商户的access token,即可查询到该商户名下绑定的、归属于你应用的webhook配置
更简易的替代方案
如果无需为不同商户配置不同的webhook回调地址,更推荐你使用应用级webhook方案,无需为每个商户单独创建webhook:
- 直接在你的第三方应用开发者后台创建一个应用级webhook,订阅所有你需要的交易类事件
- 所有通过你应用完成授权、或通过你应用发起的商户交易,对应的事件都会自动推送到你配置的回调地址,事件payload中会携带对应商户的唯一
merchant_id标识,你直接通过该字段区分所属商户即可 - 该方案的实时性和商户级webhook完全一致,且大幅降低你侧的配置维护成本
不推荐方案说明
你提到的轮询/v1/reporting/transactions接口确实不适用于实时场景,该接口的数据源为T+1级别的离线对账数据,通常有2~24小时的延迟,完全无法满足实时交易数据获取需求。
内容的提问来源于stack exchange,提问作者asdfzcx
相关产品推荐
相关产品推荐

