public WXPay(final WXPayConfig config, final String notifyUrl, final boolean autoReport, final boolean useSandbox) throws Exception { this.config = config; this.notifyUrl = notifyUrl; this.autoReport = autoReport; this.useSandbox = useSandbox; if (useSandbox) { this.signType = SignType.MD5; // 沙箱环境 } else { // this.signType = SignType.HMACSHA256;//微信文档 this.signType = SignType.MD5;//改成这个 } this.wxPayRequest = new WXPayRequest(config); } 这个坑,多少人掉进去过?
小程序微信支付签名验证失败Map<String, String> data = new HashMap<String, String>(); data.put("appid","wx9bc*****b8908"); //小程序ID data.put("mch_id",config.getMchID()); //商户号 data.put("trade_type","JSAPI"); //支付场景 APP 微信app支付 JSAPI 公众号支付 NATIVE 扫码支付 data.put("notify_url",notifyUrl); //回调地址 data.put("spbill_create_ip",config.create_ip); //终端ip data.put("total_fee",amount); //订单总金额 data.put("out_trade_no",ordernum); //交易号 data.put("body",gname); data.put("openid",openid); data.put("nonce_str",WXPayUtil.generateNonceStr());// 随机字符串小于32位 String s = WXPayUtil.generateSignature(data, config.getKey()); //签名 data.put("sign",s); Map<String, String> respData = wxpay.unifiedOrder(data);; if (respData.get("return_code").equals("SUCCESS")){ //返回给APP端的参数,APP端再调起支付接口 String resultCode = respData.get("result_code"); if("SUCCESS".equals(resultCode)){ Map<String, String> daa = new HashMap<>(); daa.put("appId", "wx9bc*****b8908"); daa.put("package", "prepay_id="+respData.get("prepay_id")); daa.put("nonceStr", WXPayUtil.generateNonceStr()); daa.put("signType", "MD5"); daa.put("timeStamp", String.valueOf(System.currentTimeMillis() / 1000));//单位为秒 daa.put("paySign", WXPayUtil.generateSignature(daa, config.getKey())); dataMap.put("data", daa); //传给前端 }else { } }
2019-07-16都是没用的帖, 我也水一个
支付签名验证失败[图片] 在小程序支付时后台的第二次签名时,老是报支付验证签名的错误,第一次签名已经没有问题,第二次签名已经用支付签名验证工具验证过很多次,和服务器得到的签名是一样的,但是还是一直报这个错误,麻烦各位大侠给点意见或者官方有没有更详细的方法,可以知道具体是哪个参数错误
2019-07-15