对于 支付验证签名失败 的种种问题 ,如果你的的所有参数没问题的话 那么在生成psySign的时候 需要的随机字符串和时间戳,要和小程序中调起来微信支付的 参数一样,这是我花了一天时间发现的 问题,怪自己不认真了。 实在搞不好的 加我微信 我给你发工具类源码把。我封装了一下。少踩坑咯~! 微信 13519515577
微信小程序支付v3接口生成二次签名paysign,一直提示支付验证失败?public static String getTokenTwo (String appId, String packag) throws IOException, SignatureException, NoSuchAlgorithmException, InvalidKeyException { String nonceStr = getRandomString(32); long timestamp = System.currentTimeMillis() / 1000; String message = buildMessageTwo( appId,timestamp,nonceStr,packag); String signature = sign(message.getBytes("utf-8")); return signature; } private static String buildMessageTwo(String appId, long timestamp, String nonceStr, String packag) { return appId + "\n" + timestamp + "\n" + nonceStr + "\n" + packag + "\n"; } private static String sign(byte[] message) throws NoSuchAlgorithmException, SignatureException, IOException, InvalidKeyException { Signature sign = Signature.getInstance("SHA256withRSA"); //SHA256withRSA PrivateKey privateKey = getPrivateKey("密钥文件地址"); sign.initSign(privateKey); sign.update(message); return Base64.getEncoder().encodeToString(sign.sign()); }
2021-01-08