你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 解決iOS調起微信支付顯示系統繁忙問題

解決iOS調起微信支付顯示系統繁忙問題

編輯:IOS開發綜合

最新剛到新公司接手一個項目,當微信支付時可以跳轉到微信界面,但會彈出對話框顯示 '系統繁忙',點擊確定就留在微信,不返回APP,然後就各種調試,微信的DEMO和接入文檔都看穿了,都還沒能解決問題,網上也是找了各種答案,什麼降低微信支付SDK版本,還有檢查傳過去的參數,也反復檢查了參數,確實沒發現問題,也沒能解決我的問題,安卓那邊可以微信支付,iOS這邊不行,參數都是由服務器返回的一樣的參數,所以也解決參數不會有問題,然後無意中看到了網上一個哥們的問題說和友盟分享SDK沖突了,剛好這個工程也集成了友盟,然後在工程裡注釋掉友盟注冊微信APPID的代碼,在運行,完美解決了我的問題,(當然不能注釋掉代碼),我個人的解決方案是在調起微信支付之前用微信的API在注冊一下微信的APPID(雖然在程序啟動的時候已經注冊過一次,不想去改動原來的代碼),下面的是我的代碼,在這裡寫下來,供以後碰到此類問題的童鞋可以參考解決問題!

#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 ); 
} 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved