You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PayPal REST API订阅流程及Webhook 404问题咨询

PayPal REST API 订阅流程与Webhook问题解决方案

一、订阅流程澄清

你当前完成的前4步逻辑正确,后续无需手动执行步骤5-8,PayPal JavaScript SDK的订阅按钮已封装核心流程:

  • 步骤5:创建订阅计划时,PayPal默认自动激活计划(除非你创建时显式设置status: "INACTIVE"),无需手动调用激活接口。
  • 步骤6-7:用户点击订阅按钮完成授权后,PayPal会自动创建并激活该用户的订阅,你不需要手动调用创建/激活订阅的接口。
  • 步骤8:订阅的首次付款及后续定期付款,PayPal会自动完成款项捕获——即从用户账户扣取对应金额并转入你的商户账户,SDK流程下完全自动处理,无需手动触发。

Webhook的必要性

必须通过Webhook同步订阅信息到MySQL数据库:

  • 用户完成订阅后,PayPal会推送BILLING.SUBSCRIPTION.CREATED事件;
  • 后续订阅付款成功、失败、取消、续费等状态变更,都会推送对应事件(如PAYMENT.SALE.COMPLETED、BILLING.SUBSCRIPTION.CANCELLED);
  • 你需要在PHP后端接口中接收这些事件,解析后更新数据库内的订阅记录(标记状态、更新付款时间、记录金额等)。

二、Webhook 404问题排查

URL编码说明

URL中的连字符(-)属于安全字符,无需编码,404问题与编码无关。

具体排查步骤

  1. 确认URL的公网可达性与准确性
    • 本地开发环境需用ngrok等工具做内网穿透,PayPal无法访问localhost地址;
    • 检查PayPal后台配置的URL路径是否与服务器上的PHP文件路径完全匹配(Linux服务器区分文件名大小写),比如配置https://your-domain.com/paypal-webhook-handler.php,需确保该路径下文件存在。
  2. 验证接口请求方式
    • PayPal Webhook仅发送POST请求,你的PHP接口必须支持接收POST请求,不能仅处理GET。
  3. 检查服务器权限与日志
    • 查看服务器错误日志(Apache的error.log、Nginx的error.log),确认404是路径不存在还是权限问题;
    • 确保PHP文件拥有可读权限,服务器能正常解析该文件。
  4. 模拟请求测试
    • 用curl或Postman模拟PayPal的POST请求,验证接口是否正常响应:
      curl -X POST https://your-domain.com/paypal-webhook-handler.php -H "Content-Type: application/json" -d '{"event_type": "TEST.EVENT"}'
      
    • 若模拟请求也返回404,说明路径存在问题;若能正常响应,检查PayPal后台的Webhook配置是否有拼写错误。
  5. 排查公网访问障碍
    • 模拟器能写入log.txt说明本地接口正常,但实际推送失败,大概率是接口无法被公网访问,或PayPal的IP被服务器防火墙拦截。需确保服务器开放PayPal的Webhook IP段,或用内网穿透工具暴露本地接口后再测试。

内容的提问来源于stack exchange,提问作者Cavalier Horsemanship

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 05:42:36