刚才调用分享图片,报了“签名不对,请检查签名是否与开放平台上填写的一致”, [图片] [图片] 手机截图上是我发布版的sign,看到这个,我还能说啥,
Android 微信支付返回-1本地服务端测试是可以拉起微信支付的,但是项目移到服务器上就不行呢?开放平台的app签名已经改了发布版的(签名是通过微信官方给的Gen_Signature_Android.apk获取的),appid没换、APP_SECRET 也没换、商户密钥key也没换,证书更没换哈,后来我切换到本地测试 可以支付哈,真是日了狗邪门了,网上一大推讲sign签名问题,我瞅了一天了。。。找不出来问题 总结下: 1.基础配置: 证明签名,appid,mch_id, key参数配置是正常的,根本没动,本地测试也正常,说明不是这里的问题 2.app签名:都是通过微信官方给的Gen_Signature_Android.apk获取的,也没毛病哈 4.:统一下单接口正常下单,两次sign 签名:appid、attac、body=、mch_id、nonce_str、notify_url、out_trade_no、spbill_create_ip、total_fee=1&trade_type=APP& 签名加key后:appid、attac、body=、mch_id、nonce_str、notify_url、out_trade_no、spbill_create_ip、total_fee=1&trade_type=APP&key=*** 最后生成Sign:1E093926EA0202C855ED598689C76431 签名:appid、noncestr=oqV8fcDIMgRMuB9K&package=Sign=WXPay&partnerid、prepayid=wx08103747913176043a9b57221f33010000×tamp=1604803067& 签名加key后:appid、noncestr=oqV8fcDIMgRMuB9K&package=Sign=WXPay&partnerid、prepayid=wx08103747913176043a9b57221f33010000×tamp=1604803067&key=30c39aa331a66044c4735a3d40201749 最后生成Sign:7A3767500852C91ED161FFA5A783B4B9 -------接下来是返回客户端的-------- 预付订单wxPay:{package=Sign=WXPay, appid=wxed23498377bd08b2, extdata=135****7582, sign=7A3767500852C91ED161FFA5A783B4B9, partnerid=1601634436, prepayid=wx08103747913176043a9b57221f33010000, noncestr=oqV8fcDIMgRMuB9K, timestamp=1604803067} 客户端调起支付: PayReq req = new PayReq(); req.appId = map.get("appid"); req.partnerId = map.get("partnerid"); req.prepayId = map.get("prepayid"); req.packageValue = map.get("package"); req.nonceStr = map.get("noncestr"); req.timeStamp = map.get("timestamp"); req.extData = map.get("extdata"); req.sign = map.get("sign"); //发送请求或发送响应到微信终端 WechatResult = wxapi.sendReq(req); 最最关键的是:我本地是可以调起支付的,放在服务器上不行呢?(前提已经在开放平台上改了发布版的app签名)
2020-11-08