iOS中微信支付中调用不起来微信

这几天在进行版本开发中遇到了一个问题:
支付使用第三方微信支付的时候,app调不起来微信,什么都不显示也不返回,很是纳闷。


前提条件:

第一版本使用微信支付的时候,是直接下载友盟的SDK,版本是UMSocial_Sdk_5.2:
3075498-5114068ebc71cdc8.png
旧版本

现在进行开发的时候,组件化之后的,直接使用的是cocoapods引用的UMSocial:
3075498-73e3043af55131ee.png
podfile微信使用的完整版

代码流程不变

                PayReq *weChatReq = [[PayReq alloc] init];
                weChatReq.openID = weChatDic[@"appid"];
                weChatReq.partnerId = weChatDic[@"partnerid"];
                weChatReq.prepayId = weChatDic[@"prepayid"];
                weChatReq.nonceStr = weChatDic[@"noncestr"];
                weChatReq.timeStamp = [weChatDic[@"timestamp"] integerValue];
                weChatReq.package = weChatDic[@"package"];
                weChatReq.sign = weChatDic[@"sign"];
                [WXApi sendReq:weChatReq];

但是,使用cocoapods引入的,在执行代码的时候

 [WXApi sendReq:weChatReq];

微信调不起来

查找问题原因:
1.首先注册的AppKey没有问题;
2.相应的设置没有问题;


考虑使用的库的问题:
经过查找,发现在WXApiObject.h文件中,一个有PayReq 和PayResp这两个文件,一个没有


3075498-95214738abd4a49f.png
WXApiObject.h中的PayReq 和PayResp

但是,为什么之前的没有问题,查找代码,同事自己定义了PayReq 和PayResp这两个缺失的文件,所以,之前代码中也有这两个文件:
3075498-c0ccd8a3db46af71.png
代码中自定义PayReq 和PayResp

解决的方案:

先将友盟中的微信部分,设置成精简版,不使用完整版:
3075498-ed6195924632e6d0.png
使用微信精简版

再新增微信支付的SDK:

  pod 'WechatOpenSDK'

删除重复定义的文件。运行,在相应的地方就可以调用起来微信支付。

猜你喜欢

转载自blog.csdn.net/weixin_33852020/article/details/87039639
今日推荐