iOS开发 --- AlipaySDK接入(version:15.6.4 motify:2019.06.11)
客户端 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)相关推荐
- IOS开发广告接入iAD框架_InMobi框架
IOS开发植入广告的话,常用广告框架来实现,一般常用的有苹果官方的:iAd以及三方的像:InMobi等 以下分别介绍: iAd框架 iOS 4.0引入了iAd框架(iAd.framework)支持程序 ...
- ios开发怎么接入面容id_Flutter混合开发
来源 | https://segmentfault.com/a/1190000021634067 混合开发简介 使用Flutter从零开始开发App是一件轻松惬意的事情,但对于某些成熟的产品而言,完全 ...
- ios开发怎么接入面容id_经常被老婆翻看手机怎么办?教你几招,手机直接给她都不怕了...
[微创WEC科技]对于安卓用户来说,想隐藏自己的隐私其实很简单,害怕被女朋友或者老婆"查岗"的话,提前在设置中,设置隐藏式指纹,通过这个指纹识别后,才能在手机中看到你隐藏的文件.视 ...
- ios开发怎么接入面容id_谈谈数盟可信ID的技术原理
目前市场上的APK,对于数盟可信ID的认可度已经变的很高了.从数盟的官网,96%的识别率已经在业内是很高的了.依靠如此单一的业务能够存活6年之久的公司,说明了这个技术的厉害之处. 处于对于此技术的好奇 ...
- iOS开发之接入微博三方登录时遇到的问题
1.你所访问的站点在微博认证四百,错误号:21322 重定向地址不匹配 原因:微博开放平台中的授权回调页地址与工程中不一致,需要改为一致的. WBAuthorizeRequest *request = ...
- 从零开始学 iOS 开发的15条建议
事情困难是事实,再困难的事还是要每天努力去做是更大的事实. 因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友会问我,该怎么学iOS开发.跟粉丝群的朋友交 ...
- 个人总结学 iOS 开发的15条经验
事情困难是事实,再困难的事还是要每天努力去做是更大的事实. 因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友也会纠结怎么学iOS开发. 第一部分:态度和 ...
- iOS开发(第三方使用)——讯飞语音SDK接入
去到讯飞开放平台创建应用并添加服务 下载SDK,下载时需要选上项目的,必须选上相应的项目,不能用项目1下载的SDK和项目2的app ID结合使用(估计是讯飞绑定了,所以步骤1和步骤2也不能颠倒) 拷贝 ...
- 1.15 快速更改同名变量 [原创iOS开发-Xcode教程]
原文:http://coolketang.com/staticCoding/5a990cf3128fe1189bdaf2be.html 1. 本节课将为您演示,如何快速更改同名变量或常量.首先双击打开 ...
最新文章
- android 判断ip地址合法
- hdu 3577Fast Arrangement
- 图之DFS与BFS的复杂度分析
- nashPay项目遇到的问题
- ICCV2021-PiT-池化操作不是CNN的专属,ViT说:“我也可以”;南大提出池化视觉Transformer(PiT)...
- m_Orchestrate learning system---三十一、模板和需求的关系
- arm cortex-a8 天梯图_ARM架构解析
- LWIP协议栈详解(2)_网络接口层与协议栈初始化
- matlab处理波动的数据,波动数据时间序列的分析与处理
- java查询ip归属地
- NTFS与FAT32区别大揭秘
- codeforces C. Multiples of Length
- 独角兽微盟的“AB面”
- python统计单词出现次数 青少年编程电子学会python编程等级考试二级真题解析2022年3月
- 学计算机U盘内存,用U盘启动盘快速检测电脑内存的详细教程
- 计算机学院乔丽红,用巴特莱特窗函数法设计数字FIR带通滤波器dsp课程设计.doc...
- 小米盒子 装android,当贝市场教你怎么用小米盒子安装非安卓大型游戏
- 【光伏】基于战争策略算法WSO优化光伏模型附matlab代码
- # 第一个微信小程序代码存档
- FRM 数量分析笔记之概率分布
热门文章
- window10突然变成繁体怎么办呢??
- 微信扫码小绿盒支持支付宝+微信收款教程
- 观远数据苏春园:五年AI+BI路,数智化破局中的变与不变|数据猿采访
- 小米10pro第二个摄像头下面_小米10 Pro拍照翻车?暂不支持超广角超级夜景,官方回应...
- 2021年大数据工程师面试内容包括哪些?
- 工业设计公司如何选择
- java毕业设计能源控制系统mybatis+源码+调试部署+系统+数据库+lw
- 第五人格服务器维护中怎么进游戏,第五人格怎么开始 第五人格怎么进入游戏?[多图]...
- 电脑连接公司中国电信爱wifi反复验证无法连接wifi
- Mac Excel快捷键