结账会话
结账会话代表客户进行付款时的会话。它是收集付款详细信息以创建一次性付款或订阅的主要机制。创建会话后,您需要将客户重定向到一个安全的、托管的支付页面。付款完成后,客户将被重定向回您的应用程序。
结账会话对象#
结账会话对象包含有关支付流程的所有详细信息,包括订单项、支付状态和客户信息。
属性 | 类型 | 描述 |
|---|---|---|
| string | 对象的唯一标识符。 |
| string | 您应将客户重定向到此 URL 以完成支付。 |
| string | 结账会话的状态。可以是 |
| string | 会话的支付状态。可以是 |
| string | 结账会话的模式,决定了所收集的付款类型。可以是 |
| string | 所有订单项价格的总和。 |
| string | 应用折扣和税费后的总金额。 |
| string | 用于支付的货币 ID。 |
| string | 此会话的客户 ID。 |
| array | 客户正在购买的商品列表。 |
| object | 您可以附加到对象上的一组键值对。 |
| string | 成功付款后重定向到的 URL。 |
| string | 如果客户取消会话,重定向到的 URL。 |
| number | 结账会话将过期的 Unix 时间戳。 |
创建结账会话#
为客户创建一个会话以输入其付款详细信息。
创建一个结账会话
const session = await payment.checkoutSessions.create({
success_url: 'https://example.com/success',
cancel_url: 'https://example.com/cancel',
line_items: [
{
price_id: 'price_12345',
quantity: 1,
},
],
mode: 'payment', // or 'subscription'
});参数
名称 | 类型 | 描述 |
|---|---|---|
| array | 必需。 订单项对象列表。有关详细信息,请参阅下方的 订单项属性 表。 |
| string | 必需。 客户成功付款后将被引导至的 URL。 |
| string | 必需。 如果客户取消付款,将被引导至的 URL。 |
| boolean | 启用促销代码。默认为 |
| string | 指定是否收集客户的账单地址。可以是 |
| string | 用于引用结账会话的唯一字符串。这可用于将会话与您的内部系统进行对账。 |
| string | 要与此会话关联的现有客户的 ID。 |
| string | 确定如何处理客户创建。可以是 |
| number | 会话将在此 Unix 时间戳后过期。默认为自创建起 24 小时。 |
| object | 一组用于存储有关对象的附加信息的键值对。 |
| object | 将用于创建底层 PaymentIntent 的数据。请参阅下方的 Payment Intent 数据属性 表。 |
| object | 如果会话处于 |
| boolean | 如果为 |
订单项属性
名称 | 类型 | 描述 |
|---|---|---|
| string | Price 对象的 ID。 |
| number | 正在购买的订单项数量。默认为 1。 |
| object | 允许客户在结账页面上调整此订单项的数量。包含 |
订阅数据属性
名称 | 类型 | 描述 |
|---|---|---|
| string | 订阅的可选描述。 |
| number | 订阅的试用天数。 |
| object | 一组存储在订阅上的键值对。 |
返回
已创建的结账会话对象。
Response
{
"id": "cs_123456789",
"object": "checkout.session",
"url": "https://checkout.example.com/pay/cs_123456789",
"status": "open",
"payment_status": "unpaid",
"mode": "payment",
"success_url": "https://example.com/success",
"cancel_url": "https://example.com/cancel",
"line_items": [
{
"price_id": "price_12345",
"quantity": 1
}
],
"expires_at": 1678886400,
// ... 其他属性
}检索结账会话#
检索现有结账会话的详细信息。
检索一个结账会话
const session = await payment.checkoutSessions.retrieve('cs_123456789');参数
名称 | 类型 | 描述 |
|---|---|---|
| string | 必需。 要检索的结账会话的唯一标识符。 |
返回
检索到的结账会话对象。
Response
{
"id": "cs_123456789",
"object": "checkout.session",
"status": "complete",
"payment_status": "paid",
// ... 其他属性
}更新结账会话#
通过设置传入参数的值来更新结账会话对象。任何未提供的参数将保持不变。
更新一个结账会话
const session = await payment.checkoutSessions.update('cs_123456789', {
metadata: {
order_id: '6735'
}
});参数
名称 | 类型 | 描述 |
|---|---|---|
| string | 必需。 要更新的会话 ID。 |
| object | 一组存储在对象上的键值对。这是唯一可以更新的字段。 |
返回
更新后的结账会话对象。
列出所有结账会话#
返回您的结账会话列表。会话按创建日期排序返回,最新的会话最先出现。
列出结账会话
const sessions = await payment.checkoutSessions.list({
limit: 5,
status: 'open'
});参数
名称 | 类型 | 描述 |
|---|---|---|
| string | 按状态筛选会话。可以是 |
| string | 按支付状态筛选会话。可以是 |
| string | 仅返回给定客户 ID 的会话。 |
| string | 仅返回给定客户 DID 的会话。 |
| string | 仅返回给定 PaymentIntent 的会话。 |
| string | 仅返回从给定支付链接创建的会话。 |
| string | 仅返回给定订阅的会话。 |
| string | 按自定义元数据字段筛选。例如 |
| number | 用于分页的页码。默认为 |
| number | 每页的项目数。默认为 |
返回
一个包含结账会话对象 list 的分页对象。
Response
{
"count": 15,
"list": [
{
"id": "cs_123456789",
"object": "checkout.session",
"status": "open",
// ... 其他属性
},
{
"id": "cs_987654321",
"object": "checkout.session",
"status": "open",
// ... 其他属性
}
]
}使结账会话过期#
手动使结账会话过期。此操作不可逆。
使一个结账会话过期
const session = await payment.checkoutSessions.expire('cs_123456789');参数
名称 | 类型 | 描述 |
|---|---|---|
| string | 必需。 要使其过期的结账会话 ID。 |
返回
状态为 expired 的已过期结账会话对象。
Response
{
"id": "cs_123456789",
"object": "checkout.session",
"status": "expired",
// ... 其他属性
}