本地服务端测试是可以拉起微信支付的,但是项目移到服务器上就不行呢?开放平台的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&timestamp=1604803067&

签名加key后:appid、noncestr=oqV8fcDIMgRMuB9K&package=Sign=WXPay&partnerid、prepayid=wx08103747913176043a9b57221f33010000&timestamp=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签名)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐