你需要什么
| 字段 | 它做什么 |
|---|---|
| Client ID | 在 API 调用上标识你的 PayPal 应用。与 secret 配对。 |
| Client secret | API 认证机密的那一半。与 Client ID 一起,它创建订单。机密。 |
| Webhook ID | 标识 PayPal 所签名的那个 webhook,于是我们能校验每一次投递。 |
| 成功网址 / 取消网址 | 买家在付款或退出后落到哪里。 |
我们为什么要每个字段
Client ID
在 API 调用上标识你的 PayPal 应用。它只有在与 Client secret 配对时才有效。
Client secret
API 认证私密的那一半。与 Client ID 一起,它让我们创建订单,使付款通过你的账户进行。
Webhook ID
我们如何确认一个 webhook 真的来自 PayPal:PayPal 用一个 ID 标识每个 webhook,我们用它直接向 PayPal 询问某条消息是否真实。这阻止任何人伪造一个“已付款”事件。
成功与取消网址
普通设置:买家在付款或退出后落到哪里。非机密。
设置
- 打开 PayPal 开发者后台
在 developer.paypal.com 登录。PayPal 提供一个免费沙盒,包含假的商业账户和买家账户,方便你在不动真钱的情况下测试。本指南演示沙盒流程;正式流程完全相同,只需切换左上角的"沙盒 / 正式"开关并使用 PayPal 商业账户。从后台打开"Apps & Credentials"。
PayPal Developer → Apps & Credentials - 创建一个应用
在"API Credentials"页,确认已选中"沙盒"开关,然后点击右上角的"创建应用"。
PayPal → Apps & Credentials → 创建应用 - 命名并选择 Merchant
输入一个应用名称(例如"Coin Moebius"),将类型保留为"Merchant",选择你的沙盒商业账户,然后点击"创建应用"。
PayPal → 创建应用 - 复制你的 Client ID 和 Client secret
PayPal 会打开你的新应用。复制 Client ID,然后展开并复制 Secret key。(也可以从"API Credentials"列表中的"默认应用"行复制两者。)保存备用。
1. PayPal → API Credentials → 列表中的你的应用 2. PayPal → 你的应用 → Client ID 和 Secret Client secret 是机密的,请像对待密码一样保管它。沙盒应用和正式应用各有自己的一对,请勿混淆。
- 添加 webhook
向下滚动应用页面至"沙盒 Webhooks"部分,点击"添加 Webhook"。在"Webhook URL"字段中粘贴你项目的 PayPal webhook 地址(见下)。然后选择 Coin Moebius 监听的事件,点击"保存"。
- 一次性付款:CHECKOUT.ORDER.APPROVED、PAYMENT.CAPTURE.COMPLETED、PAYMENT.CAPTURE.DENIED、PAYMENT.CAPTURE.DECLINED、PAYMENT.CAPTURE.REFUNDED、PAYMENT.CAPTURE.REVERSED、CUSTOMER.DISPUTE.CREATED。
- 订阅(仅当你销售订阅时):BILLING.SUBSCRIPTION.ACTIVATED、BILLING.SUBSCRIPTION.UPDATED、BILLING.SUBSCRIPTION.CANCELLED、BILLING.SUBSCRIPTION.PAYMENT.FAILED、PAYMENT.SALE.COMPLETED。如果你不按周期计费,请跳过这些。
- 赶时间?选择顶部的"All Events"(通配符)也可以,我们会忽略用不到的。
https://api.coinmoebius.com/webhook/paypal/<your project id>PayPal → 你的应用 → 添加 webhook 你的项目 ID 显示在 Coin Moebius 后台的项目名称下方;将其填入上方地址中。已连接的渠道卡片(最后一步)也会显示同一个 URL 供参考。
- 复制 Webhook ID
你的 webhook 现在出现在"沙盒 Webhooks"列表中。复制其旁边显示的 Webhook ID。这是 Coin Moebius 向 PayPal 确认每条 webhook 是否真实的方式。请在沙盒和正式中分别注册独立的 webhook。
PayPal → 你的应用 → 沙盒 Webhooks → Webhook ID - 回到 Coin Moebius:添加渠道 → PayPal
在你的项目里,打开"渠道"标签,点击"添加渠道",选择"连接服务",然后选择 PayPal。设置你的成功网址和取消网址。用沙盒凭据测试?使用"测试(可选)"标签页粘贴你的 Client ID、Client secret 和 Webhook ID,然后点击"保存"。直接上线?使用"正式"标签页。测试组是全有或全无:三个字段要么全填,要么一个都不填。
Coin Moebius → 添加渠道 → PayPal - 连接完成
PayPal 现在出现在你的"渠道"标签上,显示连接日期(使用沙盒凭据时标注"TEST")。卡片上显示你粘贴到 PayPal 的同一个 webhook URL,以及"编辑"和"断开连接"按钮。
Coin Moebius → 渠道 → PayPal(已连接) - 用沙盒买家测试
要通过测试结账付款,你需要沙盒买家的登录信息。在 PayPal 中,打开"Testing Tools → Sandbox Accounts"查看你的假商业账户和个人账户。
PayPal → Testing Tools → Sandbox Accounts - 获取买家登录详情
打开个人(买家)账户查看其登录信息:沙盒 URL、邮箱和密码。当测试结账要求付款时,用这些信息在 sandbox.paypal.com 登录。不会发生真钱流动。
PayPal → 沙盒账户 → 登录信息
连接之后
上线前跑一笔测试付款:
- 创建一个商品,并把它的环境设为 Testing。这会让该商品跑在你的沙盒凭据上,于是你可以下一整单而不动真钱。(如果你跳过了沙盒组,一个 Testing 商品会回退到正式,所以请先添加它。)
- 把买按钮放到一个页面上(本地 HTML 文件也行),指向你的项目。
- 用你的沙盒买家账户付款来完成结账。
- 打开“交易”标签。一行带 Testing 标签的新行出现。当它的状态到达 succeeded 时,你的凭据和 webhook 就都端到端工作了。
准备好接收真实付款时,把商品环境切换到 Live。
问题排查
从“验证”开始。在后台里,点击“验证”(沙盒则是“验证测试凭据”)来核对你的客户端凭据。
验证失败。
重新复制 Client ID 和 Client secret。沙盒应用和正式应用有不同的一对,所以别把它们混了。
付款完成了,但订单仍停在待处理。
Webhook ID 必须来自与你客户端凭据相同的应用和环境。正式凭据需要正式的 webhook id。确认 webhook URL 一致。
端到端确认一下。
PayPal Developer Dashboard → Webhooks Simulator:把一个示例事件发到你的 webhook URL,然后看着订单更新。
值得了解
轮换密钥. 随时生成一个新的 client secret,然后粘进去。编辑时机密字段保持空白。
有问题? Join our Discord