## 场景说明
本场景用于顾客在商户自有微信小程序中选择服务、提交订单并直接唤起微信支付。商户后台先调用收钱吧预下单,再把返回的调起参数交给小程序。
小程序负责页面交互和调用微信能力;商户后台负责订单、预下单、结果确认、回调、查询和退款。
## 顾客支付流程
流程延续最佳实践中的“选择服务、提交订单、确认支付”:
```text
顾客在商户小程序选择服务或商品
→ 小程序向商户后台提交订单
→ 商户后台调用收钱吧预下单
→ 商户后台把调起支付参数返回小程序
→ 小程序调用wx.requestPayment
→ 顾客完成密码、生物识别等验证
→ 小程序返回商户页面
→ 商户后台通过回调或查询确认最终结果
```
## 系统对接结构
```text
顾客
│ 选择服务、确认支付
▼
商户微信小程序
│ 创建订单;使用wap_pay_request调起微信支付
▼
商户后台
│ 调用预下单;处理回调、查询和退款
▼
收钱吧
│ 创建支付订单并连接微信支付
▼
微信支付
```
小程序不得持有终端密钥,也不直接调用收钱吧服务端接口。
## 参与方职责
| 参与方 | 主要职责 |
| ---------- | ------------------------------------------------------------ |
| 顾客 | 选择服务,确认订单,完成微信支付验证 |
| 商户小程序 | 向后台创建订单,调用`wx.requestPayment`,展示后台确认的结果 |
| 商户后台 | 获取当前顾客`openid`,预下单,保存订单,处理回调、查询、退款和履约 |
| 收钱吧 | 创建支付订单,返回微信调起参数并提供交易结果 |
| 微信支付 | 展示原生收银台,完成顾客验证和资金处理 |
## 使用接口
- **[预下单接口](https://doc.shouqianba.com/zh-cn/api/interface/precreate.html)**
- **[查询接口](https://open.shouqianba.com/docs/payment/71?category_id=54)**
- **[回调接口](https://open.shouqianba.com/docs/payment/70?category_id=54)**
- **[退款接口](https://open.shouqianba.com/docs/payment/72?category_id=54)**
小程序端还需要调用微信`wx.requestPayment`或支付宝`wap_pay_request`,其参数来自预下单响应中的`wap_pay_request`。