3 Star 22 Fork 17

wuhuanSoul/对接医保系统-已上线

 / 详情

广西医保接入问题

待办的
创建于  
2024-09-25 18:29

您好,使用您例子运行 chsPay/do6202 接口时,出现【6202】返回数据:{"code":360002,"success":false,"message":"040请求报文签名验证失败-20240925182638-8ad383a917634712af499d9c11166624请求报文签名验证失败"}

目前得知文档里提到的验签标准表述如下:

2.3.1.1概述
根据SM2算法(Signature的algorithm选择SM3withSM2),签名报文。通过对报文数据筛选、排序和拼接,组成待签名报文数据。
2.3.1.2请求参数签名
2.3.1.2.1筛选
获取所有请求参数,不包括字节类型参数,如文件、字节流,剔除signData、encData、extra字段。
2.3.1.2.2排序
将筛选的参数按照第一个字符的键值ASCII码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。
2.3.1.2.3拼接
将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来,最后拼接上应用密钥appSecret在“…参数=参数值…”后,此时生成的字符串为待签名字符串,将待签名字符串SM2运算,即是签名(signData)的值(“signData”、“encData”、“extra”参数不参与签名)。
JOSN对象签名规范(如data):内部按字母顺序升序排列空值不参与签名 将整理好的JSON内容,输出JSON字符串后拼接参与签名,例如下面的示例请求报文,参数值都是示例,开发者仅参考报文格式即可。
加签报文示例:
{
"appId":"43AF047BBA47FC8A1AE8EFB2XXXXXXXX",
"data":{"appId":"43AF047BBA47FC8A1AE8EFB2XXXXXXXX","appUserId":"o8z4C5avQXqC0aWFPf1Mzu6D7WCQ_bd","idNo":"350181199011193519","idType":"01","phoneNumber":"13763873033","userName":"测试"},
"encType":"SM4",
"signData":"URVQNdVNn5mz2EhKZhLTlXNwAWTSncFoSe8Ilx7jhn81eABJ46sdRRN1ZiAiQjPUTixG9bwqEhiJupHRGmyO5w==",
"signType":"SM2",
"timestamp":"20200207175759",
"version":"2.0.1"
}
组成的待签名字符串:
appId=43AF047BBA47FC8A1AE8EFB2XXXXXXXX&data={"appId":"43AF047BBA47FC8A1AE8EFB2XXXXXXXX","appUserId":"o8z4C5avQXqC0aWFPf1Mzu6D7WCQ_bd","idNo":"350181199011193519","idType":"01","phoneNumber":"13763873033","userName":"测试"}
&encType=SM4&signType=SM2&timestamp=20200207175759&version=2.0.1&key=4117E877F5FA0A0188891283E4B617D5
2.3.1.2.4签名结果
使用各自语言对应的SM2签名函数,对拼接得出的待签名字符串使用私钥进行SM2签名后,再将字节码进行Base64编码,即是签名结果,如签名结果。
签名结果示例:
URVQNdVNn5mz2EhKZhLTlXNwAWTSncFoSe8Ilx7jhn81eABJ46sdRRN1ZiAiQjPUTixG9bwqEhiJupHRGmyO5w=

请问 SM2Util.sign 方法是否需要改进,或者您有什么修改建议?

评论 (1)

maurice_chen 创建了任务 7个月前
wuhuanSoul-wuhuanSoul wuhuanSoul 拥有者 6个月前

如果签名错误,就这个接口的文档加密方式是不是这样。医保接口的调用是有两套请求签名加密方案,需要根据医保平台提供的接口文档进行确认。具体哪个接口使用哪种签名加密方案,我也是很早之前做过对接医保,核心就是根据文档来,还有就是有一些坑可以在医保对接QQ群中找到。

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
wuhuanSoul-wuhuanSoul 5741256 maurice chen 1582769031
Java
1
https://gitee.com/wuhuanSoul/medical-insure.git
git@gitee.com:wuhuanSoul/medical-insure.git
wuhuanSoul
medical-insure
对接医保系统-已上线

搜索帮助