跳至内容
结账集成API 密钥

API 密钥

对 API 请求进行身份验证,并妥善保管您的密钥。

简介

对 Tokenz API 的每个请求,都通过以 Bearer 令牌形式发送的私密 API 密钥进行身份验证:

bash
curl https://api.tokenz.one/v2/checkoutsession \
  --header 'Authorization: Bearer secret_test_YOUR_KEY_HERE'

Tokenz 仅使用私密密钥,没有可公开的(publishable)客户端密钥。私密密钥可以在您的账户上创建付款并读取订单数据,因此绝不能离开您的服务器。

您可以在后台的 Developers → API keys 中创建和管理密钥。

测试密钥与正式密钥

每个密钥都属于一种模式:

可按需左右滚动
前缀模式是否涉及资金
secret_test_…测试否 —— 仅为模拟付款
secret_live_…正式是 —— 真实付款

请使用测试密钥构建和测试您的集成,然后在生产环境中切换为正式密钥。测试密钥无法处理真实付款,正式密钥也不能在测试模式下使用,因此请将两者放在不同的环境配置中(例如,每个环境取值不同的 TOKENZ_SECRET_KEY 变量)。

妥善保管您的私密密钥

由于不存在可在客户端安全使用的密钥,请像对待密码一样对待私密密钥:

  • 仅在服务器端使用。 绝不要将其放入浏览器代码、移动应用、单页应用打包文件,或任何会发送到用户设备的内容中。
  • 绝不要将其提交到源代码管理,也不要出现在日志、错误信息和 URL 中。
  • 将其存储在环境变量或密钥管理工具中,而不是代码库里。

密钥仅在创建时显示一次。请当场复制并妥善保管。如果丢失,请创建新密钥,而不要尝试找回旧密钥。

只授予密钥所需的权限

创建密钥时,您可以选择其权限(scope)——例如结账会话的创建/读取、订单的读取/取消、配送记录、商品读取、退款的创建/读取、兑换码的验证/兑换,或订阅套餐变更。

请为每个密钥授予其所需的最小权限:

  • 每个集成或服务使用单独的密钥,只授予该集成用到的权限。仅读取订单的报表任务不需要退款或结账权限。
  • 如果一个权限受限的密钥泄露,影响范围很小,您可以只吊销该密钥,而不影响其他部分。

轮换和吊销密钥

  • 轮换方法是:创建一个新密钥并部署,然后在 Developers → API keys 中删除旧密钥。由于可以同时持有多个密钥,您可以在不停机的情况下完成轮换。
  • 一旦密钥泄露(提交到仓库、粘贴到工单、写入日志),请立即删除。删除密钥即会将其吊销,使用该密钥的任何请求都将失效。然后再签发一个新密钥。

Webhook 签名密钥

Webhook 端点的签名密钥与您的 API 密钥是分开的。Tokenz 用它对每个 Webhook 进行签名,您则针对原始请求正文验证 Tokenz-Signature 头,以确认事件的真实性。签名密钥也应像 API 密钥一样保存在服务器端。

有关如何验证签名,请参阅 Webhook。