本文由本人原创发表于博客园,转载请注明出处
http://www.cnblogs.com/wangqw/p/5091589.html
一、开发前准备
iOS微信支付SDK下载地址
二、 集成微信支付
1、解压WeChatSDK1.6.2_Sample.zip(忽略版本号)(这个是微信支付的Demo)
2、创建个文件夹,找到如下文件,放到文件夹里。便于将文件统一拷入项目
3、创建项目并将支付宝SDK添加进项目(项目创建不再演示)
4、导入系统库(不导入编译不通过会报错)
SystemConfiguration.framework
libz.tbd
libsqlite3.0.tbd
CoreTelephony.framework
5、修改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>
6、注册微信支付
1 //导入头文件 2 #import "WXApi.h" 3 #import "WXApiManager.h"
在AppDelegate里
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
1 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 2 return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]]; 3 } 4 5 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 6 return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]]; 7 }
7、调用微信支付
1 #pragma mark -- 微信支付 -- 2 - (void)WeChatPay{ 3 4 PayReq *req = [[PayReq alloc] init]; 5 6 /** 由用户微信号和AppID组成的唯一标识,发送请求时第三方程序必须填写,用于校验微信用户是否换号登录*/ 7 req.openID = @"";//服务器返回 8 9 /** 商家向财付通申请的商家id */ 10 req.partnerId = @"";//服务器返回 11 12 /** 预支付订单 */ 13 req.prepayId = @"";//服务器返回 14 15 /** 商家根据财付通文档填写的数据和签名 */ 16 req.package = @"";//服务器返回 注意iOS只能是 Sign=WXPay 即req.package = Sign=WXPay 17 18 /** 随机串,防重发 */ 19 req.nonceStr = @"";//服务器返回 20 21 /** 时间戳,防重发 */ 22 NSString * stamp = @"";//服务器返回 23 req.timeStamp = stamp.intValue; 24 25 /** 商家根据微信开放平台文档对数据做的签名 */ 26 req.sign = @"";//服务器返回 27 28 // 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信 29 [WXApi registerApp:@""]; 30 31 //发送请求到微信,等待微信返回onResp 32 [WXApi sendReq:req]; 33 34 }