直接贴签名生成代码,拿去~~~ /** * JSAPI调起支付所用签名 v3版本 * * @param timeStamp 时间戳 * @param nonceStr 随机字符串 * @param packageStr packageStr格式:prepay_id=xxx * @return {@link String} * @see <a href="https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_4.shtml">小程序调起支付API</a> * @see <a href="https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1">微信支付接口签名校验工具</a> */ @SneakyThrows public String getPaySign(String timeStamp, String nonceStr, String packageStr) { String sourceText = weChatConfig.getAppId() + StrUtil.LF + timeStamp + StrUtil.LF + nonceStr + StrUtil.LF + packageStr + StrUtil.LF; log.info("微信支付签名原文:{}", sourceText); byte[] sign = SecureUtil.sign(SignAlgorithm.SHA256withRSA) .setPrivateKey(PemUtil.loadPrivateKey(Files.newInputStream(Paths.get(weChatConfig.getMerchantPrivateKeyUri())))) .sign(sourceText); String paySign = Base64Encoder.encode(sign); log.info("微信支付签名密文:{}", paySign); return paySign; }
调用wx.requestPayment 后 手机提示支付验证签名失败?后端使用的v3接口 RSA签名类型 前端使用wx.requestPayment [图片] [图片] [图片]
2022-07-13