API 密钥
用 API 密钥验证 API 请求。
Stripe 会利用您账户的 API 密钥验证您的 API 请求。如果某个请求不包含有效密钥,Stripe 将返回无效请求错误。如果请求中包含已删除或过期的密钥,则 Stripe 将返回身份验证错误。
用开发人员管理平台创建、显示、删除和轮换 API 密钥。要访问 v1 API 密钥,请选择管理平台上的 API 密钥选项卡。
密钥类型
By default, all accounts have a total of four API keys, two in a sandbox and two in live mode:
- Sandbox secret key: Use this key to authenticate requests on your server when you’re testing in a sandbox. By default, you can use this key to perform any API request without restriction. Reserve this key for testing and development to make sure that you don’t accidentally modify your live customers or charges.
- Sandbox publishable key: Use this key for testing purposes in your web or mobile app’s client-side code. Reserve this key for testing and development to make sure that you don’t accidentally modify your live customers or charges.
- 真实模式下的私钥:在真实模式下,使用此密钥对服务器上的请求进行身份验证。默认情况下,您可以不受任何限制地使用此密钥执行任何 API 请求。
- 真实模式下的公钥:在准备启动您的应用程序时,在您的网页或移动应用程序的客户端代码中使用此密钥。
Your secret and publishable keys are in the Dashboard in the API keys tab. If you can’t view your API keys, ask the owner of your Stripe account to add you to their team with the proper permissions.
受限 API 密钥
You can generate restricted API keys in the Dashboard to enable customizable and limited access to the API. However, Stripe doesn’t offer any restricted keys by default.
When you’re logged in to Stripe, our documentation automatically populates code examples with your test API keys. Only you can see these values. If you’re not logged in, our code examples include randomly generated API keys. You can replace them with your own test keys or log in to see the code examples populated with your test API keys.
下表显示了随机生成的 API 私钥和公钥的示例:
类型 | 值 | 何时使用 |
---|---|---|
私钥 | sk_ | 在服务器端:必须要做到保密并安全地存储在您的网页或移动应用的服务器端代码内(例如在环境变量或凭据管理系统中),然后才能调用 Stripe API。请勿在网站上公开此密钥或将其嵌入移动应用程序中。 |
可公开 | pk_ | On the client side: Can be publicly accessible in your web or mobile app’s client-side code (such as checkout.js) to securely collect payment information, such as with Stripe Elements. By default, Stripe Checkout securely collects payment information. |
已限制 | 以 rk_ 开头的字符串 | 在微服务中:必须是私钥,并安全地存储在您的微服务代码中,才能调用 Stripe API。请勿在网站上公开此密钥或将其嵌入移动应用程序中。 |
沙盒与真实模式
所有 Stripe API 请求都发生在沙盒环境或真实模式下。使用沙盒访问测试数据,在真实模式下访问实际账户数据。每种模式都有自己的一组 API 私钥。一种模式下的对象无法被另一种模式访问。例如,沙盒产品对象不能是真实模式付款的一部分。
真实模式密钥访问
您只能显示一次真实模式下的私钥或受限 API 密钥。一旦丢失,您将无法从管理平台中将它找回。这种情况下,轮换或删除它并创建一个新的。
类型 | 何时使用 | 对象 | 如何使用 | 考虑 |
---|---|---|---|---|
sandboxes | Use a sandbox, and its associated test API keys, as you build your integration. In a sandbox, card networks and payment providers don’t process payments. | API 调用返回的是模拟的对象。例如,您可以检索并使用测试用的 account 、payment 、customer 、charge 、refund 、transfer 、balance 和 subscription 对象。 | Use test credit cards and accounts. You can’t accept real payment methods or work with real accounts. | Identity doesn’t perform any verification checks. Also, Connect account objects don’t return sensitive fields. |
真实模式 | 当您准备好启动您的集成并真正收款时,使用真实模式及其关联的真实 API 密钥。在真实模式下,卡组织和支付处理商确实会处理付款。 | API 调用返回的是真实对象。例如,您可以检索并使用真实的 account 、payment 、customer 、charge 、refund 、transfer 、balance 和 subscription 对象。 | 接受真实信用卡,可使用客户账户。您可以为信用卡和账户接受实际付款授权、收款并捕获。 | Disputes have a more nuanced flow and a simpler testing process. Also, some payment methods have a more nuanced flow and require more steps. |
轮换 API 密钥
轮换密钥会将其撤销,并生成一个替换密钥。您可以立即轮换密钥,也可以计划在特定时间后轮换密钥。在以下示例等场景中轮换密钥:
- 如果您是在真实模式,则丢失 API 私钥或限制性密钥的话,不能从管理平台恢复它,必须更换。
- 如果一个私钥或受限密钥被泄露,您需要撤销它来阻止任何可能使用它的潜在的恶意 API 请求。
- 您的策略要求在一定的时间间隔内轮换密钥。
要轮换 API 密钥,请执行以下作:
- 打开 API 密钥页面。
- 在要轮换的密钥所在的行中,点击溢出菜单(),然后选择轮换密钥。
- 从到期日期下拉列表中选择到期日期。
- 点击轮换 API 密钥。
- 该对话框显示新的密钥值。点击它进行复制。
- 保存密钥的值。以后无法再检索到它。
- 在添加注释字段中,输入保存密钥的位置,然后点击完成或保存。
如果到期日期选择的是现在,则我们删除旧密钥。如果您选择的是其他时间,则可以在其名称下方看到它距离到期的时间。
不论旧密钥的到期时间如何,新密钥都可以立即使用。
当您轮换公钥时,替换密钥的名称始终是 Publishable key
。当您轮换私钥时,替换密钥的名称始终是 Secret key
。当您轮换受限密钥时,替换密钥的名称与轮换密钥的名称相同。您可以通过点击其溢出菜单并选择编辑密钥,来重命名私钥或受限密钥。
查看 API 请求日志
要打开 API 请求日志,点击任意密钥的溢出菜单(),然后选择查看请求日志。打开日志会使您返回到 Stripe 主管理平台。
私钥和受限密钥
使用管理平台创建、删除、显示和修改私钥和受限密钥。
创建 API 私钥
创建 API 私钥:
- 打开 API 密钥页面。
- 点击创建私钥。
- Stripe 会以电子邮件或短信的方式给您发送一个验证码。(和任何电子邮件或短信一样,它可能不会立即到达。)在对话框中输入验证码。如果对话没有自动继续,请点击继续。
- 在密钥名称字段输入一个名称。
- 点击创建。
- 该对话框显示新的密钥值。点击它进行复制。
- 保存密钥的值。以后无法再检索到它。
- 在添加注释字段中,输入保存密钥的位置,然后点击完成。
创建受限 API 密钥
受限 API 密钥只允许您指定的最低访问的级别。
创建受限的 API 密钥:
- 打开 API 密钥页面。
- 您可以从头开始创建受限密钥,也可以从克隆现有的受限密钥开始。
- 要从头开始创建受限密钥,请点击创建受限密钥。在这种情况下,所有权限的默认值是无。
- 要克隆现有密钥,点击溢出菜单(),然后在要克隆的密钥的行中选择复制密钥。在这种情况下,每个权限的默认值是它在克隆密钥中的值。
- 在密钥名称字段中,输入名称。如果克隆了现有密钥,则默认名称是所克隆密钥的名称。
- 对于希望新密钥访问的每个资源,选择要允许该密钥使用的权限。如果您使用 Connect,您还可以选择在访问 Connect 子账户时允许此密钥的权限。可用的权限有无、读、或写。
- 点击创建密钥。
- Stripe 会以电子邮件或短信的方式给您发送一个验证码。(和任何电子邮件或短信一样,它可能不会立即到达。)在对话框中输入验证码。如果对话没有自动继续,请点击继续。
- 该对话框显示新的密钥值。点击它进行复制。
- 保存密钥的值。以后无法再检索到它。
- 在添加注释字段中,输入保存密钥的位置,然后点击完成。
删除私钥或受限 API 密钥
删除某个密钥后,任何使用该密钥的代码都不能再进行 API 调用。删除密钥后,创建一个新密钥并更新代码来使用它。
注意
不能删除公钥。
要删除密钥,请执行以下操作:
- 在开发人员管理平台上,选择 API 密钥选项卡。
- 在标准密钥或受限密钥列表中找到要删除的密钥。点击这个密钥所在行的溢出菜单(),然后选择删除密钥。
- 如果确定要删除密钥,请点击删除 API 密钥对话框中的删除密钥。否则,点击取消。
在沙盒环境中显示 API 私钥
在沙盒环境中,您可以任意多次显示一个 API 私钥。
要在沙盒中显示私钥,请执行以下作:
- 在开发人员管理平台上,选择 API 密钥选项卡。
- 在标准密钥列表中,点击密钥行中的显示测试密钥。
- 通过点击来复制密钥的值。
- 保存密钥的值。
- 点击隐藏测试密钥。
显示真实模式的私钥或受限 API 密钥
在真实模式下,Stripe 只向您显示一次私钥或受限 API 密钥(安全起见)。请妥善保管密钥,以防丢失。为帮助您记住它的保存位置,您可以在管理平台中添加密钥备忘。一旦丢失,可轮换或将它删除,然后重新创建一个。
切不可泄露您创建的真实模式下的私钥
在真实模式下创建私钥或受限 API 密钥后,我们会在您保存它之前显示它。保存前必须复制密钥,因为之后不能再复制。您只能显示默认私钥或由预定轮换产生的密钥。
在真实模式下显示私钥或受限密钥并附加注释:
注意
此处的“API 密钥”链接会在真实模式下打开。
- 在开发人员管理平台上,选择 API 密钥选项卡。
- 点击要显示的密钥所在行的标准密钥列表中的显示真实密钥或受限密钥。
- 通过点击来复制密钥的值。
- 保存密钥的值。
- 点击隐藏测试密钥。
- 点击密钥旁的溢出菜单(),然后选择编辑密钥。
- 在注释字段中,输入保存密钥的位置,然后点击保存。
- 如果您在 Stripe 引入此功能之前创建了密钥,请点击隐藏真实密钥。
注意
您在 Stripe 引入此功能之前创建的密钥在被显示时不会自动隐藏。必须手动将它们隐藏。
将密钥或受限密钥限制在一个 IP 地址列表或范围内
将使用密钥的 API 请求限制到一个或多个特定的 IP 地址或 IP 地址范围:
有效 IP 地址范围
您可以指定任何有效的 CIDR 范围。例如,有效范围可以是 100.
,指定为 100.
。该范围内的所有地址都必须以 100.
开头。
- 打开 API 密钥页面。
- 点击要显示的密钥所在行的标准密钥列表或受限密钥列表中的溢出菜单(),然后选择管理 IP 限制。
- 点击仅限于使用一组 IP 地址。
- 输入 IP 地址或 IP 地址范围:
- 对于单个 IP 地址,在 IP 地址字段中输入。
- 对于 IP 地址范围,在无类别域间路由 (CIDR) 表示法中输入范围。在 IP 地址字段,输入该范围的第一个地址。在 CIDR 字段,输入网络前缀大小。
- 也可以选择批量管理选项卡并输入单个的 IP 地址和范围,用空格分隔。在一个选项卡中所作更改会显示在另一个选项卡中。
- 要添加另一个地址或范围,请点击 + 添加。
- 点击保存。
更改私钥或受限 API 密钥的名称或注释
要更改私钥或受限密钥的名称或注释文本:
- 打开 API 密钥页面。
- 点击要更改的密钥所在行的溢出菜单 (),然后选择编辑密钥。
- 如果要更改名称,请在密钥名称中输入新名称。
- 如果要更改注释文本,请在注释中输入新的注释文本。
- 点击保存。
保护您的密钥安全
任何人都可以用您真实模式下的 API 私钥来代您的账户进行任何 API 调用,例如创建收款或执行退款。按照 API 私钥最佳实践保护您的密钥安全。