登录
开发指南 / 移动支付 / 接口接入步骤

接口接入步骤

约 5 分钟
以 Markdown 格式查看 |
## 开始前

开始本场景前,应已完成[开发前准备](../开始接入/开发前准备.md)和[请求与签名](../开始接入/请求与签名.md),并具备:

- 当前展示设备对应的终端参数。
- 能创建二维码生成流水和真实支付订单的数据结构。
- 能被公网访问的真实交易回调地址。
- 能根据真实交易标识主动查询订单的后台任务。

## 接口调用时序图

![20260820-093328.png](https://img-hub.wosaimg.com/file/2026/08/20/9da6498809da40dd.png)

准备二维码业务信息 → **[二维码生成接口](https://open.shouqianba.com/docs/payment/100?category_id=57)** → 取得并展示二维码 → 顾客扫码完成真实付款 → **[回调接口](https://open.shouqianba.com/docs/payment/70?category_id=54)**或**[查询接口](https://open.shouqianba.com/docs/payment/71?category_id=54)**确认真实交易 → 成功后幂等履约 → 售后需要时调用**[退款接口](https://open.shouqianba.com/docs/payment/72?category_id=54)**。

## 准备二维码业务信息

- 目标:为本次二维码生成请求建立可追踪的业务记录。
- 输入来源:门店、设备、展示内容和业务上下文来自商户系统。
- 商户系统处理:生成全局唯一的二维码生成请求流水号,并保存请求状态。
- 输出用途:定位本次二维码生成请求,不作为真实支付成功凭证。
- 下一步:调用二维码生成接口。

## 生成聚合二维码

- 目标:取得可展示给顾客扫描的二维码内容或图片地址。
- 调用接口:**[二维码生成接口](https://open.shouqianba.com/docs/payment/100?category_id=57)**。
- 输入来源:二维码生成流水号和业务内容来自上一步;终端参数来自当前设备的安全配置。
- 签名凭证:使用当前终端的`terminal_sn`和`terminal_key`。
- 输出用途:读取并保存响应中的二维码内容或二维码图片地址。
- 下一步:生成成功则展示二维码;响应缺少可展示内容时按失败处理并重新请求。

二维码生成成功不创建真实支付订单,不代表支付成功,不能触发履约。

## 展示二维码

- 目标:让顾客在有效期内扫描正确的二维码。
- 输入来源:只使用服务端返回并校验过的二维码内容或图片地址。
- 页面处理:明确显示应付业务信息和二维码有效状态;过期后立即停止展示。
- 输出用途:顾客扫码后进入收钱吧承接的实际支付页面。
- 下一步:页面进入“等待付款”,商户后台等待真实交易回调或查询真实交易。

## 关联真实交易

顾客扫码付款后,会产生真实交易。商户系统需要分别保存:

| 标识                 | 来源                           | 用途                       |
| -------------------- | ------------------------------ | -------------------------- |
| 二维码生成请求流水号 | 商户在调用二维码生成接口前生成 | 排查二维码是否成功生成     |
| 真实交易商户订单号   | 扫码后实际支付链路产生         | 查询、回调、退款和幂等履约 |
| 收钱吧订单号         | 真实交易结果返回               | 与收钱吧核对实际交易       |

不要把二维码生成请求流水号直接当作已支付订单。实际字段名称和返回位置以二维码及真实支付接口文档为准。

## 接收真实交易回调

- 目标:取得顾客扫码后真实交易的异步结果。
- 对接接口:**[回调接口](https://open.shouqianba.com/docs/payment/70?category_id=54)**。
- 输入来源:收钱吧向商户公网回调地址发送的真实交易通知。
- 商户系统处理:验签,通过真实交易商户订单号定位订单,幂等更新状态。
- 输出用途:确认顾客是否真正付款。
- 下一步:最终成功后履约;非最终状态保持等待并主动查询。

## 查询真实交易

- 目标:在回调延迟、页面中断或结果未知时确认真实交易状态。
- 调用接口:**[查询接口](https://open.shouqianba.com/docs/payment/71?category_id=54)**。
- 输入来源:使用顾客扫码后真实交易的商户订单号或收钱吧订单号,不使用二维码生成请求流水号。
- 输出用途:与回调共用一个真实交易状态机。
- 下一步:最终成功则履约;最终失败则结束;仍未知则按业务规则等待或人工核实。

## 确认成功并履约

- 触发条件:服务端从真实交易回调或查询取得最终支付成功。
- 执行动作:出货、开闸、打印、发券或更新业务状态。
- 幂等要求:以真实交易商户订单号作为幂等键,只履约一次。

二维码生成成功、顾客已扫码或支付页面显示成功,都不能直接触发履约。

## 发起退款

- 目标:退回已经确认成功的真实交易款项。
- 调用接口:**[退款接口](https://open.shouqianba.com/docs/payment/72?category_id=54)**。
- 输入来源:使用真实支付订单标识和唯一退款流水号。
- 输出用途:保存并跟踪真实退款流水。
- 下一步:退款结果非最终或请求超时时,查询原退款流水。

二维码生成请求本身没有可退款资金,不能对二维码生成流水发起退款。

## 完成标准

- [ ] 二维码生成流水和真实交易订单分开保存。
- [ ] 生成成功只展示二维码,不触发履约。
- [ ] 页面在二维码过期后停止展示。
- [ ] 回调和查询使用真实交易订单标识。
- [ ] 只有真实交易最终成功才履约。
- [ ] 重复扫码、重复回调和重复查询不会重复履约。
- [ ] 退款只针对真实支付订单。
目录
在线咨询