## 场景说明

本场景用于顾客在商户自有微信小程序中选择服务、提交订单并直接唤起微信支付。商户后台先调用收钱吧预下单，再把返回的调起参数交给小程序。

小程序负责页面交互和调用微信能力；商户后台负责订单、预下单、结果确认、回调、查询和退款。

## 顾客支付流程

流程延续最佳实践中的“选择服务、提交订单、确认支付”：

```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`。
