开发者 API
集成与 自定义
通过 URL Scheme 从您自己的应用或网站启动 Payment for Stripe,并直接在 Stripe 控制面板中控制哪些产品显示在应用中。
通过 URL Scheme 集成
工作原理
您的应用打开 payment:// 带参数的 URL
Payment for Stripe 启动并处理交易
完成后,应用会带着结果重定向到您的回调 URL
端点
创建收款
payment://new?处理一次性付款,可设置金额、币种和描述。
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
amount | integer | 是 | 金额以美分为单位(例如,1000 = 10.00 美元) |
currency | string | 否 | 三字母 ISO 货币代码(默认值:USD) |
description | string | 否 | URL 编码的收款描述 |
customer | string | 否 | 现有 Stripe 客户 ID |
email | string | 否 | 用于发送收据的客户电子邮件 |
name | string | 否 | URL 编码的客户姓名 |
metadata | string | 否 | 自定义键值对(URL 编码的 JSON) |
callback | string | 否 | 完成后返回的 URL |
autoprocess | boolean | 否 | 跳过主屏幕,立即开始收款 |
auto_return | boolean | 否 | 当结果加载完毕时触发回调函数,而不是等待商家关闭结果对话框。默认值为 false。 |
创建发票
payment://cart?创建包含产品目录中各项商品的 Stripe 发票。
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
prices | string | 是 | 以逗号分隔的价格 ID 和数量(例如,price_abc:2,price_xyz:1) |
customer | string | 否 | 现有 Stripe 客户 ID |
email | string | 否 | 用于发送收据的客户电子邮件 |
name | string | 否 | URL 编码的客户姓名 |
callback | string | 否 | 完成后返回的 URL |
auto_return | boolean | 否 | 当结果加载完毕时触发回调函数,而不是等待商家关闭结果对话框。默认值为 false。 |
支付现有发票(仅限 iOS)
payment://invoice?针对现有 Stripe 发票收取线下付款。金额、币种、客户和税费均取自发票,任何覆盖修改都会被拒绝。商家通过读卡器 / Tap to Pay / 手动输入刷卡;成功后,发票会被标记为已在 Stripe 外支付(out-of-band),并通过 charge_id 和 payment_intent_id 元数据关联。包含订阅、default_payment_method 或状态不是 open 的发票会被拒绝,并返回可操作的错误信息。
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | string | 是 | Stripe 发票 ID(必须以 in_ 开头) |
callback | string | 否 | 完成后返回的 URL。成功后接收 invoice_id 和 payment_intent_id。 |
metadata | string | 否 | 自定义键值对(URL 编码的 JSON)合并到 PaymentIntent 元数据中 |
autoprocess | boolean | 否 | 跳过主屏幕,立即开始收款 |
auto_return | boolean | 否 | 当结果加载完毕时触发回调函数,而不是等待商家关闭结果对话框。默认值为 false。 |
处理回调
交易完成后,Payment for Stripe 会重定向到您的回调 URL,并通过查询参数返回结果。默认情况下,重定向会在商家关闭结果对话框后触发,方便其执行收款后的操作(通过电子邮件发送收据、退款)。传入 auto_return=true 可在结果确定后立即触发。iOS 和 Android 均支持。
回调参数
| 参数 | 值 | 描述 |
|---|---|---|
status | success | error | cancelled | 交易结果 |
charge_id | string | Stripe 收款 ID(成功时) |
invoice_id | string | Stripe 发票 ID(成功时,仅限 payment://invoice 流程) |
payment_intent_id | string | Stripe PaymentIntent ID(成功时,仅限 payment://invoice 流程) |
error | string | 错误信息(出错时) |
示例
简单收款
仅凭金额收款 10.00 美元
payment://new?amount=1000带描述的收款
收款 25.00 欧元并附带描述
payment://new?amount=2500¤cy=eur&description=Coffee%20and%20pastry向新客户收款
收取 50.00 美元并创建客户记录
payment://new?amount=5000&name=John%20Smith&[email protected]向现有客户收款
向现有 Stripe 客户收取 75.00 美元
payment://new?amount=7500&customer=cus_ABC123xyz带元数据的收款
收款 100.00 美元,并附带自定义元数据便于记录
payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D自动处理并回调
跳过主屏幕,完成后返回您的应用
payment://new?amount=3500&autoprocess=true&callback=myapp://payment-complete出结果后自动返回
结果一出即触发回调,无需等待商家关闭结果对话框
payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete包含明细项目的发票
使用 Stripe 目录中的产品创建发票
payment://cart?prices=price_coffee:2,price_muffin:1&[email protected]支付现有发票(iOS)
针对现有 Stripe 发票收取线下付款。成功后返回 invoice_id 和 payment_intent_id。
payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid完整示例
组合所有参数,实现完整集成流程
payment://new?amount=15000¤cy=usd&description=Service%20Fee&customer=cus_ABC123xyz&metadata=%7B%22invoice%22%3A%22INV-2024-001%22%7D&autoprocess=true&callback=myapp://payment-resultURL 编码
请记住对参数值中的特殊字符进行 URL 编码。空格会编码为 %20,花括号会编码为 %7B 和 %7D。