客户端 iOS 集成流程

App支付客户端DEMO&SDK

支付相关接口说明

支付接口

1.1

方法名称:pay方法

方法原型:(void)payOrder:(NSString )orderStr fromScheme:(NSString )schemeStr callback:(CompletionBlock)completionBlock;

方法功能:提供给商户快捷订单支付功能。

NSString* scheme  商户程序注册的URL protocol,供支付完成后回调商户程序使用。

(CompletionBlock)completionBlock 快捷支付开发包回调函数,返回免登、支付结果。本地未安装支付宝客户端,或未成功调用支付宝客户端进行支付的情况下(走H5收银台),会通过该completionBlock返回支付结果。

NSString* orderString  app支付请求参数字符串,主要包含商户的订单信息,key=value形式,以&连接。

/***  支付接口**  @param orderStr        支付订单信息字串*  @param schemeStr       调用支付的app注册在info.plist中的scheme*  @param completionBlock 支付结果回调Block,用于wap支付结果回调跳转支付宝支付时只有当processOrderWithPaymentResult接口的completionBlock为nil时会使用这个bolock*/
- (void)payOrder:(NSString *)orderStrfromScheme:(NSString *)schemeStrcallback:(CompletionBlock)completionBlock;
/***  支付接口 v2**  @param orderStr        支付订单信息字串*  @param dynamicLaunch   是否使用动态配置策略跳转支付宝支付*  @param schemeStr       调用支付的app注册在info.plist中的scheme*  @param completionBlock 支付结果回调Block,用于wap支付结果回调跳转支付宝支付时只有当processOrderWithPaymentResult接口的completionBlock为nil时会使用这个bolock*/
- (void)payOrder:(NSString *)orderStrdynamicLaunch:(BOOL)dynamicLaunchfromScheme:(NSString *)schemeStrcallback:(CompletionBlock)completionBlock;

支付结果接口

方法名称:处理客户端方法

方法原型:-(void)processOrderWithPaymentResult:(NSURL*)resultUrl standbyCallback:(CompletionBlock)completionBlock;

方法功能:设备已安装支付宝客户端情况下,处理支付宝客户端返回的url。

本地安装了支付宝客户端,且成功调用支付宝客户端进行支付的情况下,会通过该completionBlock返回支付结果。

NSURL *resultUrl  支付宝客户端回传的url

CompletionBlock completionBlock 本地安装了支付宝客户端,且成功调用支付宝客户端进行支付的情况下,会通过该completionBlock返回支付结果。

注意:请在APPDelegate的 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 中调用该方法,iOS9.0及以上请在 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options 中调用该方法。

/***  处理支付宝app支付后跳回商户app携带的支付结果Url**  @param resultUrl        支付宝app返回的支付结果url*  @param completionBlock  支付结果回调 为nil时默认使用支付接口的completionBlock(即- (void)payOrder:(NSString *)orderStrfromScheme:(NSString *)schemeStrcallback:(CompletionBlock)completionBlock;这个方法中的completionBlock)*/
- (void)processOrderWithPaymentResult:(NSURL *)resultUrlstandbyCallback:(CompletionBlock)completionBlock;

支付宝授权 2.0 相关接口

/***  快登授权2.0**  @param infoStr          授权请求信息字串*  @param schemeStr        调用授权的app注册在info.plist中的scheme*  @param completionBlock  授权结果回调,需要调用方在appDelegate中调用processAuth_V2Result:standbyCallback:方法获取授权结果*                          若在授权过程中,调用方应用被系统终止则此block无效(此时会调用'processAuth_V2Result:standbyCallback:'传入的standbyCallback)*/
- (void)auth_V2WithInfo:(NSString *)infoStrfromScheme:(NSString *)schemeStrcallback:(CompletionBlock)completionBlock;
/***  处理支付宝app授权后跳回商户app携带的授权结果Url**  @param resultUrl        支付宝app返回的授权结果url*  @param completionBlock  授权结果回调,用于处理跳转支付宝授权过程中商户APP被系统终止的情况*/
- (void)processAuth_V2Result:(NSURL *)resultUrlstandbyCallback:(CompletionBlock)completionBlock;

相关代码

支付:(如果未安装支付宝,调用下面方法,通过回调resultDic处理支付结果。)

// NOTE: 调用支付结果开始支付[[AlipaySDK defaultService] payOrder:contentString fromScheme:@"AlipaySchemes" callback:^(NSDictionary *resultDic) {NSLog(@"payWithAlipayWithReturnContent AlipaySDK callback reslut = %@",resultDic);if ([resultDic[@"resultStatus"] intValue] == 9000) {//订单支付成功NSLog(@"%@",@"--------订单支付成功---------");}else{//订单支付失败NSLog(@"%@",@"--------订单支付失败---------");}}];

支付结果:

未安装支付宝客户端时,通过下面方法的回调resultDic处理支付结果。

将 @implementation AppDelegate 中以下代码中的 NSLog 改为实际业务处理代码:

// NOTE:iOS9之前使用
- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)urlsourceApplication:(NSString *)sourceApplicationannotation:(id)annotation {if ([url.host isEqualToString:@"safepay"]) {//跳转支付宝钱包进行支付,处理支付结果[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {NSLog(@"result = %@",resultDic);if ([[resultDic valueForKey:@"resultStatus"] intValue] == 9000) {//订单支付成功[[NSNotificationCenter defaultCenter] postNotificationName:@"paySuccess" object:nil];}else{//订单支付失败[[NSNotificationCenter defaultCenter] postNotificationName:@"payFail" object:nil];}   }];}return YES;
}// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{if ([url.host isEqualToString:@"safepay"]) {//跳转支付宝钱包进行支付,处理支付结果[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {NSLog(@"result = %@",resultDic);if ([[resultDic valueForKey:@"resultStatus"] intValue] == 9000) {//订单支付成功[[NSNotificationCenter defaultCenter] postNotificationName:@"paySuccess" object:nil];}else{//订单支付失败[[NSNotificationCenter defaultCenter] postNotificationName:@"payFail" object:nil];}];}return YES;
}

相关文章

iOS 支付回调区分支付宝和微信的方法

iOS 微信和支付宝的最新整理(客户端和后台两种demo)

支付宝支付iOS集成与二次封装

IOS整合支付宝支付微信支付

iOS三方支付--微信支付/支付宝支付

iOS支付宝和微信支付

iOS对接微信、支付宝支付、App内购流程

iOS开发 --- AlipaySDK接入(version:15.6.4 motify:2019.06.11)相关推荐

  1. IOS开发广告接入iAD框架_InMobi框架

    IOS开发植入广告的话,常用广告框架来实现,一般常用的有苹果官方的:iAd以及三方的像:InMobi等 以下分别介绍: iAd框架 iOS 4.0引入了iAd框架(iAd.framework)支持程序 ...

  2. ios开发怎么接入面容id_Flutter混合开发

    来源 | https://segmentfault.com/a/1190000021634067 混合开发简介 使用Flutter从零开始开发App是一件轻松惬意的事情,但对于某些成熟的产品而言,完全 ...

  3. ios开发怎么接入面容id_经常被老婆翻看手机怎么办?教你几招,手机直接给她都不怕了...

    [微创WEC科技]对于安卓用户来说,想隐藏自己的隐私其实很简单,害怕被女朋友或者老婆"查岗"的话,提前在设置中,设置隐藏式指纹,通过这个指纹识别后,才能在手机中看到你隐藏的文件.视 ...

  4. ios开发怎么接入面容id_谈谈数盟可信ID的技术原理

    目前市场上的APK,对于数盟可信ID的认可度已经变的很高了.从数盟的官网,96%的识别率已经在业内是很高的了.依靠如此单一的业务能够存活6年之久的公司,说明了这个技术的厉害之处. 处于对于此技术的好奇 ...

  5. iOS开发之接入微博三方登录时遇到的问题

    1.你所访问的站点在微博认证四百,错误号:21322 重定向地址不匹配 原因:微博开放平台中的授权回调页地址与工程中不一致,需要改为一致的. WBAuthorizeRequest *request = ...

  6. 从零开始学 iOS 开发的15条建议

    事情困难是事实,再困难的事还是要每天努力去做是更大的事实. 因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友会问我,该怎么学iOS开发.跟粉丝群的朋友交 ...

  7. 个人总结学 iOS 开发的15条经验

    事情困难是事实,再困难的事还是要每天努力去做是更大的事实. 因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友也会纠结怎么学iOS开发. 第一部分:态度和 ...

  8. iOS开发(第三方使用)——讯飞语音SDK接入

    去到讯飞开放平台创建应用并添加服务 下载SDK,下载时需要选上项目的,必须选上相应的项目,不能用项目1下载的SDK和项目2的app ID结合使用(估计是讯飞绑定了,所以步骤1和步骤2也不能颠倒) 拷贝 ...

  9. 1.15 快速更改同名变量 [原创iOS开发-Xcode教程]

    原文:http://coolketang.com/staticCoding/5a990cf3128fe1189bdaf2be.html 1. 本节课将为您演示,如何快速更改同名变量或常量.首先双击打开 ...

最新文章

  1. android 判断ip地址合法
  2. hdu 3577Fast Arrangement
  3. 图之DFS与BFS的复杂度分析
  4. nashPay项目遇到的问题
  5. ICCV2021-PiT-池化操作不是CNN的专属,ViT说:“我也可以”;南大提出池化视觉Transformer(PiT)...
  6. m_Orchestrate learning system---三十一、模板和需求的关系
  7. arm cortex-a8 天梯图_ARM架构解析
  8. LWIP协议栈详解(2)_网络接口层与协议栈初始化
  9. matlab处理波动的数据,波动数据时间序列的分析与处理
  10. java查询ip归属地
  11. NTFS与FAT32区别大揭秘
  12. codeforces C. Multiples of Length
  13. 独角兽微盟的“AB面”
  14. python统计单词出现次数 青少年编程电子学会python编程等级考试二级真题解析2022年3月
  15. 学计算机U盘内存,用U盘启动盘快速检测电脑内存的详细教程
  16. 计算机学院乔丽红,用巴特莱特窗函数法设计数字FIR带通滤波器dsp课程设计.doc...
  17. 小米盒子 装android,当贝市场教你怎么用小米盒子安装非安卓大型游戏
  18. 【光伏】基于战争策略算法WSO优化光伏模型附matlab代码
  19. # 第一个微信小程序代码存档
  20. FRM 数量分析笔记之概率分布

热门文章

  1. window10突然变成繁体怎么办呢??
  2. 微信扫码小绿盒支持支付宝+微信收款教程
  3. 观远数据苏春园:五年AI+BI路,数智化破局中的变与不变|数据猿采访
  4. 小米10pro第二个摄像头下面_小米10 Pro拍照翻车?暂不支持超广角超级夜景,官方回应...
  5. 2021年大数据工程师面试内容包括哪些?
  6. 工业设计公司如何选择
  7. java毕业设计能源控制系统mybatis+源码+调试部署+系统+数据库+lw
  8. 第五人格服务器维护中怎么进游戏,第五人格怎么开始 第五人格怎么进入游戏?[多图]...
  9. 电脑连接公司中国电信爱wifi反复验证无法连接wifi
  10. Mac Excel快捷键