情况大概是这样的,之前app中已经集成了微信用户免密签约的sdk,也成功吊起微信用户免密的签约的界面并签约成功。版本迭代的时候又加了一个新的功能,需要用到微信支付。当调用服务器接口的时候返回微信的调用支付界面的信息。
IWXAPI api = WXAPIFactory.createWXAPI(mBaseView.getContext(), data.getAppid());
PayReq payReq = new PayReq();
payReq.appId = data.getAppid();
payReq.partnerId = data.getPartnerid();
payReq.prepayId = data.getPrepayid();
payReq.packageValue = data.getPackageX();
payReq.nonceStr = data.getNoncestr();
payReq.timeStamp = data.getTimestamp();
payReq.sign = data.getSign();
api.sendReq(payReq);
data时服务器返回过来的数据,然后调用微信sdk的接口。让你怀疑人生的事情发生了。怎么调用都无法吊起微信的界面,一直在WXPayEntryActivity界面的onresp方法中返回-1.试了好多次刚开始以为是手机问题,然后登录另外一个手机。居然调起了支付页面支付成功后。心中大喜,然后又去支付,发现又调用不起来,此时想杀人的感觉都有了。后来发现未登录的时候可以调起来微信的登录界面,然后登录进去还是调用不起来。调整了一下午未果回家第二天接着调试。第二天上午各种找问题,另外一个app也是这么写的没问题啊。把这个代码copy到另外的项目中还是可以支付的为什么在这个项目中不行呢。此时已经怀疑人生了。网上各种百度,包名?签名?。。。不对啊,如果是包名或者签名问题为什么可以支付成功一笔订单,而且之前做的用户免密签约也可以正常签约。后来打了半天电话给微信支付的客服,终于有人接通了。那个小姐姐不是做技术的没发解决问题。官方文档demo也是够坑的,15年的demo都运行不起来,想死的心都有了。文那个微信后台配置的人对下签名啥的没问题。又调了议会实在没办法又叫那哥们所有的后台配置对比下。一会过去了,那哥们告诉我包名少写了个字母。纳尼,此时心中一万头cnm奔腾有种想杀人的感觉。最后微信支付的开发人员都干嘛去了。15年的demo也放在上面不更新。包名错了签约还能成功,还有一单支付成功。没办法,谁让人家是一家独大。