https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html
微信小程序虚拟支付成功后回调问题,昨天调试好回调时signature验证也通过了,今天什么都没做就又不能用了,微信推送过来的数据如下哦:"signature":"4f92ffeea05dade675b8e225c3e044b6ac200712","timestamp":"1774579072","nonce":"619899322",我服务器端生成的signature如下:<?php $signature=sha1($nonce.$timestamp.$Token);?> ,注:$Token是小程序后台开发管理->开发设置->推送消息->Token(令牌),$nonce和$timestamp是上面微信推送过来的,为什么本地生成的signature和推送的signature不一致?

$arr=array(
"timestamp"=>1774579072
,"nonce"=>619899322
,"token"=>'小程序后台设置的token'
);
ksort($arr);
$str=implode("",$arr);
$signature_local=sha1($str);
排序后也不行
顺序问题,他文档里面不是要求你排序吗
"timestamp"=>1774579072
,"nonce"=>619899322
,"token"=>'小程序后台设置的token'
);
ksort($arr);
$str=implode("",$arr);
$signature_local=sha1($str);
排序后也不行
String[] arr = new String[]{token, timestamp, nonce, encrypt};
Arrays.sort(arr);
String content = String.join("", arr);
String sha1 = sha1HexLower(content);
return toCheck.equalsIgnoreCase(sha1);