商家券服务接入指引
何时使用
当用户说"要接商家券"、"要接华为支付商家券"或"要接鸿蒙支付商家券服务"时,使用本技能帮助用户完成商家券接入。
本技能中,"华为支付""鸿蒙支付服务""HarmonyOS Payment Kit"默认视为同一类能力入口。
使用顺序
- 确认场景: 先确认业务路径(随机Code+华为平台发放、导入Code+华为平台发放、发放时指定Code+商户平台发放)
- 查阅指南: 阅读对应场景的接入指南了解完整流程
- 获取代码: 通过示例索引获取具体接口调用代码
常用入口:
- 场景与主题导航:reference.md
- 示例入口:examples.md
全局高优先级规则
以下规则适用于本技能全部能力和全部对话轮次,优先级高于局部规则。
- 关键问题必须得到用户明确回答后才能继续。 对业务场景、券码Code的使用方式等关键信息,严禁擅自猜测或补默认值。
- 场景前置确认:除简单知识问答外,优先确认当前属于哪种券码模式,再进入后续能力。
- 分步确认协议:需要帮用户分析、排障、改代码或执行操作时,必须遵循"先理解需求 -> 提议下一步 -> 征得同意 -> 收集信息 -> 执行前确认"。
- 线上风险提示:涉及生产环境、真实商户号、证书、公钥私钥、回调地址等内容时,必须先提示风险,再继续。
- 资源优先原则:优先从
references/检索现有指南和示例代码;资源缺失时,才可结合官方文档和本技能规则补充最小示例。 - 服务端商户模型先行:只要涉及 Java/Spring Boot 等服务端预下单、回调或签名验签实现,必须先确认商户模型(直连商户 / 服务商 / 平台类商户)与业务场景;未确认前,不得擅自决定接口路径、请求字段或
appId/mercNo/spAppId/spMercNo/subMercNo映射关系。 - SDK 可用性闸门:当用户要求"优先官方 SDK / 必须使用官方 SDK"时,必须先验证依赖是否可下载、关键类是否可见、关键 API 是否可确认;若三者任一无法验证,不得伪造 SDK 直连实现,应退回"SDK 适配层 + HTTP 网关兜底"的结构并明确告知用户。
- 用户已提供官方接入文档或官方样例工程时:优先以文档/样例中的 Maven 坐标、
pom.xml、MercApiController等真实源码为准完成验证;只有在"已按官方路径仍无法完成三者验证"时,才允许降级到 HTTP 网关兜底,并在回复中明确写出降级原因与恢复条件。 - 官方文档页为 SPA(抓取正文为空)时:不要仅凭 HTML 外壳判断"无 SDK";应改用官方样例仓库、
mvn dependency:get、本地~/.m2产物、javap反查类签名等方式完成验证。
- 用户已提供官方接入文档或官方样例工程时:优先以文档/样例中的 Maven 坐标、
- 源码事实优先于文档:服务端工程改造时,优先以
src/main/java、src/main/resources等真实源码为准;README.md、target/、build/、metadata、历史产物只能作为线索,不能当作源码事实。
能力与路由
1. 接入路线判断
当用户只说“要接华为支付商家券”或“商家”时,先帮助其确认:
- 随机Code、导入Code,还是指定Code。
- Java SDK、自研 REST,还是其他服务端语言。
2. 示例代码检索
用户要代码时,不直接从零生成,先确认场景和端类型,再读取索引:
| 场景 | 券码模式 | 示例入口 |
|---|---|---|
| 随机Code+华为平台发放 | HWPAY_MODE | 接口索引 |
| 导入Code+华为平台发放 | MERCHANT_UPLOAD | 接口索引 |
| 发放时指定Code+商户平台发放 | MERCHANT_API | 接口索引 |
输出代码时继续遵守:
orderStr/contractStr必须由服务端生成。
3. 服务端改代码前的最小确认
在 Java / Spring Boot 等服务端接入前,至少确认:
- 商户模型是直连商户、服务商,还是平台类商户
- 当前业务场景是哪种券码模式
- 服务端语言与框架。
- 是否要求优先官方 SDK
处理要求:
- 未确认商户模型前,不决定
appId/mercNo或spAppId/spMercNo/subMercNo映射。 - 要求官方 SDK 时,先走 SDK 可用性闸门,再写实现。
- starter / 样例工程优先保证可编译、可替换、可配置。
- 新增依赖前先验证可解析,避免先写未解析
import。
4. 质量评估与排障
用户准备联调、测试、上线,或已经出现报错时:
- 只检查当前实际使用的模块。
- 验签失败、幂等缺失属于高优先级问题。
- 若服务端返回
resultDesc这类字段校验报错,优先核对字段契约。
硬性红线
- 私钥不得出现在日志、公共仓库或对话明文示例中。
- 不得跳过回调验签。
- 不得在官方 SDK 不可验证时,伪造 SDK 直连实现、虚构类名、配置对象或方法签名。
- 不得在新增 Maven 依赖尚未验证可解析前,就先写入依赖耦合实现或提交带有未解析
import的源码。 - 不得把
README、target/、build/、metadata 中出现的类或配置直接当作当前源码事实。 - 不得把
MOCK验签、内存幂等、样例签名工具包装成“可直接上线的生产实现”。
输出建议模板
## 结论
[一句话说明当前是否可接入、可联调、已定位问题或存在阻塞]
## 执行清单
- 已完成:
- [item]
- 待完成:
- [item]
## 风险与阻塞
- [风险项]
## 下一步
1. [最小可执行动作]
2. [下一步验证动作]
顶层入口
- 参考索引 - 场景选择、规则说明
- 示例入口 - 完整示例代码