feat(pay): 商家转账场景 1005 打通提现打款
- 转账场景报备信息按佣金报酬要求固定传「岗位类型/报酬说明」两段,否则微信参数校验拒绝 - 处理 WAIT_USER_CONFIRM(用户确认模式):推送「提现待你确认收款」,提示 24 小时内确认 - 提现申请增加单笔上限校验(finance_rules.maxWithdrawAmount,默认 200,对齐微信商家转账额度) - /api/posts 身份优先取服务端会话 token - 文档补充佣金报酬场景与用户确认模式说明(109 套件/722 用例全绿)
这个提交包含在:
@@ -111,13 +111,18 @@ MYSQL_DATABASE=peiwan
|
||||
> 1. 商户号已开通**"商家转账到零钱"**产品(微信商户平台申请,通常需 1-2 个工作日);
|
||||
> 2. 在商户平台配置**转账场景ID**(如"佣金报酬"场景);
|
||||
> 3. 收款大神需有 **openid**(通过微信登录授权产生,`users.wechat_openid`)。
|
||||
>
|
||||
> 新版「商家转账」为**用户确认模式**:转账受理后状态为 `WAIT_USER_CONFIRM`,收款人需在微信「服务通知」中确认收款(24 小时内有效),确认后才由回调置为「已打款」。
|
||||
|
||||
后台配置(财务与分销配置 → 微信支付商户号与 APIv3 证书配置)新增:
|
||||
- **转账场景ID (`transfer_scene_id`)**:必填才视为"打款就绪";
|
||||
- **转账场景ID (`transfer_scene_id`)**:必填才视为"打款就绪",佣金报酬场景固定为 `1005`;
|
||||
- **转账场景报备信息 (`transfer_scene_report_infos`)**:佣金报酬场景**必须固定传两条**——`岗位类型`(如"陪伴师")与`报酬说明`(如"平台服务佣金"),否则微信会以参数错误拒绝;
|
||||
- **转账备注 (`transfer_remark`)**:默认"佣金提现";
|
||||
- **收款人姓名加密**:部分转账场景要求提交收款人姓名,启用后按平台公钥加密提交(需已配置平台公钥);
|
||||
- **收款人姓名加密**:单笔 ≥ 2000 元时微信要求提交收款人姓名,启用后按平台公钥加密提交(需已配置平台公钥);
|
||||
- **转账结果回调地址 (`transfer_notify_url`)**:默认 `https://peiww.gynhc.com/api/pay/wechat/transfer-notify`。
|
||||
|
||||
单笔限额:以商户平台「商家转账 → 转账额度」为准(当前为 **200 元/笔**)。后台 `finance_rules.maxWithdrawAmount` 控制 App 端单笔上限(默认 200),超出会在申请时直接提示分多笔提现。
|
||||
|
||||
行为:
|
||||
- 支付模式为 **LIVE 且"打款就绪"**:审核通过即调用微信商家转账;受理后工单置"处理中",最终由**回调/查单**确认 → 成功置"已打款"、失败置"打款失败"并**自动退回预扣佣金**。
|
||||
- 若该大神**缺少 openid**:打款被拒并提示"请其重新微信登录授权"。
|
||||
|
||||
在新工单中引用
屏蔽一个用户