要想知道微信SDK是如何调起微信客户端,那么咱们先看看微信SDK到底做了什么
前期准备
- 接入前期准备工作包括商户签约和密钥配置,已完成商户可略过。
- 下载微信SDK微信SDK下载地址
SDK集成流程
- 将解压的微信OpenSDK文件夹拷贝到项目文件夹下,并导入开发环境中。
libWeChatSDK.a
WechatAuthSDK.h
WXApi.h
WXApiObject.h
导入系统依赖库
在link Binary With Libraries 里面添加
libc++.tbd
CoreTelephony.framework
libsqlite3.0.tbd
libz.tbd
SystemConfiguration.framework
还有之前导入的 libWeChatSDK.a
到这一步,SDK集成已经完毕
配置代码
- 添加URL Schemes
点击项目名称,点击“Info”选项卡,在“URL Types”选项中,点击“+”, 在“URL Schemes”中输入微信的注册码
c1000
- 在支付的类里引用头文件:
1 |
#import "WXApi.h" |
- 配置wxpay支付
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
#pragma mark ==============配置wxpay支付============== - (void)payAction{ //发起网络请求,去你们服务器请求1.订单id,2. 钱(单位:分),3. 内容描述 //订单最好服务器生成,本文为了各位看的明白,所以在本地生成! [NetWorkTool dingiD:[self generateTradeNO] andDetail:@"描述" success:^(NSDictionary *responseObject) { //服务器返回数据 //调起微信支付 PayReq* wxreq = [[PayReq alloc] init]; /** appid */ wxreq.openID = responseObject[@"result"][@"appid"]; /** 商家向财付通申请的商家id */ wxreq.partnerId = responseObject[@"result"][@"partnerid"]; /** 预支付订单 */ wxreq.prepayId = responseObject[@"result"][@"prepayid"]; /** 随机串,防重发 */ wxreq.nonceStr = responseObject[@"result"][@"noncestr"]; /** 时间戳,防重发 */ wxreq.timeStamp = [responseObject[@"result"][@"timestamp"] intValue]; /** 商家根据财付通文档填写的数据和签名 */ wxreq.package = responseObject[@"result"][@"package"]; /** 商家根据微信开放平台文档对数据做的签名 */ wxreq.sign = responseObject[@"result"][@"sign"]; [WXApi sendReq:wxreq]; } failure:^(NSError *error) { NSLog(@"%@",error); }]; } #pragma mark ==============产生随机订单号============== - (NSString *)generateTradeNO { static int kNumber = 15; NSString *sourceStr = @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; NSMutableString *resultStr = [[NSMutableString alloc] init]; srand((unsigned)time(0)); for (int i = 0; i < kNumber; i++) { unsigned index = rand() % [sourceStr length]; NSString *oneStr = [sourceStr substringWithRange:NSMakeRange(index, 1)]; [resultStr appendString:oneStr]; } return resultStr; } |
- 配置返回处理代码
在 AppDelegate.h 文件中,增加微信协议:
1 2 |
#import "WXApi.h" @interface AppDelegate : UIResponder <UIApplicationDelegate,WXApiDelegate> |
在 AppDelegate.m 文件中,增加引用代码: