iOS微信支付集成(2020)

学而时习之,不亦悦乎,大家好,我是张杰。

iOS开发支付模块分为两个部分:

1、调取外部支付,例如支付宝、微信、银联等。

2、苹果内购。

前面我们已经讲过苹果内购和支付宝,现在出一个详细的微信支付流程

一、微信。

1、登录微信开放平台 https://open.weixin.qq.com
注册或者登录,然后创建应用,申请支付功能
有疑问看这里:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Pay/Vendor_Service_Center.html

2、现在一般三方库或者SDK用pod管理,如果你的项目不是pod管理的,可以看我的这篇文章:https://www.jianshu.com/p/366eef7c2472
如果你不想用pod或者变换有难度,那就手动导入SDK吧 ,看这里https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html#jump2
下面将pod导入,打开项目中的podfile文件

   pod 'WechatOpenSDK'

打开终端,项目拖入

   pod install

3、AppDelegate里导入头文件

#import "WXApi.h"

设置代码

[WXApi registerApp:@"" universalLink:@""];

universalLink怎么设置看传送门:https://www.jianshu.com/p/0e39052f461e
相对于以往,新版SDK 强调了Universal Links,下面一篇文章介绍的比较清楚
https://www.jianshu.com/p/3a46eb4a107f
看完了你应该会配置Universal Links 了 也就是找后台大兄弟。

// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options
{

    return [WXApi handleOpenURL:url delegate:self];

}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return  [WXApi handleOpenURL:url delegate:self];
}


- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray> * __nullable restorableObjects))restorationHandler
{
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}

#pragma mark - WXApiDelegate
- (void)onResp:(BaseResp *)resp{

//    resp.errCode

 [[NSNotificationCenter defaultCenter] postNotificationName:@"wxLogin" object:resp];
}

项目设置


561603245308_.pic_hd.jpg

然后在点击支付按钮处调用:

    //调起微信支付
    PayReq* req             = [[PayReq alloc] init];
    req.partnerId           = @"";
    req.prepayId            = @"";
    req.nonceStr            = @"";
    req.timeStamp           = 1602663569;
    req.package             = @"Sign=WXPay";
    req.sign                = @"";
    [WXApi sendReq:req completion:^(BOOL success) {

    }];

至此,客户端流程完毕。总结一下:客户端要做的很简单,导入SDK,调用后台接口拿到 "订单相关字段",调用SDK,根据返回处理具体业务就好了。

如果有错误或者还有其他问题,可以联系我:[email protected],谢谢

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