SuperAPI AI 工具集

paypal-webhooks

通用与其它

查看项目

更新于 10-15 23:57

技能介绍

用途:帮助开发者搭建 PayPal Webhook 处理器,调试基于证书的签名验证失败,并处理支付、订阅、退款、结账等事件。

主要能力:PayPal 不使用共享密钥的 HMAC,而是用私钥签名,需用每次请求通过 paypal-cert-url 头下发的公钥证书验证,算法为 RSA-SHA256(SHA256withRSA)。提供两条验证路径:一是回传验证,将捕获的请求头、webhook_id 和原始 webhook_event 请求体 POST 到 PayPal 的 /v1/notifications/verify-webhook-signature 端点,需 OAuth 访问令牌,返回 verification_status 为 SUCCESS;二是离线自验证,从 paypal-cert-url 获取证书(需缓存并校验主机以 .paypal.com 结尾),构造消息 transmissionId|transmissionTime|webhookId|crc32(rawBody),用证书公钥以 RSA-SHA256 验证 base64 签名。技能示例采用离线方式,便于测试且避免每次额外 API 调用。

使用方式:需读取 paypal-transmission-id、paypal-transmission-time、paypal-transmission-sig、paypal-cert-url、paypal-auth-algo 等请求头。Express 示例使用 express.raw() 保留原始请求体以计算 CRC32;FastAPI 示例使用 cryptography 库验证。环境变量包括 PAYPAL_WEBHOOK_ID,回传路径还需 PAYPAL_CLIENT_ID、PAYPAL_CLIENT_SECRET,以及 PAYPAL_ENV(sandbox 或 live)。本地开发可用 npx hookdeck-cli listen 3000 paypal --path /webhooks/paypal 启动隧道,并在 PayPal 开发者后台配置 Webhook URL 与模拟器。

适用场景:处理 PAYMENT.CAPTURE.COMPLETED、PAYMENT.CAPTURE.REFUNDED、BILLING.SUBSCRIPTION.CREATED 等事件,以及结账、争议等。

限制:资料未提供完整事件列表、收费信息或性能数据;证书主机校验与原始请求体保留为必要安全前提。