48

两个分类,帮你快速集成支付宝和微信支付

 5 years ago
source link: http://www.cocoachina.com/ios/20180930/25080.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

写在前面

这次的项目需要集成支付宝支付和微信支付,以前做这两个支付集成的时候压根也没怎么在意,因为签名什么的都是在服务器端完成的,自己也没怎么弄,但是这次签名都需要在客户端完成,在集成的时候还遇到了一点坑,所以在做完后,我把支付宝和微信支付总结了2个分类出来,方便以后快速集成,也为初次集成支付宝和微信的朋友提供个参考,使用这两个分类,无论客户端签名和服务端签名,你只需要简单几步就可以完成支付宝和微信支付,非常简单,github地址: XWPayCategory

效果图

m6vEFjQ.gif

如何使用

使用前请先自行配置好环境,比如申请各种id、秘钥、公钥,导入库和设置scheme之类的,这类步骤的详细说明网上都很多,搜索一下就可以了;

详细步骤见demo:demo使用前请务必配置好所有的key和id,不然是无法正确调用支付的

我对demo做简单的使用步骤说明,为了保证体验,支付宝和微信的分类的API的调用方式完全一样的,而且步骤也是和大多数三方SDK一样,采用先注册后调用的逻辑,方便理解使用,两个分类分别是: WXApi+XWAddAlipaySDK+XWAdd ,下面是步骤:

1、注册

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    //注册微信
    [WXApi xwAdd_registerWeiXinWithAppID:weiXinID];    //注册微信支付(客户端签名才需要注册)
    [WXApi xwAdd_registerWXPayWithMchID:weiXinMchID appSecret:weiXinSecretKey];    //注册支付宝支付(客户端签名才需要注册)
    [AlipaySDK xwAdd_registerAlipayWithPartnerID:AliPayPartnerID sellerID:AliPaySellerID partnerPrivKey:AliPayPartnerPrivKey];    return YES;

2、设置OpenURL回调

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options{    //处理微信回调信息
    [WXApi xwAdd_handleOpenURL:url];    //处理支付宝回调信息
    [AlipaySDK xwAdd_handleOpenURL:url];    return YES;
}

3、发起支付,在block中处理回调,对于支付宝支付,无论是网页端和app端的回调,都通过这里的block的回调,保证了逻辑的统一性

- (IBAction)alipay:(id)sender {    //发起支付宝支付(客户端签名版本)
    [AlipaySDK xwAdd_sendPayRequestWithOrderID:@"1221322213123131321" orderName:@"测试订单" orderDescription:nil orderPrice:@"0.01" orderNotifyUrl:@"www.test.com" appScheme:@"xwpaydemo" callbackConfig:^(BOOL successed) {        //支付宝支付无论网页版本和app版本都统一在这里回调
        [self _xw_handleResult:successed];
    }];
}

- (IBAction)wxpay:(id)sender {    //发起微信支付(客户端签名版本)
    [WXApi xwAdd_sendPayRequestWithOrderID:@"13212112313213213213" orderName:@"测试订单" orderPrice:@"1" orderNotifyUrl:@"www.test.com" callbackConfig:^(BOOL successed) {        //微信支付回调回调
        [self _xw_handleResult:successed];
    }];
}/**处理支付结果,大功告成*/- (void)_xw_handleResult:(BOOL)successed{
    [XWSimpleTipView xw_showSimpleTipOnView:self.view WithTitle:successed ? @"支付成功" : @"支付失败"];
}

就这样三个步骤,就完成了整个支付的流程,而且代码也比较简洁,如上调用的方法是对于客户端签名版本,服务器签名的话,就换一下第三个步骤的发起支付方法就行了,步骤没什么差别,详细请自行查看两个分类

最后

使用该分类,就只需要这3个步骤,很少的代码,就可以快速的完成支付宝和微信支付的集成了,其实对于很多三方库,我们在使用的时候都应该为其写分类或者工具类出来,这样不仅方便我们以后集成,而且能够让三方库尽可能少的侵染我们的工程,以后改起来也相当方便,再次复习一下github地址: XWPayCategory ,如果觉得有帮助,谢谢给予star鼓励!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK