学而时习之,不亦悦乎,大家好,我是张杰。
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<NSString*, id> *)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<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler
{
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
#pragma mark - WXApiDelegate
- (void)onResp:(BaseResp *)resp{
// resp.errCode
[[NSNotificationCenter defaultCenter] postNotificationName:@"wxLogin" object:resp];
}
项目设置
然后在点击支付按钮处调用:
//调起微信支付
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,根据返回处理具体业务就好了。
如果有错误或者还有其他问题,可以联系我:zhangjieiossky@163.com,谢谢