iOS 支付宝集成流程

iOS 集成支付宝支付

SDK下载

集成支付宝首先是去官网下载SDK https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1 ,这里选择SDK的时候有一个小小的注意点,当APP内集成了阿里百川的SDK时候(比如阿里云推送、OSS服务等),请下载第二种,不然会报UTDID文件冲突错误

屏幕快照 2017-03-02 上午10.38.38.png

环境配置

官方文档关于环境配置已经写得很清楚,我就不赘述了,大家请自行前往查看 https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.2bhZNR&treeId=204&articleId=105295&docType=1,配置URLScheme时尽量特殊,防止与其他APP重复,当然这种概率太小!

API调用说明

  • 发起支付: orderString由后端统一生成,appScheme就是环境配置中设置的URLScheme
[[AlipaySDK defaultService] payOrder:orderString
                             fromScheme:appScheme
                               callback:^(NSDictionary *resultDic) {
                                   NSLog(@"reslut = %@",resultDic);
                               }];
  • 处理支付结果:在AppDelegate的以下三个方法中调用,这里调用方法单独封装出来
 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
   if ([url.host isEqualToString:@"safepay"]) {
       // 从支付宝打开app
       [[DBMobilePay shareInstance] processOrderWithPaymentResultUrl:url];
   }
   return YES;
}
// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app
            openURL:(NSURL *)url
            options:(NSDictionary<NSString*, id> *)options {
    if ([url.host isEqualToString:@"safepay"]) {
        // 支付完成回调
        [[DBMobilePay shareInstance] processOrderWithPaymentResultUrl:url];
    }
    return YES;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    
    NSString * absoluteUrlStr = [url absoluteString];
    if ([url.host isEqualToString:@"safepay"]) {
        // 从支付宝打开app
        [[DBMobilePay shareInstance] processOrderWithPaymentResultUrl:url];
        
    }
    return YES;
}

// 支付跳转支付宝钱包进行支付,处理支付结果
   [[AlipaySDK defaultService] processOrderWithPaymentResult:url
                                             standbyCallback:^(NSDictionary *resultDic) {
//                                                  NSLog(@"AlipayResult = %@",resultDic);
// 在这里处理支付结果
                                                 
     }];
 // 授权跳转支付宝钱包进行支付,处理支付结果
    [[AlipaySDK defaultService] processAuth_V2Result:url
                                     standbyCallback:^(NSDictionary *resultDic) {
                                         
                                         NSLog(@"result = %@",resultDic);
                                         
                                         // 解析 auth code
                                         NSString *result = resultDic[@"result"];
                                         NSString *authCode = nil;
                                         
                                         if (result.length > 0) {
                                             
                                             NSArray *resultArr = [result componentsSeparatedByString:@"&"];
                                             
                                             for (NSString *subResult in resultArr) {
                                                 
                                                 if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {
                                                     
                                                     authCode = [subResult substringFromIndex:10];
                                                     
                                                     break;
                                                 }
                                             }
                                         }
                                         NSLog(@"授权结果 authCode = %@", authCode?:@"");
                                     }];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ps:先来支付宝的。首先集成支付宝的SDK,这个真心是运气加上技术相结合才行~有时候一样的工程,就是给你报错~你能...
    临渊还在阅读 1,514评论 0 2
  • 最近实现了支付宝sdk导入的视线功能,那么现在就讲一下实现的整个流程。(其实并没有想象中那么难) 一:第一步 需要...
    辛小二阅读 1,390评论 0 1
  • 在我们应用开发中我们经常在自己的项目中使用到支付,下面我们来谈谈iOS这块的支付;iOS支付主要分为两类,第三方支...
    Hither阅读 8,332评论 9 42
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    请输入账号名阅读 6,318评论 3 22
  • 实现支付宝支付的准备工作: 1.向支付宝签约,成为支付宝的商户 签约完成后,支付宝会提供一些必要的数据给我们 商户...
    Anson杨春安阅读 8,263评论 0 6