Skip to content

测试与上线准备

正式上线前,建议先用 test key 跑通完整链路:创建订单、跳转结账页、完成付款、接收 webhook、更新你的订单系统。

测试代币(测试网水龙头)

测试模式下的支付跑在公共测试网上,使用平台发行、无真实价值的测试稳定币。领取方式:在商家后台打开测试模式,进入 Developers 页面,点击 测试代币 按钮——弹窗会把所有代币一次性领到你自己的钱包。每个代币每个地址每个 UTC 日可领 1,000 枚(合约的公开 drip() 方法,也可以直接在区块浏览器上调用)。

网络代币合约地址精度
Arbitrum Sepolia (421614)USDC0xf9Af82ce89B3A8031fc70Ae5999Ba5386c0f62496
Arbitrum Sepolia (421614)USDT0xd8675B730215142358444f3b496CF590E7E8a5e76
Arbitrum Sepolia (421614)EURC0x64C9Cc17Ea6e7709F95E5E0B76A1D2D2d71c6c416
Base Sepolia (84532)USDC0x4e620E21B229fe0319E0E49055b85BcdcDC1Ab3f18
Base Sepolia (84532)USDT0xD699ea57770CF7286FbecEccA4c9a7006Efb0bE218

说明:

  • 把这些地址导入钱包,才能看到测试币余额。
  • Arbitrum Sepolia 对应主网 Base/Arbitrum 的形态(6 位精度;USDC/EURC 走 EIP-3009 免 gas 支付)。Base Sepolia 对应主网 BNB 智能链的形态(18 位精度;approve + 签名流程)。
  • 领取和支付仍需要少量测试网 gas——请从任意公共 faucet 领取对应网络的 Sepolia ETH。

测试目标

你需要确认:

  • 服务端可以成功创建 payment intent。
  • Hosted Checkout 前端能拿到 checkoutUrl 并跳转。
  • 如果使用 Checkout Button,按钮能从你的服务端拿到 checkoutUrl 并打开 hosted checkout。
  • 如果使用 Checkout Panel,前端能拿到 paymentId,并能正常加载面板、切换链和币种。
  • 买家完成付款后,你的 webhook 能收到事件。
  • 你的订单系统能按 paymentIdorderId 幂等更新。
  • 失败、取消、过期和重复事件不会导致错误履约。

推荐测试顺序

  1. 在商家后台 Developers 创建 test API key。
  2. 创建 webhook endpoint,并保存 signing secret。
  3. 用服务端创建一笔小额测试订单。
  4. 前端跳转到 Taria Pay 结账页。
  5. 如果使用 Checkout Button,确认按钮打开 hosted checkout;如果使用 Checkout Panel,确认面板能连接钱包并完成支付。
  6. 完成付款或模拟失败路径。
  7. 在 Delivery Logs 查看 webhook 投递结果。
  8. 在你的系统确认订单状态。

测试直接转账付款

在支持的网络上,结账页除了钱包支付还提供直接转账(展示订单专属收款地址和二维码)。建议至少验证一次:

  1. 创建一笔小额测试订单并打开结账页。
  2. 展开直接转账,核对页面展示的网络、币种、金额和收款地址。
  3. 从任意钱包(不需要连接)按展示的金额转账。
  4. 留在页面等待自动确认,或点击"我已转账"手动触发检查。
  5. 确认你的 webhook 收到与钱包支付完全一致的 payment_intent.confirmed 事件,订单系统正常落账。

注意:直接转账按网络开通,测试时以结账页实际展示为准;不要向历史订单的收款地址重复转账——除非你为该已验证客户启用了固定收款地址,否则每笔订单地址唯一(即使是固定地址,也只有订单开着期间转入的资金才计入订单)。

本地 Taria Pay 栈

本地付款 不会自己确认。需要同时跑:

bash
npm run dev:backend              # API :3003
npm run dev:checkout             # checkout :3004
./scripts/dev-backfill-loop.sh   # 必跑,否则 intent 停在 processing,也不会发 webhook

商家应用把 TARIAPAY_API_BASE 设为 http://127.0.0.1:3003(只写 origin)。

本地 webhook

如果你的服务端还在本地开发,需要让 Taria Pay 能访问你的 webhook endpoint。常见做法是使用公网转发工具,把本地地址临时暴露为 HTTPS URL,再到后台 Developers → Webhooks 注册,并把 signing secret 写入 TARIAPAY_WEBHOOK_SECRET

不要用 successUrl 当本地捷径去履约。暂时没法打隧道时,在服务端轮询 GET /v1/payment-intents/:paymentId

上线前请把 webhook URL 换成正式域名。

测试清单

  • API key 没有暴露在前端代码。
  • orderId 在你的系统里稳定且唯一。
  • successUrlcancelUrl 都能正常打开。
  • 如果用 Checkout Button,前端只拿到 checkoutUrl,没有暴露 API key。
  • 如果用 Checkout Panel,前端只持有 paymentId,没有暴露 API key。
  • webhook handler 会先验签。
  • webhook 处理逻辑是幂等的。
  • confirmed 后才触发发货、开通权益或记账。
  • 客服或运营知道如何用 paymentIdorderIdtxHash 排查问题。

下一步