IOS 第三方支付的使用:支付宝
总结一下支付宝iOS使用步骤:
1 第三方支付:支付宝
使用过程:
1.1 向支付宝申请支付宝使用权限。
这个步骤一般是以公司的名义,填写各种公司信息,最后审核通过。
1.2 获取关键参数
selleder_ID
parter_ID
加密信息
1.3 下载支付宝集成SDK(无线移动版)放到我们的应用中
1.4 开始编写代码
1.4.1 编辑商品信息
AlixPayOrder *order = [[AlixPayOrder alloc] init];
order.productName = 商品名称;
order.productDescription = 商品描述;
order.partner = 合作者身份ID;
order.seller = 卖家支付宝账号;(卖家唯一标示)
order.amount = 支付金额;
1.4.2 订单信息加密
首先利用商户私钥生成一个对象,然后用这个对象加密订单信息。
id<DataSigner>signer = CreateRSADataSigner(商户私钥);
NSString *signedString = [signer signString:[order description]];
1.4.3 组合订单信息
NSString *orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
[order description], signedString, @"RSA"];
1.4.4 开始进行订单支付
参数1 订单信息
参数2 网页支付 回调APPscheme
参数3 回调方法
参数4 回调对象
[AlixLibService payOrder:orderString AndScheme:@"tuangou" seletor:@selector(getResult:)target:self];
1.4.5 支付完成处理
支付完成处理分为两种情况,一种是网页支付处理,一种是客户端支付处理
如果是客户端版:(意思就是从支付宝的客户端跳转回这个App)
在AppDelegate中使用回调方法:
- (BOOL)application:(UIApplication*)application openURL:(NSURL *)urlsourceApplication:(NSString*)sourceApplication annotation:(id)annotation
在这里处理相应的逻辑:
支付结果验证逻辑可以参考支付宝的SDKdemo,基本不用修改神马。
AlixPayResult * result = nil;
if (url != nil && [[urlhost] compare:@"safepay"] == 0) {
NSString * query = [[url query] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
#if ! __has_feature(objc_arc)
result = [[[AlixPayResultalloc] initWithString:query] autorelease];
#else
result = [[AlixPayResult alloc] initWithString:query];
#endif
}
if (result.statusCode == 9000) {
将支付时候的私钥与现在的公钥进行配对。
id<DataVerifier> verifier = CreateRSADataVerifier(AlipayPubKey);
if ([verifier verifyString:result.resultString withSign:result.signString]) {
验证信息有效
} else { // 失败
}
} else {
// 失败
}
return YES;
如果是网页版 回调方法参考1.4.4. 这里就不多说了。处理逻辑参考上面的代码。有一点需要注意:URL Scheme:
Target info中添加这个Scheme
IOS 第三方支付的使用:支付宝的更多相关文章
- 李洪强iOS开发支付集成之支付宝支付
iOS开发支付集成之支付宝支付 下载支付宝SDK 首先是开发包下载,还是比较难发现的,网上以前文章中的链接都打不开,我找了好久才找到的.最新的地址在这里(注意的是下载出来的SDK包里面并没有传说中的开 ...
- iOS开发支付集成之支付宝支付
项目中要用到支付功能,需要支付宝,微信,银联三大支付,所以打算总结一下,写两篇文章,方便以后的查阅, 大家在做的时候也能稍微参考下,用到的地方避免再次被坑.这是第二篇支付宝集成,第一篇银联支付在这里. ...
- iOS第三方支付集成
支付宝(alipay)和微信支付(Wechat Pay) 支付宝: 一.总体流程 (1)先与支付宝签约.获得商户ID(partner)和账号ID(seller)(注冊app⽤用) (2)下载对应的公钥 ...
- iOS第三方支付(支付宝)
使用支付宝进行一个完整的支付功能,大致有以下步骤: 与支付宝签约,获得商户ID(partner)和账号ID(seller) 下载相应的公钥私钥文件(加密签名用) 下载支付宝SDK 生成订单信息 调用支 ...
- iOS第三方支付-支付宝支付
处理手机中有无支付宝的情况支付宝调用接口: - (void)payOrder:(NSString *)orderStr fromScheme:(NSString *)schemeStr ...
- iOS第三方支付-微信支付
微信支付用到的文件 1.首先支持非arc 2.设置URL types 3.AppDelegate - (BOOL)application:(UIApplication *)application di ...
- iOS第三方支付-银联支付
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #import "UPPayPluginDeleg ...
- 第三方支付过程中session失效问题
第三方支付过程中session失效问题 时间 2015-05-13 12:36:23 IT社区推荐资讯 原文 http://itindex.net/detail/53436-session-问题 ...
- 第三方支付设计——自有账户支付
笔者在上一篇blog<<第三方支付架构设计之-帐户体系>>中已经稍微全面的阐述了第三方支付架构设计中的账户体系,在该体系中,其实涉及了各种各样的账户:银行侧账户(包括用户在银行 ...
随机推荐
- Axiom3D:Ogre射线与点,线,面相交,鼠标操作3维空间.
在第一篇网络分解成点,线,面.第二篇分别点以球形,线以圆柱,面分别以MergerBatch整合批次显示.因为整合批次显示后,相应的点,线,面不能以Ogre本身的射线来选取,因为整合后,以点举例,多个点 ...
- 如何进行Java EE性能测试与调优
性能测试的目标 性能测试不同于功能测试,不是对与错的检验,而是快与慢的衡量.在进行真正的性能测试之前要先搞清楚目标: 1. 在确定的硬件条件下,可以支持的并发数越大越好,响应时间越快越好.具体需要达到 ...
- (笔记)Linux下system()函数的深度理解(整理)
注:从其它地方转的非常好的一篇文章,值得深究! 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数 ...
- 【转载】Linux命令行常用光标移动快捷键
声明:下面内容来自:http://www.linuxidc.com/Linux/2016-10/136027.htm, 来源:linux社区 作者:aslongas 我转载于此处,为了作个笔记,方便 ...
- Solr系列三:solr索引详解(Schema介绍、字段定义详解、Schema API 介绍)
一.Schema介绍 1. Schema 是什么? Schema:模式,是集合/内核中字段的定义,让solr知道集合/内核包含哪些字段.字段的数据类型.字段该索引存储. 2. Schema 的定义方式 ...
- e620. Activating a Keystroke When Any Component in the Window Has Focus
Normally, a keystroke registered to a component is activated when the component has the focus. This ...
- [深入理解Android卷一全文-第三章]深入理解init
因为<深入理解Android 卷一>和<深入理解Android卷二>不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容. ...
- Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(转)
Dubbo与Zookeeper.Spring整合使用 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spri ...
- 正则表达式awk
以冒号: 为分隔符打印出来:打印第一段$1: -F 分隔符 [root@localhost awk]# awk -F ':' '{print $1}' test.txt root bin daemo ...
- UFLDL教程练习(exercise)答案(2)
主成分分析与白化,这部分很简单,当然,其实是用Matlab比较简单,要是自己写SVD分解算法,足够研究好几个月的了.下面是我自己实现的练习答案,不保证完全正确,不过结果和网站上面给出的基本一致. 1. ...