Deeplink 直跳集成
商户在自己的下单页渲染钱包列表,用户点击选择钱包后,通过 createPayment 返回的 deeplink 直接唤起指定钱包完成支付,无需经过 Paydify 收银台中转。
| 维度 | 说明 |
|---|---|
| 用户体验 | 最佳(用户在熟悉的下单页上完成钱包选择) |
| 集成工作量 | 较低(多一步在下单页渲染钱包列表 UI) |
| 支持的平台 | WAP(手机)/ App(手机) |
适合已经有完整下单 UI、想要把钱包选择融入自有页面而不引入第三方收银台跳转的商户。
交互示意
在商家的下单页面自定义支付方式,买家在那里选择支付方式(钱包),通过 Paydify 下单返回的 Deeplinks 自动跳转到指定钱包完成支付。

与 CKP 的差异
Deeplink 与 CKP 共用同一个 POST /payin/v1/createPayment 接口,仅在客户端跳转逻辑上不同:
| 阶段 | CKP | Deeplink |
|---|---|---|
| 创建订单 | 服务端调用 createPayment | 同 CKP |
| 钱包选择 | 由 Paydify 收银台引导 | 由商户在下单页自行渲染 |
| 客户端跳转 | 跳 data.httplink(Paydify 收银台) | 直接跳 data.deeplink(钱包 App) |
| 回调 / 查询 / 退款 / 对账 | 同 CKP | 同 CKP |
完整步骤 0 / 1 / 3 / 4 / 5 复用 CKP 集成指南,本页只列出 Deeplink 独有的步骤 1 字段约束与步骤 2 客户端跳转方式。
由商户在下单页自行渲染钱包选择 UI(支持交易所与 Web3 钱包分组、按链筛选),用户选定后下单接口 payMethod1 传入对应钱包:

集成准备
- 完成 KYC 并拿到
x-api-key/x-api-secret(商户 Portal - 开发者中心获取); - 已下载并接入服务端 SDK;
- 已确认目标钱包列表与对应链,参考 支持的链和币种。
集成步骤
集成时序
步骤 1:创建订单(必须指定钱包 + 链)
调用 POST /payin/v1/createPayment。Deeplink 模式下,必须在请求中指定钱包与链,Paydify 才能返回对应钱包的 deeplink:
| 字段名 | 必传 | 描述 |
|---|---|---|
payMethod1 | 是(Deeplink 模式必传) | 支付使用的钱包,枚举值见 支持的链和币种,如 BINANCE / BITGET / OKX |
payMethod2 | 是(Deeplink 模式必传) | 支付使用的链,如 BNB / TRON / ETH / KAIA |
| 其他字段 | — | 与 CKP 完全一致,详见 CKP 集成 - 步骤 1 |
请求示例:
{ "mchTxnId": "MCH_TXN_20260610_002", "txnAmount": "0.01", "currency": "USDT", "checkoutMode": "MERCHANT", "payMethod1": "BINANCE", "payMethod2": "BNB", "notificationUrl": "https://your-domain.com/api/payment/notify", "successReturnUrl": "https://your-domain.com/pay/success", "failReturnUrl": "https://your-domain.com/pay/fail", "pendingReturnUrl": "https://your-domain.com/pay/pending", "txnTitle": "Test Payment Order", "source": "web", "txnDesc": "Payment for test product", "accountInfo": [ { "toAddress": "0x1111111111222222222233333333334444444444", "network": "ETH" } ], "payerInfo": { "uid": "USER_123456" }, "mchExtInfo": "{\"orderId\":\"ORD_2025081201\",\"productId\":\"PROD_001\"}" }
响应示例:
{ "code": "SYS_SUCCESS", "message": null, "messageDetail": null, "data": { "txnId": "P5118170010653393152", "mchTxnId": "MCH_TXN_20260610_002", "httplink": "https://app.binance.com/payment/secpay?linkToken=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&_dp=Ym5jOi8vYXBwLmJpbmFuY2UuY29tL3BheW1lbnQvc2VjcGF5P3RlbXBUb2tlbj14eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCZyZXR1cm5MaW5rPWh0dHBzOi8veW91ci1kb21haW4uY29tL3BheS9zdWNjZXNz", "deeplink": "bnc://app.binance.com/payment/secpay?tempToken=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&returnLink=https://your-domain.com/pay/success", "qrCode": "data:image/png;base64,iVBORw0...", "state": "INIT", "errorMsg": "" }, "success": true }
Deeplink 模式下,您主要使用 data.deeplink 字段。
步骤 2:客户端唤起钱包
在用户选择钱包后,把 data.deeplink 写入跳转入口:
<a href="{{deeplink}}" target="_self">使用 Binance Pay 支付</a>
window.location.href = data.deeplink;
关键约束:
- Deeplink 必须在用户主动点击事件中触发(如 click),否则部分浏览器会拦截;
- 如果用户没有安装对应钱包 App,跳转会失败。建议在客户端做超时检测(如 3 秒后未离开页面就视为失败),并提供"切换支付方式"的降级入口(如改用 CKP
httplink); - iOS Safari / 部分 WebView 对 Universal Link / Custom Scheme 有不同支持策略,请按目标钱包的官方文档适配。
用户支付完跳回您的页面
部分钱包 App 不会自动跳回您的页面(这是 Deeplink 与 CKP 的最大体验差异)。推荐做法:
- 客户端跳出后展示"请在钱包中完成支付,完成后返回此页面"提示;
- 同时轮询
getPaymentStatus或监听 Webhook,实时刷新页面状态; - 用户手动返回您的下单页时,根据查询结果展示成功 / 失败页。
复用 CKP 的部分
- 步骤 0:加 / 验签 —— 完全一致,参考 CKP 集成 - 步骤 0;
- 步骤 3:获取支付结果 —— Webhook + 主动查询双保险完全一致,参考 CKP 集成 - 步骤 3 与 回调通知;
- 步骤 4:发起退款 —— 完全一致,参考 发起退款;
- 步骤 5:获取对账单 —— 完全一致,参考 获取结算文件。
上线检查清单(额外项)
[ ] 已在下单页明确列出当前商户开通的钱包列表 [ ] 已对未安装钱包 App 的用户提供降级入口(如改用 CKP) [ ] 已实现"轮询 getPaymentStatus 或 Webhook 触发"的支付完成感知 [ ] 已在跳出钱包前给用户提示"在钱包完成后返回此页" [ ] 通过沙箱真机验证了至少 1 个钱包的 deeplink 唤起