国密招商银行对接,签名已经通过,但是验签始终不通过,尝试了网上的很多发放都无法解决。

对接的招商银行的银企直连接口。
1、使用了lpilp/guomi的包
2、签名与验签参考的这位大神的demo 博客:国密招商银行对接
签名是可以的,但是验签的时候始终为false
3、参考网上的一些答案 www.cnblogs.com/blog-dyn/p/1630142... 验签也是false。希望有实现的大神能够指导一下,谢谢了~

暂时已经解决了,之前一直请求新增子单元接口,因为子单元不符合规定的字符长度,返回的数据中head的resultcode非SUC0000,这也就导致了body里面的内容为空,就会一直验签不通过。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

我看你参考那些都没排序,你可以把代码发出来,我的是通了,而且很多人问我,也弄通了的哈

$input = htmlspecialchars_decode($request['biz_content']);
$input = html_entity_decode($input);
$sign = $request['sign'];
$data['biz_content'] = $input;
$data['encoding'] = $request['encoding'];
$data['version'] = $request['version'];
$data['signMethod'] = $request['signMethod'];
$document = self::dataSort($data);
$publicKey = bin2hex(base64_decode(self::$gongyao));
$sm2 = new RtSm2('base64');
return $sm2->verifySign($document, $sign, $publicKey, self::$default_user_id);



private static function dataSort($data)
{
ksort($data, SORT_STRING);
$string1 = '';
foreach ($data as $key => $v) {
if (empty($v)) {
continue;
}
$string1 .= $key . '=' . $v . '&';
}
$string1 = substr($string1, 0, -1);
return $string1;
}

1年前 评论
reiz568569 (作者) 1年前
trc1995 (楼主) 1年前
讨论数量: 8

我看你参考那些都没排序,你可以把代码发出来,我的是通了,而且很多人问我,也弄通了的哈

$input = htmlspecialchars_decode($request['biz_content']);
$input = html_entity_decode($input);
$sign = $request['sign'];
$data['biz_content'] = $input;
$data['encoding'] = $request['encoding'];
$data['version'] = $request['version'];
$data['signMethod'] = $request['signMethod'];
$document = self::dataSort($data);
$publicKey = bin2hex(base64_decode(self::$gongyao));
$sm2 = new RtSm2('base64');
return $sm2->verifySign($document, $sign, $publicKey, self::$default_user_id);



private static function dataSort($data)
{
ksort($data, SORT_STRING);
$string1 = '';
foreach ($data as $key => $v) {
if (empty($v)) {
continue;
}
$string1 .= $key . '=' . $v . '&';
}
$string1 = substr($string1, 0, -1);
return $string1;
}

1年前 评论
reiz568569 (作者) 1年前
trc1995 (楼主) 1年前

你需要把你怎么验证的代码贴出来才好知道是哪的问题

1年前 评论

可以解决 需要支付费用 我这边有现成的案列 对接招商云直连的

1年前 评论

直接用前置机模式啊,省事

1年前 评论

046398495A306E0F9AD033D2F5C0FAAA223C18A8C84581332B0371005B5E7F7C73166841D11434F93507A9D8217DB3660E207B081EBF24057F2CC3738AA5FA4110 我这公钥加密的数据 java 那边解密不了怎么搞

9个月前 评论
reiz568569 9个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!