第2章 参数配置总览:核心参数分类、必填与选填标识、参数值格式约定

本章为支付SDK参数配置的全局视图。在正式配置任何参数之前,必须理解参数的三层结构:分类决定了参数归属域;必填/选填标识决定了配置完整性;值格式约定决定了运行时解析成功率。本章提供标准总览表与快速定位指南。

适用场景

  • 首次接入支付SDK时,需要系统性地了解所有可配置参数。
  • 迁移或升级SDK版本时,对比旧版参数是否被弃用或新增。
  • 排查初始化失败或支付异常时,认定问题是否落在参数遗漏或格式错误区域。
  • 团队内多人协作配置时,统一对必填/选填项的理解。

前置条件

  • 已获取当前SDK版本的参数配置清单(通常位于集成文档附录或配置文件模板中)。
  • 已明确接入环境(测试/预发布/生产)对应的商户号、AppID、等基础凭据。
  • 确定SDK运行平台的参数输入方式:JSON / 属性文件 / 代码初始化块。

操作步骤

  1. 阅读参数总览表(见下方表格),熟悉五大核心分类的边界。
  2. 标记必填项:将表中必填列标注为M的参数逐条列出,优先完成配置。
  3. 确认选填项的影响:对于必填列为O的参数,了解其默认值及省略后的行为变化。
  4. 解析值格式:按照格式约定列的要求(如字符串长度、数字范围、日期格式、枚举关键字),准备合法值。
  5. 组装参数对象:按SDK要求的嵌套结构(通常是JSON键值对)填入参数并校验。

输入输出物

类别输入物输出物
文档支付SDK参数配置表(官方发布)已填写的项目配置清单(Excel/JSON)
工具生成器、签名验证器签名密钥对、校验结果报告
代码库SDK初始化代码模板已注入正式参数的初始化片段

责任边界

  • 后端开发者:负责商户参数、安全参数、接口参数的实际填写与签名运算。
  • 前端或客户端开发者:负责回调参数、业务参数的配置(如支付结果通知URL)。
  • 技术负责人/架构师:负责审核参数总览表,确认是否满足安全规范与业务需求。
  • 测试人员:根据必填和格式约定编写参数校验用例,验证配置完全性。

记录材料

  • 《项目参数配置审查表》(包含每项参数的值、来源、审批人、配置日期)
  • 参数配置的Git提交记录或版本标记
  • 初始化日志截图(成功加载参数后的SDK日志输出)

异常处理

异常场景典型表现处理方案
必填参数缺失 SDK初始化报错E_PARAM_MISSING,如缺少appId 对照总览表补全缺失项,重新加载
值格式不匹配 签名验签失败、日期解析异常、数值超出边界 按格式约定列修改值,使用示例值进行对照
选填参数被错误忽略 回调未触发、超时时间异常 若业务依赖该参数的默认值,需明确确认默认行为是否符合预期
平台与参数版本不对应 旧版参数名在新版SDK中废弃,或新参数未被识别 严格使用与SDK匹配的参数配置页 / 自动迁移工具

验收标准

  • 所有必填参数(表内M)均已赋值且通过SDK初始化校验。
  • 选填参数至少按业务需求或推荐默认值配置,无未预见行为。
  • 参数值格式严格遵循表格中格式约定:如日期为yyyy-MM-dd HH:mm:ss,金额单位为分(整数),签名类型为RSA2或HMAC-SHA256。
  • SDK初始化日志无ERROR或WARN级别的参数相关告警。

核心参数分类总览

下表覆盖支付SDK常见的五个参数域。标记M(Mandatory)为必填,O(Optional)为选填。所有示例以JSON形式呈现。

分类 参数名 必填 格式约定 示例
商户参数 appId M 字符串,长度 16~32 位 "appId":"wx2025abcdef123456"
mchId M 字符串,纯数字,10~15 位 "mchId":"1491234567"
安全参数 apiSecret M Base64字符串(32字节密钥) "apiSecret":"dGhpcyBpcyBhIHNlY3JldA=="
signType O 枚举:RSA2 / HMAC-SHA256 "signType":"RSA2"
接口参数 gatewayUrl M URL,以 https:// 开头,不可包含路径参数 "gatewayUrl":"https://api.pay.example.com/v3"
timeout O 整数,单位秒,范围 5~120 "timeout":30
回调参数 notifyUrl M URL,支持 HTTPS,长度≤200 "notifyUrl":"https://yourdomain.com/pay/notify"
returnUrl O URL,仅用于前端跳转回流 "returnUrl":"https://yourdomain.com/order/result"
业务参数 outTradeNo M 字符串,商户唯一订单号,≤64 字符 "outTradeNo":"ORD20250315001"
totalAmount M 整数,单位分,1~100000000 "totalAmount":100(代表1元)
最佳实践:初次接入时先复制官方提供的示例JSON,将其中占位符逐项替换为真实值。替换完成后用JSON验证器做一次格式校验,避免括号或引号漏缺。
注意:部分选填参数如果没有显式传递,SDK会使用默认值。务必在文档中确认默认值是否与你的业务场景一致,例如 timeout 的默认值可能是 10 秒,若支付流程通常耗时更长,必须主动配置更大超时。

参数配置JSON示例(完整结构)

{
  "appId": "wx2025abcdef123456",
  "mchId": "1491234567",
  "apiSecret": "dGhpcyBpcyBhIHNlY3JldA==",
  "signType": "RSA2",
  "gatewayUrl": "https://api.pay.example.com/v3",
  "timeout": 30,
  "notifyUrl": "https://yourdomain.com/pay/notify",
  "returnUrl": "https://yourdomain.com/order/result",
  "outTradeNo": "ORD20250315001",
  "totalAmount": 100,
  "currency": "CNY",
  "subject": "示例商品描述"
}
上述JSON中 currency 和 subject 为选填参数,但强烈建议填写以提升对账清晰度。
支付SDK核心参数分类总览 商户参数 appId · mchId (M) 安全参数 apiSecret · signType 接口参数 gatewayUrl · timeout 回调参数 notifyUrl · returnUrl 业务参数 outTradeNo · totalAmount 格式约定 类型·长度·枚举·范围 所有参数必须符合必填/选填标识与格式约定 商户参数 安全参数 接口参数 回调参数 业务参数 格式约定
图1:参数分类与关系 —— 五大核心参数域分别连接到中心校验节点(必填标识+格式约定),确保所有参数在配置阶段就被合法性约束。
检查清单:配置完成后,使用以下命令(伪代码)验证参数完整性:
# 假设 SDK 提供 validateConfig 方法
校验结果 = sdk.validateConfig(configObject)
if 校验结果.hasErrors():
    打印 校验结果.errorList
else:
    输出 "参数配置通过"