本文由本人原創發表於博客園,轉載請註明出處html
http://www.cnblogs.com/wangqw/p/5091589.htmlsql
1、開發前準備服務器
iOS微信支付SDK下載地址微信
2、 集成微信支付微信支付
一、解壓WeChatSDK1.6.2_Sample.zip(忽略版本號)(這個是微信支付的Demo)url
二、建立個文件夾,找到以下文件,放到文件夾裏。便於將文件統一拷入項目spa
三、建立項目並將微信支付SDK添加進項目(項目建立再也不演示)3d
四、導入系統庫(不導入編譯不經過會報錯)code
SystemConfiguration.framework
libz.tbd
libsqlite3.0.tbd
CoreTelephony.framework
五、修改info.plist文件
1 //iOS 9系統策略更新,限制了http協議的訪問,此外應用須要在「Info.plist」中將要使用的URL Schemes列爲白名單,纔可正常檢查其餘應用是否安裝。 2 //受此影響,當你的應用在iOS 9中須要使用微信SDK的相關能力(分享、收藏、支付、登陸等)時,須要在「Info.plist」裏增長以下代碼: 3 <key>LSApplicationQueriesSchemes</key> 4 <array> 5 <string>weixin</string> 6 </array> 7 <key>NSAppTransportSecurity</key> 8 <dict> 9 <key>NSAllowsArbitraryLoads</key> 10 <true/> 11 </dict>
六、註冊微信支付
1 //導入頭文件 2 #import "WXApi.h" 3 #import "WXApiManager.h"
在AppDelegate裏
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]]; }
七、調用微信支付
#pragma mark -- 微信支付 -- - (void)WeChatPay{ PayReq *req = [[PayReq alloc] init]; /** 由用戶微信號和AppID組成的惟一標識,發送請求時第三方程序必須填寫,用於校驗微信用戶是否換號登陸*/ req.openID = @"";//服務器返回 /** 商家向財付通申請的商家id */ req.partnerId = @"";//服務器返回 /** 預支付訂單 */ req.prepayId = @"";//服務器返回 /** 商家根據財付通文檔填寫的數據和簽名 */ req.package = @"";//服務器返回 注意iOS只能是 Sign=WXPay 即req.package = Sign=WXPay /** 隨機串,防重發 */ req.nonceStr = @"";//服務器返回 /** 時間戳,防重發 */ NSString * stamp = @"";//服務器返回 req.timeStamp = stamp.intValue; /** 商家根據微信開放平臺文檔對數據作的簽名 */ req.sign = @"";//服務器返回 // 在支付以前,若是應用沒有註冊到微信,應該先調用IWXMsg.registerApp將應用註冊到微信 [WXApi registerApp:@""]; //發送請求到微信,等待微信返回onResp [WXApi sendReq:req]; }