PayReq request = new PayReq(); request.appId = "wxd930ea5d5a258f4f"; request.partnerId = "1900000109"; request.prepayId= "1101000000140415649af9fc314aa427",; request.packageValue = "Sign=WXPay"; request.nonceStr= "1"; request.timeStamp= "1"; request.sign= "1"; api.sendReq(request);
如上 , 我把 nonceStr , timeStamp, sign 三个参数设置为固定值"1" , 居然还可以支付
transaction_id : 4200000340201908023868120227
这是刚刚 我把sign值设置为固定"Sign=WXPay"时支付成功的订单号, 这就很异常了吧
后来我又试了几次
把 nonceStr, timeStamp, sign 随便传值都可以成功进入支付页面
除了两种情况会返回 -1 也就是签名错误
生成签名时把 package 写成 packageValue , 算出来的签名就是错的 请求时会返回 -1
签名时没有把 appId , partnerId , prepayId , nonceStr , timeStamp 这些键转成小写也会返回 -1
请问下还需要别的信息吗 ?
最简单的测试方法就是将 nonceStr, timeStamp, sign 这个三个值设固定为"1"看看
有验证的。你贴一下图。