解决iOS调起微信支付显示系统繁忙问题

2025-05-29 0 20

最新刚到新公司接手一个项目,当微信支付时可以跳转到微信界面,但会弹出对话框显示 '系统繁忙',点击确定就留在微信,不返回APP,然后就各种调试,微信的DEMO和接入文档都看穿了,都还没能解决问题,网上也是找了各种答案,什么降低微信支付SDK版本,还有检查传过去的参数,也反复检查了参数,确实没发现问题,也没能解决我的问题,安卓那边可以微信支付iOS这边不行,参数都是由服务器返回的一样的参数,所以也解决参数不会有问题,然后无意中看到了网上一个哥们的问题说和友盟分享SDK冲突了,刚好这个工程也集成了友盟,然后在工程里注释掉友盟注册微信APPID的代码,在运行,完美解决了我的问题,(当然不能注释掉代码),我个人的解决方案是在调起微信支付之前用微信的API在注册一下微信的APPID(虽然在程序启动的时候已经注册过一次,不想去改动原来的代码),下面的是我的代码,在这里写下来,供以后碰到此类问题的童鞋可以参考解决问题!

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25
#pragma 微信支付

-(void) payMwxpay:(Mwxpay *) mwxpay{

// 跟友盟微信分享SDK冲突,支付时需要重新注册微信APPID一次

// 获取plist文件路径

NSString *path = [[NSBundle mainBundle] pathForResource:@"appchange.plist" ofType:nil];

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];

// 从字典中取出注册微信 appid

[WXApi registerApp:[dict toString:@"weixin_appId"] withDescription:@"aiwufu"];

PayReq* req = [[PayReq alloc] init];

// if ([mwxpay.package isEqualToString:@"Sign=Wxpay"]) {

// mwxpay.package=@"Sign=WXPay";

// }

// if (mwxpay.sign!=nil) {

// mwxpay.sign=[mwxpay.sign uppercaseString];

// }

req.openID = mwxpay.appid;

req.partnerId = mwxpay.partnerid;

req.prepayId = mwxpay.prepayid;

req.nonceStr = mwxpay.noncestr;

req.timeStamp = [mwxpay.timestamp intValue];

req.package = mwxpay.package;

req.sign = mwxpay.sign;

[WXApi sendReq:req];

NSLog(@"appid=%@\\npartid=%@\\nprepayid=%@\\nnoncestr=%@\\ntimestamp=%ld\\npackage=%@\\nsign=%@",req.openID,req.partnerId,req.prepayId,req.nonceStr,(long)req.timeStamp,req.package,req.sign );

}

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 解决iOS调起微信支付显示系统繁忙问题 https://www.kuaiidc.com/92365.html

相关文章

发表评论
暂无评论