接入指引
1. 开发规范 接入准备
- 接入前准备进件资料进行入网
- 获取支付参数,包括inst_no(机构号)、key(机构秘钥)、mch_no(平台商户号)
2. 开发规范
报文规范 请求方式:POST 请求头信息:Content-Type → application/json;charset=utf-8 编码格式:UTF-8
3.约束说明
符号 | 说明 |
---|---|
M | 必须填写的字段 |
C | 某条件成立时必须填写的字段 |
O | 自选填写的字段 |
签名规则
第一步 获得请求的参数,待签名的JSON参数,参数值为空字符串参与,参数值为null不参与
{
"inst_no": "900024",
"mch_no": "851811130002",
"pay_type": "400",
"pay_trace_no": "18588dbd1c6e4572b915a2b33fcdc62e",
"pay_time": "20190101125959",
"auth_code": "134573607383541818",
"total_amount": 1
}
第二步 拼接参数,将JSON参数名首字母,按ASCII码顺序拼接,首字母相同则比较第二位,以此类推,生成字符串A
String A = "auth_code=134573607383541818&inst_no=900024&mch_no=851811130002&pay_time=20190101125959&pay_trace_no=18588dbd1c6e4572b915a2b33fcdc62e&pay_type=400&total_amount=1";
第三步 拼接密钥,在字符串尾部拼接机构密钥,生成字符串B
String B = A + "&key=8a9bd64e6585c6d8016585c6c8980002";
第四步 生成签名,对字符串B进行md5算法加密,获得的32位小写字符串即为签名结果字符串
String sign = md5(B);
第五步 获得最后的请求参数,在请求参数中加入签名参数sign即可
{
"inst_no": "900024",
"mch_no": "851811130002",
"pay_type": "400",
"pay_trace_no": "18588dbd1c6e4572b915a2b33fcdc62e",
"pay_time": "20190101125959",
"auth_code": "134573607383541818",
"total_amount": 1,
"sign":"841387ec9bd3ea78a580bd4629cab010"
}
备注
文档中的接口,未特殊说明的,均在请求参数附加一个名为sign的参数;
对于平台回调通知这类服务端发起的请求进行验签,先取出sign参数,剩下的参数按上述规则生成签名,最后与之前取出的sign参数进行比对。