Summary
- 在“门店设置”下新增“收款账户管理”,支持草稿继续/删除、历史申请、状态刷新、驳回修改重提、银行卡更换、设置当前收款账户。
- 新增一个 Vue 页面承载五步进件表单;支持上一步修改、自动保存草稿、OCR 自动填充、电子合同签约及最终提交。
- 本期不实现停用账户;
ghsApp 固定使用批发费率 0.33。
- 首次进件认证通过后,后端幂等自动提交
WECHAT_PAY、B2B_SYT 两个增终申请。
Backend And Data
- 新增
LakalaAccountController、biz-ghs/lakala 业务模块及 SQL 建表脚本:
xhLakalaApplication:申请主记录,关联 mainId/shopId,保存申请类型、当前步骤、草稿数据、远端编号、合同状态、审核状态、驳回原因。
xhLakalaApplicationVersion:每次首次提交、驳回重提、银行卡变更提交时保存不可变表单快照、附件、请求结果和版本号。
xhLakalaAccount:认证通过后的账户投影,保存拉卡拉商户号、客户号、网点号、结算摘要、两个终端号和当前账户标记。
xhLakalaOperation:记录合同、首次进件、增终、结算变更等远端操作及 review_related_id,用于幂等和状态刷新。
- 提供
/lakala-account/* API:
- 列表、详情、创建草稿、自动保存、删除草稿。
- 上传并 OCR、地区/银行选项查询。
- 电子合同申请和签约状态查询。
- 首次进件提交、驳回重提、状态刷新。
- 结算银行卡变更提交、设置当前收款账户。
- 草稿在字段变更防抖、图片上传成功、步骤切换时保存;仅草稿允许删除。
- 首次进件状态刷新使用
open_merchant_info;结算变更和增终使用 customer_update_review。首次进件驳回修改后重新调用 merchant_encry 并生成新版本。
- 认证通过后自动提交两个增终申请;全部通过并查询到终端信息后,账户才允许设置为当前收款账户。设置时同步更新当前
xhShop 的 lklSjNo、lklScanTermNo、lklB2BTermNo。
Lakala Integration
- 新增统一进件客户端,基于
vendor/lakalasdk/openapi/v3,集中处理环境、证书、SM4、接口加密模式、错误日志和响应映射。
- 测试环境使用现有测试参数;生产从非版本控制配置读取
app_id/serial_no/sm4_key/org_code/user_no,证书路径参考现有 Lakala.php。缺少生产参数时明确拒绝生产调用。
- 上传接口同时完成:
- OSS 备份至
lakala-onboarding/{mainId}/{YYYYMMDD}/{applicationId}/。
- 调用拉卡拉文件上传并保存
batch_no/url/img_type/OCR 结果。
- 表单规则:
- 小微上传法人身份证正反面;企业额外上传营业执照。
- 结算默认对私,支持法人对私、非法人对私、对公三种模式。
- 门店仅上传门头照、内设照、收银台照。
- 商户固定默认值:MCC
5992、联系人石少华、手机号 15280215347、邮箱 479439056@qq.com;活动编号默认 37 并配置化。
- 商户经营名称默认“地级市 + xhShop.merchantName”,地址和坐标从当前门店带入;按接口示例映射
latitude=shopLong、longtude=shopLat。
settle_type=D1、settlement_type=AUTOMATIC。
- EC015 合同固定使用批发费率
0.33 覆盖需求指定的银联二维码、微信、支付宝费率,其余沿用批准的默认配置。
- 业务信息页展示签约手机号,默认带入门店/联系人手机号;最终提交前后端必须查询到合同状态
COMPLETED 和 ec_no。
Frontend
- 将现有空页面
admin/item/lakala.vue 实现为收款账户管理页,并在 admin/home/me.vue 门店设置下方增加入口。
- 新增一个进件 Vue 页面,支持
create、resubmit、settlement-change 模式:
- 创建/重提模式展示五步进件。
- 银行卡更换模式仅展示结算信息并将按钮改为“提交申请”。
- 实现图片上传、OCR 处理中轮询、自动填充、可修改字段、步骤校验、草稿恢复、合同 H5 打开和返回后签约状态刷新。
- 列表展示草稿、待审核、已驳回、认证通过、银行卡变更状态;提供对应的继续、删除、修改申请、刷新、银行卡更换和设置当前账户操作。
Test Plan
- 验证小微与企业两条五步流程,上一步编辑和退出后恢复草稿。
- 验证营业执照、身份证、银行卡 OCR 成功、处理中、失败及手动修正。
- 验证三种结算模式的字段、附件和后端校验。
- 验证未完成电子合同不能提交,签约完成后生成版本并提交。
- 验证首次提交、驳回修改重提、认证通过、两个增终幂等提交及状态刷新。
- 验证银行卡变更审核流程,以及设置当前账户后门店三个拉卡拉字段正确切换。
- 验证跨
mainId/shopId 越权访问被拒绝,敏感远端错误不会泄露证书或密钥。
- 执行 PHP 语法检查、相关接口联调、前端静态检查;不自动执行
npm run build:mp-weixin。结构变更完成后在知识项目运行 npm run index 和 npm run validate。
Assumptions
- 本期不实现账户停用。
- 一个
mainId 可以拥有多个申请和认证账户,但当前收款账户按当前 shopId 设置。
- 生产进件参数由上线前补入环境配置。
- 拉卡拉若拒绝对驳回申请再次调用
merchant_encry,系统记录并展示远端错误,不回滚本地新版本。