1 报文说明
1.1 请求报文
请求报文格式
格式:key1=value1&key2=value2&key3=value3…
例如:send_time=2018-01-24 13:25:33&msg_id=456795112&version=4.0.0.0&terminal_id=100000949&txn_type=03&member_id=100000749&dgtl_envlp=5a9c3ac419735d249e319727c89cfc0ce4a80d6a954980eaf3ea934316a56a121c758b0d13bf3302b877a8dd68619db72b2bd588ccdc9eb7fdb455705be1909df96540009146d7d81c96c0b90578f9344bd3fc00ded94d27c0c8040a83c02114b7a3a4698f830b7d0db60f230a5c3a4b38e7104088f2ee0139a4e765a9d79255&user_id=123&signature=7ca60bdea1f253b1a09588f7e4f0d455d984eaad0a446e61044c1527ea19fbdd70d690cc627327955b7a01a58acbc11cad6a26f8086c1bf23126da36832be59c46bc20e942bcae7614fcd9ba4dc7eec4c5e17024fb04fe5e63f2d137a3517a1e0c7bdea6d4ae33dbab7d20543e474a4bd790f7ba42cacaef45730623482a70ac
将除签名字段之外的不为空的字段按key-value的形式构建TreeMap<String, String>对象,按key1=value1&key2=value2…模式将TreeMap对象转换为字符串,UTF-8编码格式下转换为字节数组,用终端号作为ID,用商户SM2签名私钥证书使用SM2withiSM3算法签名后转16大写进制。
生成SM4密钥,按照如下拼装:
格式:02|对称密钥,02代表SM4_ECB算法
加密方式:用宝付SM2加密证书公钥加密后转16进制大写
加密方式:UTF-8编码格式下转字节数组,使用数字信封指定的方式和密钥加密后转16进制大写
商户订单号格式
商户订单号为8位系统当前日期+1-42位随机数
1.2 返回报文
返回报文格式
格式:key1=value1&key2=value2&key3=value3…
例如:
biz_resp_code=0000&biz_resp_msg=交易成功&dgtl_envlp=74652829c07a71983c0da582321818aec41364528626e0f90eac1c633755b9dab84593695f5a101401052e9c64d457a881e442206330215de2281d2a3ea15d79e6732e296fdc36c6e0c76d17376cf6b9fc978b50bc747a9536d93226a69aba587f9fa5227a9b2cb915d1b822753f4a86a9fa1d81bf4d106723d927cf0f6365fb&member_id=100000749&msg_id=4a3f0b1862b94b6f853c1d28f9913f82&protocols=f222d7fe76b7c8ea7e22f3ee315e579a4263d697b12de605c287018e15cd530358dd8f638e4211b09e4e250d6b352304e0b454332aa0efda6977d435cf911dbc3943615ae31752e9a87c6e4b69dfc9e3af6be7a9a6e3f6a92a63e65b59936beb&resp_code=S&send_time=2018-01-25 09:53:01&signature=8ab74c7869632dc395cc945adcc388e6afceb759e4d406c3bb6e0e8002ec422f1615f2a43966d7337dcc57963f18877a959fe9f67b082da2cd95217ba003cc81f07962d665f576509ebc1a38f7ddf2a423775a794b262b7ffc4af615da3ba6bd05d0672c004d7cf80be3ed236f268078bb5c700d4b0a6ae9a0e58f2c782bd6ef&terminal_id=100000949&txn_type=03&version=4.0.0.0
将宝付返回的除签名字段之外的不为空的字段按key-value的形式构建TreeMap<String, String>对象,按key1=value1&key2=value2…模式将TreeMap对象转换为字符串,UTF-8编码格式下转换字节数组。将宝付返回的签名字段转大写后转16进制字节数组,用终端号作为ID,用宝付SM2签名证书公钥使用SM2withiSM3算法验签。
解密方式:将数字信转16进制字节数组,使用商户的加密证书私钥解密
解密后格式:02|对称密钥,02代表SM4_ECB算法
解密方式:将敏感字段转大写后转16进制字节数组后,使用数字信封指定的方式和密钥解密
返回签名字段为空的业务应答码
这种情况都可以当做失败处理
错误码 | 含义 |
---|---|
BF00436 | 交易类型不存在 |
BF00121 | 报文交易要素格式错误 |
BF00454 | 不支持的验签类型 |
BF00458 | 商户订单号格式错误 |
BF00459 | 商户证书已过期,请联系宝付 |
BF00460 | 该终端未配置加密证书 |