Skip to content

开发者 API

集成与 自定义

通过 URL Scheme 从您自己的应用或网站启动 Payment for Stripe,并直接在 Stripe 控制面板中控制哪些产品显示在应用中。

通过 URL Scheme 集成

工作原理

1

您的应用打开 payment:// 带参数的 URL

2

Payment for Stripe 启动并处理交易

3

完成后,应用会带着结果重定向到您的回调 URL

端点

创建收款

payment://new?

处理一次性付款,可设置金额、币种和描述。

参数

名称类型必填描述
amountinteger是金额以美分为单位(例如,1000 = 10.00 美元)
currencystring否三字母 ISO 货币代码(默认值:USD)
descriptionstring否URL 编码的收款描述
customerstring否现有 Stripe 客户 ID
emailstring否用于发送收据的客户电子邮件
namestring否URL 编码的客户姓名
metadatastring否自定义键值对(URL 编码的 JSON)
callbackstring否完成后返回的 URL
autoprocessboolean否跳过主屏幕,立即开始收款
auto_returnboolean否当结果加载完毕时触发回调函数,而不是等待商家关闭结果对话框。默认值为 false。

创建发票

payment://cart?

创建包含产品目录中各项商品的 Stripe 发票。

参数

名称类型必填描述
pricesstring是以逗号分隔的价格 ID 和数量(例如,price_abc:2,price_xyz:1)
customerstring否现有 Stripe 客户 ID
emailstring否用于发送收据的客户电子邮件
namestring否URL 编码的客户姓名
callbackstring否完成后返回的 URL
auto_returnboolean否当结果加载完毕时触发回调函数,而不是等待商家关闭结果对话框。默认值为 false。

支付现有发票(仅限 iOS)

payment://invoice?

针对现有 Stripe 发票收取线下付款。金额、币种、客户和税费均取自发票,任何覆盖修改都会被拒绝。商家通过读卡器 / Tap to Pay / 手动输入刷卡;成功后,发票会被标记为已在 Stripe 外支付(out-of-band),并通过 charge_id 和 payment_intent_id 元数据关联。包含订阅、default_payment_method 或状态不是 open 的发票会被拒绝,并返回可操作的错误信息。

参数

名称类型必填描述
idstring是Stripe 发票 ID(必须以 in_ 开头)
callbackstring否完成后返回的 URL。成功后接收 invoice_id 和 payment_intent_id。
metadatastring否自定义键值对(URL 编码的 JSON)合并到 PaymentIntent 元数据中
autoprocessboolean否跳过主屏幕,立即开始收款
auto_returnboolean否当结果加载完毕时触发回调函数,而不是等待商家关闭结果对话框。默认值为 false。

处理回调

交易完成后,Payment for Stripe 会重定向到您的回调 URL,并通过查询参数返回结果。默认情况下,重定向会在商家关闭结果对话框后触发,方便其执行收款后的操作(通过电子邮件发送收据、退款)。传入 auto_return=true 可在结果确定后立即触发。iOS 和 Android 均支持。

回调参数

参数值描述
statussuccess | error | cancelled交易结果
charge_idstringStripe 收款 ID(成功时)
invoice_idstringStripe 发票 ID(成功时,仅限 payment://invoice 流程)
payment_intent_idstringStripe PaymentIntent ID(成功时,仅限 payment://invoice 流程)
errorstring错误信息(出错时)

示例

简单收款

仅凭金额收款 10.00 美元

payment://new?amount=1000

带描述的收款

收款 25.00 欧元并附带描述

payment://new?amount=2500&currency=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&currency=usd&description=Service%20Fee&customer=cus_ABC123xyz&metadata=%7B%22invoice%22%3A%22INV-2024-001%22%7D&autoprocess=true&callback=myapp://payment-result

URL 编码

请记住对参数值中的特殊字符进行 URL 编码。空格会编码为 %20,花括号会编码为 %7B 和 %7D。

用元数据隐藏产品

在应用中隐藏产品

应用会列出您 Stripe 账户中的产品和价格。如果想让某个产品不出现在应用中(例如仅在您的网店销售的商品),请在 Stripe 控制面板中为该产品或价格添加以下元数据键:

payment_hidden = true

设置在产品上:隐藏该产品及其所有价格。

设置在价格上:仅隐藏该价格。

删除该键或将其设为 false 即可重新显示。更改将在应用下次加载产品列表时生效。

购物车链接仍然有效

隐藏仅影响应用内的产品列表。引用已隐藏价格的 payment://cart 链接仍然有效,现有订阅也不受影响。

准备好集成了吗?

下载应用,立即开始测试集成功能。