---
title: 支付页面
description: Coinetic 托管加密支付页面的工作方式：如何在网站和移动 App 中打开支付页面、顾客如何用 USDT、USDC 或比特币付款，以及付款后如何返回商店。
url: https://coinetic.money/zh/docs/checkout/
lang: zh-Hans
---

# 支付页面

支付页面由我们提供。您的服务器只需通过创建账单时返回的 `checkout_url` 将顾客重定向过去。

## 顾客看到的内容

- 订单金额和账单有效期倒计时。
- 币种选择 —— 仅显示该账单当前可用的资产。
- 选择后：二维码、带「复制」按钮的精确金额、地址、网络提示以及「在钱包中打开」链接（BIP21、EIP-681、Solana Pay、TRON）。
- 状态自动更新：「已检测到付款」→「确认数 7/20」→「已收到付款」。
- 「返回商店」按钮 —— 跳转到您的 `return_url`。

在尚未付款之前，顾客可以更换币种。首笔付款到账后，币种即被锁定。对于波动性资产，会显示汇率倒计时（20 分钟）；倒计时结束后，金额和地址将被隐藏。

页面提供俄语和英语版本，并根据设备设置自动切换浅色或深色主题。

## 打开方式

| 场景 | 方式 |
| --- | --- |
| 网站 | 在同一标签页跳转：由服务器返回 `303 See Other`，或使用 `location.href` |
| iOS | `ASWebAuthenticationSession` 或 `SFSafariViewController` |
| Android | Chrome Custom Tabs（`androidx.browser`） |
| Telegram 机器人 | 带 `checkout_url` 链接的 Inline 按钮 |
| **请勿使用** | `iframe`、`WKWebView`、`WebView`：没有地址栏（无法识别钓鱼页面），跳转钱包的链接也不稳定。支付页面禁止被嵌入（`frame-ancestors 'none'`） |

> **移动 App.** App 不应直接调用 Coinetic API，也不应保存密钥 secret —— 从安装包中提取它只需几分钟。应由您的服务器根据 App 的请求创建账单，只把 `checkout_url` 返回给 App。

## 顾客返回

- 顾客可能在付款前、确认过程中返回，也可能根本不返回。订单页面不应依赖这一点。
- 可以在 `return_url` 中传递订单号，但**状态请以您自己的数据库为准** —— 数据库由 Webhook 更新。如果订单尚未支付，请通过 `GET /v1/invoices/{id}` 复核。
- 对于 App，请传入通用链接（Universal Links / App Links）：`https://shop.example/app/orders/ORDER-1001`。不接受自定义 scheme（`myapp://`）。

## 常见情况

| 情况 | 处理方式 |
| --- | --- |
| 顾客关闭了标签页 | 在订单中提供指向 `checkout_url` 的「前往支付」链接 —— 账单在 `expires_at` 之前一直有效 |
| 账单已过期 | 使用新的 `order_id`（例如 `ORDER-1001-2`）和新的 `Idempotency-Key` 创建新账单 |
| 少付 | 「请向同一地址补付余款」—— 支付页面会显示剩余金额 |
| 过期后付款 | 资金已到账，由您决定：交付订单或办理退款 |
| AML 检查 | 告知顾客付款正在审核中；等待 `invoice.paid` |
