多谢回复! 请问:你如何判断“调起支付参数和计算签名参数不一致”的?我的确是核对了这些参数值,是一致的。 “调起参数大小写和格式要求”,大小写,我也认真核对了。另外,如果大小写不对,编译会报错把。 格式问题,除了packageValue = "Sign=WXPay",其他的都是具体值,有什么特殊格式要求吗? 麻烦给些更详细的帮助,谢谢!
Android app,微信支付签名验证失败1, 我在服务端用python都wechatpy,pay.order.create()生成支付订单成功 2,我用下面代码,在服务端签名,然后把相关信息都发送到app params = { "appId": my_env.WX_APP_ID, "timeStamp": str(int(time.time())), "nonceStr": str(uuid.uuid4()).replace("-", ""), "prepayId": order['prepay_id'], } sign_str = f"{params['appId']}\n{params['timeStamp']}\n{params['nonceStr']}\n{params['prepayId']}\n" digest = SHA256.new(sign_str.encode('utf-8')) with open(str(my_env.WX_MCH_KEY), 'r') as ifile: # my_env.WX_MCH_KEY是我的私钥路径 pkey = RSA.importKey(ifile.read()) signer = pkcs1_15.new(pkey) sign_v = base64.b64encode(signer.sign(digest)).decode('utf-8') 3,我用签名工具,验证了签名是正确的 4,app端,在用下面的代码调起微信支付的时候,我核对了每一个参数,都是对的 val request = PayReq() request.appId = appId request.partnerId = partnerId request.prepayId= prepayId request.packageValue = "Sign=WXPay" request.nonceStr = nonceStr request.timeStamp= timeStamp request.sign= sign api.sendReq(request); 5,最后吊起了微信支付,但是提示签名验证失败。 备注: 我的app吊起微信登陆是OK的。 请帮忙看看是什么原因?
06-19