iOS 集成微信支付

1. 去微信开放平台注册app key ,获取相应的app key 创建应用

2. 在工程中导入weixinsdk

3. 添加相关依赖库

CoreTelephony.framework

SystemConfiguration.framework

libz.tbd

libsqlite3.0.tbd

libc++.tbd

4.配置文件的添加

Info.plist:

    添加URL types

            Item 0:

            Document Role  Editor

            URL identifier    weichat

            URL Schemes 

                    Itime 0.   XXXXXXXX(开放平台申请的到的key值)


5.去工程中的Info中修改URL Types如图,将申请的到的key值填在相应的位置

6. 进入AppDelegate.m的application: didFinishLaunchingWithOptions:  方法进行微信支付的初始化设置

(1).    首先要导入,

(2).    在代码中注册微信支付:[WXApi registerApp:(申请的id)]

(3).    WXApi.h中是微信支付api所暴露的使用方法:

  - (void)registerApp:(NSString *)appid;   //将申请的appkey注册到微信中去

    + (BOOL)isWXAppInstalled;                   //检测是否安装微信客户端

    + (BOOL)sendReq:(BaseReq *)req;      //发送请求到微信等待微信返回onResp

    + (BOOL)sendAuthReq:(SendAuthReq *)req viewController:(UIViewController *)viewController delegate:(id )delegate;   // 发送授权到微信,等待微信返回onResp

    支付时方法调用:

    PayReq:第三方向微信终端发起支付的消息体结构,将自己的订单信息赋值给PayReq对应的属性再进行支付

    partnerId: 商家向财付通申请的商家id

    prepayId:  预支付订单

    nonceStr: 随机串,防重发

    timeStamp:时间戳

    package:  商家根据财付通文档天蝎的数据和签名

    sign:         商家根据微信开放平台文档对数据做的签名

7.支付回调

    支付回调SenAuthResp:微信处理完认证和权限之后返回的结果

- (void)onResp:(BaseResp *)resp

{

    //向微信请求授权后得到的响应

    if([rep isKindOfClass:[SenAuthResp class]] && rep.errCode == 0)

    {

     //微信支付 url:  wx_base_url = @"https://api.weixin.qq.com/sns"

    SenAuthResp *temp = (SenAuthResp *)rep;

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/html",@"text/json",@"text/javascript",@"text/plain",@"image/jpeg",@"application/x-png",nil];

    NSString *accessUrlStr = [NSString stringWithFormat:@"%@/oauth2/accsee_token?appid=%@%secret=%@&code=%@&grant_type=authorization_code",wx_base_url,申请的id, key,temp,code];

    }

}

你可能感兴趣的:(iOS 集成微信支付)