iOS 集成微信支付

这次是一个新项目,集成支付宝和微信支付,在上一篇中,记录了一下集成支付宝支付时的一些坑,不过集成微信时要顺利得多。微信支付客户端的代码量稍微多一些,不过也是非常简单的。

首先我碰到了一个问题,不知道大家有没有碰到过,就是使用cocopods导入的时候,友盟的微信分享库与微信官方库冲突的问题。最开始友盟微信分享我是集成了完整版的,再通过pod 'WechatOpenSDK'导入的时候,就发现库文件冲突了,然而不导入这个的时候呢,微信支付的PayReq好像这个类又找不到。最后我试着把微信友盟分享完整版,改成了友盟微信分享精简版,没想到,这个冲突问题就解决了。
集成步骤

1、使用cocopods导入微信的sdk库

pod 'WechatOpenSDK'

安装好之后运行一下,看有没有冲突。
2、在需要使用的地方导入头文件

#import <WXApi.h>

3、在AppDelegate.m中注册微信服务

//向微信注册
[WXApi registerApp:WeChatKey];
//WeChatKey 您在申请微信支付时的appkey

4、在info.plist中的“URL Types”选项中,点击“+”,在“URL Schemes”中输入“您申请的微信appkey”,方便回调。

5、在向服务端创建好支付订单之后,服务端会返回客户端调起微信支付时所需的参数,然后创建请求参数,向微信发起支付请求即可。

//dict的内容为服务端返回给客户端
PayReq* req = [[PayReq alloc] init];
req.partnerId   = dict[@"partnerid"];
req.prepayId    = dict[@"prepayid"];
req.nonceStr    = dict[@"noncestr"];
req.timeStamp   = [dict[@"timestamp"] doubleValue];
req.package     = dict[@"package"];
req.sign = dict[@"sign"];
[WXApi sendReq:req];

6、处理支付结果回调

// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
   if ([url.host isEqualToString:@"pay"]){ //微信支付的回调
        NSString *result = [url absoluteString];
        NSLog(@"微信------%@",result);
        NSArray *array = [result componentsSeparatedByString:@"="];
        NSString *resultNumber = [array lastObject];
        NSLog(@"微信------%@",resultNumber);
        if ([resultNumber integerValue] == 0){ //成功
            //发送支付成功的通知
            [[NSNotificationCenter defaultCenter] postNotificationName:NoticePaySuccess object:nil];
        }else if ([resultNumber integerValue] == -1) { //错误
            //发送支付失败的通知
            [[NSNotificationCenter defaultCenter] postNotificationName:NoticePayFailure object:nil];
        }else if ([resultNumber integerValue] == -2){ //用户取消
            //发送支付取消的通知
            [[NSNotificationCenter defaultCenter] postNotificationName:NoticePayCancel object:nil];
        }
    }
    return YES;
}

结束。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天分享一下项目中集成了支付功能和分享功能(友盟分享),经常会出现一些问题。废话不多说,直接上问题吧。 一、先说微...
    小瓶子Zgp阅读 3,653评论 0 4
  • 刚集成完微信支付,总结总结 1. 准备 微信平台分为微信公众平台和微信开放平台,公众平台是运营微信公众号的管理系统...
    yaqiong阅读 20,743评论 13 40
  • iOS集成微信支付-Swift版 微信支付在微信红包的推动发展势头越来越猛,甚至有超过支付宝的趋势,那么在App集...
    iyakexi阅读 8,268评论 3 12
  • 前言 最近做了一个项目, 又需要集成微信支付, 以前一直没有记录下来, 这次在集成的过程中, 碰到了很多坑, 所以...
    wenjieli阅读 589评论 0 0
  • 照着官网写好了 支付直接报败,挫败~~~ 先把官方demo下载下来,可以本地倒入sdk,我是适用的pods,因为之...
    LYPC_下里巴人阅读 473评论 0 1

友情链接更多精彩内容