支付宝卡包没有惠支付包支付

视频:支付宝卡包的这个功能 一定要知道&&&&移动互联网时代,我们逐渐抛弃了繁琐笨重的纸质货币,转而使用轻便快捷的电子货币。虽然货币的形态出现了根本性的变化,但是电子货币时代我们仍需要一个“钱包”来容放金钱,支付宝就担起了这个重坦,成为了我们上的“钱包”。&&&&不过随着支付宝的迭代更新,其功能越来越丰富,时至今日支付宝的功能已不局限于钱包。我们可以通过它交话费、买理财、买电影票......&&&&得益于芝麻信用的加持,我们甚至可以通过支付宝实现类似于信用卡的功能。不仅这些,支付宝还有很多“隐藏”的小功能,用好这些小功能,没准你还能小赚一笔~一、不用网页即可查询公积金&&&&在大城市打拼的白领们都有缴纳公积金,公积金可以极大的减轻我们的生活压力。但是由于公积金要在专门的网站登陆繁琐的账号查询,这个高门槛就成了很多人逾越不过的鸿沟。有很多查询公积金的APP&&&&虽然有一些专门查询公积金的可以让我们在手机上实时的查询公积金,但是仔细想想为了一个小小的功能安装一个专门的软件,又觉得没必要。此外,当我们用第三方公积金软件的时候,我们要将我们个人的详细资料都提交上去,也增加了信息泄露的风险。支付宝可直接查询公积金&&&&事实上,有了支付宝,我们可以很轻松的查看公积金,只需在支付宝的搜索栏搜索“公积金”,打开“公积金”应用,点击授权即可快速查看公积金。二、电子钱包也能放入证件&&&&我们使用实体钱包的时候,经常在里面放入各种证件,比如身份证、银行卡、驾驶证......货币已经数字化了,这些证件就不能随之数字化吗?卡包中有“证件”&&&&其实支付宝一直致力于让我们的各种证件数字化,前几日,支付宝就上线了“电子身份证”——这是以身份证数据为基础,国家认可的法定证件及身份凭证。证件夹&&&&点击支付宝首页的“卡包”,滑倒最底部点击“证件”,即可领取电子证件。另外,我们还可以将驾驶证、行驶证、社保卡、护照等证件统统放入支付宝中。三、不用记发票抬头的发票管家&&&&因为工作或个人需要,我们经常需要开具各种类型的发票。纸质发票易丢不说,有时候还需要我们提供发票抬头,更容易造成使用上的困难。发票管家&&&&为了解决这个困难,支付宝为我们提供了“发票管家”的功能,我们可以一劳永逸的添加个人或公司的发票抬头。四、记录每个月各项花销的小账本&&&&相信很多人为了培养自己的理财意识,都有记账的习惯,有了支付宝后,我们在支付宝上的每一笔花销,支付宝都会帮我们做详细的记录。&&&&但是有时候我们会用或者现金支付,支付宝就不能做到记录了,怎么才能在支付宝上记录这些零散的消费呢?支付宝小账本功能&&&&我们可以在支付宝中搜索“记账本”,打开后就会看到我们在支付宝上的各项开支。在界面的底部点击“记一笔”即可将零散的支付宝外消费计入支付宝中。五、余额宝的兄弟余利宝&&&&说起支付宝,首先想到的就是余额宝,这个自2013年上线的货币基金几乎成了余额宝的代名词,其随转随赚的特点,使我们降低了理财的门槛。余额宝(图源:ebrun)&&&&不过随着时间的推移,余额宝的基金规模变得越来越大,已经到了不堪重负的程度。所以,支付宝采取了限购的举措,这让很多人一时手足无措——不知道钱该放到哪里去。余额宝限购&&&&其实,支付宝关上门的同时,还给我们打开了一扇窗,我们可以买余额宝的兄弟基金——余利宝,余利宝与余额宝一样,都支持支付宝余额自动转入。&&&&目前来看,余利宝的七日年华收益为4.0570%,余额宝的七日年华收益为3.9150%,从收益来看,余利宝要高于余额宝。&&&&看完这些小技巧是不是颠覆了一直以来你心中支付宝仅作为钱包的形象,其实现在支付宝早已经成了一个聚合类的软件,不论是买基金还是记帐,都可以轻松在支付宝内完成。本文属于原创文章,如若转载,请注明来源:http://mobile.zol.com.cn/688/6881351.html
主屏尺寸 4G网络
投诉欺诈商家:
天津重庆哈尔滨沈阳长春石家庄呼和浩特西安太原兰州乌鲁木齐成都昆明贵阳长沙武汉郑州济南青岛烟台合肥南京杭州东莞南宁南昌福州厦门深圳温州佛山宁波泉州惠州银川
摄影手机硬件笔电平板
下载ZOL APP秒看最新热品支付宝送红包,背后的原因究竟是什么?
稿源:人人都是产品经理
注:最近你有没有被支付宝的红包图片刷屏,有没有被支付宝红包图片炸群,有没有被热情的店老板送支付宝红包,如果有你应该读读这篇文章。文/柴继峰简单聊聊最近特别火的支付宝红包最近这段时间,支付宝红包活动算是火了一把,朋友圈,微信群都是发红包二维码的人。就连去路边摊买东西,去公司附近的快餐小店就餐,老板都会热情主动让你扫码获得红包,你不是觉老板人很好,同时觉的马老板人特别敞亮,送钱都送到家了。哦,对了!就是下面这个二维码,扫一扫就能获得一个随机红包,消费会有减免,发给你二维码的人则会获得相应的鼓励红包。支付宝红包玩法今天花了一点了时间琢磨了一下支付宝红包的玩法。基本玩法:支付宝获得红包二维码,分享发布,别人扫过后获得随机红包,然后支付消费对应抵扣金额,同时分享二维码的人获得相应的红包同等金额的鼓励,今天运气不错,别人扫我的二维码都是金额不低的红包。初级玩法:如果平时移动支付用的少,可以熟悉的两个人互相扫红包二维码,然后再次互相扫支付码(申请的商家支付才可以),顺利完成红包套现。进阶玩法:搞两个支付宝账号,自己玩左右互搏术,每天无本金套现。高级玩法:你是个网红,微博大号粉丝数量庞大百万计,卖个萌,撒个娇,然后发个支付宝红包,既给了粉丝复利,自己又有了一笔可观收入,何乐不为。支付宝为了推广移动支付也是下足了力气,既给了消费者好处,又给了商家好处,绝对比直接打广告来的更实惠也更有说服力。那这里面有哪些细思极恐的细节不过这里面要搞清楚一个核心问题,所有抵扣的红包以及鼓励红包以及你支付的那部分钱,暂时都流入了哪里?支付宝,对吧,所以,这个过程只是一些数字挂在了不同人的名下,支付宝把一部分本来用来打广告的钱划归到上千万个用户的名下,这期间又发生了什么,不论是消费者还是商家都在不知不觉并且乐此不疲为支付宝打广告。还有一点,这个比上面的还要重要,一笔本来你想用微信支付的交易,现在悄无声息的改用了支付宝,而且很有可能为了使用这笔不足 1 元的红包,你为支付宝带来了计划外几倍不止的消费资金。还有更重要的一点,这样庞大的用户群体带来的“计划外资金”很可能一定程度上即改变了用户的支付习惯,又给支付宝带来了可观的“计划外现金流”,这样庞大的“计划外现金流 ”每天产生的利息也是个可观的金额了。总结:也就是说在一定程度上支付宝的钱并没有留到其他平台上,包括它用来支付给消费者与商家的红包。与此同时,支付宝在这次活动中反而引流来了本应该流到微信平台的一大部分资金。这就像一个湖泊,水在内部在不断自我循环,这次活动相当于再引入了一条新的河流。
有好的文章希望站长之家帮助分享推广,猛戳这里
本网页浏览已超过3分钟,点击关闭或灰色背景,即可回到网页接入与使用规则
支付宝钱包支付接口开发包 2.0 标准版
附录文档 版本号:1.3
支付宝(中国)网络技术有限公司 版权所有
支付宝钱包支付接口开发包 2.0 标准版附录文档 目录
1 文档说明..............................................................................................................4 1.1 文档说明............................................................................................................................... 4 1.2 业务术语............................................................................................................................... 4
2 责任归属..............................................................................................................4
3 技术接入规则.......................................................................................................5
4 接入流程..............................................................................................................7
4.1 接入总流程...........................................................................................................................7
4.2 通知规则............................................................................................................................... 7 4.2.1 不可退款的移动快捷支付........................................................................................... 7
4.2.2 可退款的移动快捷支付 .............................................................................................. 7 5 集成流程详解.......................................................................................................8
5.1 接入前期准备........................................................................................................................ 8 5.2 开发包集成流程.................................................................................................................... 8
5.2.1 iOS ............................................................................................................................. 8 5.2.2 Android ..................................................................................................................... 17
6 测试流程规则.....................................................................................................21
7 附录...................................................................................................................22
7.1 如何获得PID与密钥............................................................................................................ 22
7.2 RSA密钥生成与使用 ........................................................................................................... 26 7.2.1 生成商户密钥........................................................................................................... 26
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 2 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
7.2.2 RSA密钥使用逻辑 .................................................................................................... 30
7.3 业务数据传递...................................................................................................................... 32
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 3 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
1 文档说明
1.1 文档说明
本文档是《支付宝钱包支付接口开发包 2.0 标准版》附录文档,它详细解释了在技
术接入与使用过程中需要注意的地方,以帮助商户避免风险产生。
阅读后如有疑问,请联系支付宝相关技术支持。
1.2 业务术语
2 责任归属
表1-1 业务术语
手机客户端以字符串形式把需要传输的数据发送给接收方的过程。
支付宝以字符串形式直接把处理结果数据返回给手机客户端。
服务器异步通知。支付宝根据得到的数据处理完成后,支付宝的服务器主动发起通知给商户
的网站,同时携带处理完成的结果信息反馈给商户网站。
带有敏感政治倾向、暴力倾向、不健康色彩或不文明的词。
文档中所涉及到的规则都是根据在接入与使用支付宝接口的过程中出现的一些主 要风险而做的防范措施,请商户予以关注。请在接入及使用支付宝接口的过程中, 严格依照支付宝提供的接口技术文档(支付宝钱包支付接口开发包 2.0 标准版.pdf)、 代码示例、本文档(支付宝钱包支付接口开发包 2.0 标准版接入与使用规则)等接 口资料,否则由此导致的风险以及资金损失或者扩大情形需商户自行承担。
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 4 页
支付宝钱包支付接口开发包 2.0 标准版附录文档 3 技术接入规则
表3-1 技术接入规则
配置的合作者身份 ID 与安全校验码 key 必须保证与签 约信息匹配
防止接口无法正常使用或出现资
必须保护合作者身份 ID 与安全校验码 key 的隐私性
防止签约的账号信息被盗用,导致 资金受损、被他人恶意利用等。
测试完毕后,要把测试账号立刻更换成签约账号。
使用测试账号时,手续费按照 3% 扣除。
商户必须以 DNS 解析的方式访问支付宝接口,不要设 置 DNS cache,不要绑定支付宝 IP。如果为了商户自 身安全必须绑定支付宝 IP 时,必须向支付宝的技术支 持人员备案。
支付宝 IP 地址一旦变更,会导致 商户无法请求或访问支付宝,致使 商户业务直接不可用。
在对请求的参数做签名时,这些参数必须来源于请求参 数列表,并且除去列表中的参数 sign、sign_type。
避免接口无法正常使用
在对请求的参数做签名时,对于请求参数列表中那些可 空的参数,如果选择使用它们,那么这些参数的参数值 必须不能为空或空值。
避免报异常错误,各种错误码需参 考错误码列表
在请求参数列表中,不可空的参数必须配置。
避免接口无法正常使用
在请求参数列表中,可空的但需要多选一的多个参数
中,必须配置至少一个。
避免接口无法正常使用
必须按照请求参数列表中各参数的格式要求配置
避免接口无法正常使用
必须设置请求参数_input_charset(编码格式),即该 参数不能为空,并让该参数加入签名运算。而且只能设 置其值为 utf-8,即本产品不支持 GBK 编码格式。
避免报异常错误,如:签名不正确。
seller 是收款时的支付宝账号,需要与 partner 对应的 支付宝账号为同一个,也就是说收款支付宝账号必须是 签约时的支付宝账号。
避免签约支付宝账号出现资金受
签名方式仅支持 RSA
避免签名不成功
pkcs8 编码
移动快捷支付要求商户私钥需要做 pkcs8 编码以支持 更高手机系统版本,php 服务器可不需要做。
调用 RSA 密钥时,如果是通过 pem 文件解析方式,则无需 pkcs8 编码。
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 5 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
服务端:用于生成提交参数,以及处理支付宝的异步通 知返回。
开发包由服务端和客户端构成,为 了交互信息安全通常把所需参数 放在服务端,当客户端有需要时去 服务端获取。
客户端:构建表单参数提交到支付宝。
支付参数提交时,需要组装订单信息 orderInfo,其中 参数以 key=&value&形式呈现,参数之间以&&&分割, 获取 Alipay 支付对象调用支付。
避免请求支付宝时报错,错误码为 签名不正确。
必须使用 https 协议
避免接口无法正常使用
通知返回验证
开发包支付接口的服务器异步通知中,在对通知的参数 做签名时,这些参数必须来源于支付宝通知回来的参 数,并且除去列表中的参数 sign,先对这些参数根据 &参数名=参数值&的格式,由字母 a 到 z 的顺序进行 排序,再依照&参数名 1=参数值 1&参数名 2=参数值 2&...&参数名 N=参数值 N&的规则进行拼接,得到的 签名结果与获取到的参数 sign 值做比较。
验证返回的签名
返回数据处理
支付宝主动发送通知,当商户接收到通知数据后必须给 支付宝返回&success&字符串,不允许返回其他多余 字符。
如果商户返回给支付宝的信息不 是&success&,支付宝最多重复 发送 7 次通知。
必须保证设置的通知路径互联网上能访问得到,且访问 顺畅。
避免接收不到支付宝发送的通知
必须对返回的数据进行处理
以便商户能够了解接口的使用情
况,以及进行商户的后续业务操
在服务器异步通知页面文件中,需保证商户的所有业务 全部运行完成,才能执行打印 success 的动作。
避免异步通知不正常,如收不到通 知或业务处理没有完成却告诉支 付宝系统已经处理完成。
建议每一次业务操作需以日志形式记录到商户网站的
日志操作数据库中,做好通知重复判断机制。
用来在必要时检查或跟踪业务处
自主编写接口 代码规则
如果不使用支付宝提供的代码示例来集成接口,那么必 须根据技术文档中签名机制和通知返回数据处理章节 及本文档的技术接入规则、接口使用规则、测试流程规 则,来编写符合商户网站项目的接口代码。
避免接口无法正常使用
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 6 页
支付宝钱包支付接口开发包 2.0 标准版附录文档 4 接入流程
4.1 接入总流程
4.2 通知规则
4.2.1 不可退款的移动快捷支付
图4-1 开发包接入总流程
移动快捷支付的异步通知存在两个通知交易状态(trade_status)。
&第一个状态值是 WAIT_BUYER_PAY:表示等待付款,商户可根据自己的业
务逻辑需求做相应操作,处理完业务逻辑后须返回 SUCCESS 字符串给支付
&第二个状态值是 TRADE_FINISHED:表示交易成功完成,此状态表示该笔
订单支付宝端已经支付成功,商户根据此状态做相应的业务逻辑操作,最后
同样需返回 SUCCESS 字符串给支付宝。
4.2.2 可退款的移动快捷支付
可退款的异步通知与不可退款的机制一致,第一个状态(WAIT_BUYER_PAY)相
同,第二个状态为 TRADE_SUCCESS,在这个状态下商户可做相应业务逻辑操作,
并返回 SUCCESS。第三个状态为 TRADE_FINISHED,表示订单完结不可再退款。
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 7 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
是否退手续费通知判断:
退手续费:单笔交易完成退款操作支付宝异步通知发送 TRADE_CLOSE 状
态(交易关闭),此交易状态需支付宝后台配置单独开启,默认不开;
不退手续费:单笔交易完成退款操作支付宝异步通知发送
TRADE_SUCCESS 状态,并在订单完成支付后的三个月发送
TRADE_FINISHED 状态。
5 集成流程详解
5.1 接入前期准备
接入前期准备工作包括商户签约和密钥配置,已完成商户可略过。
5.2 开发包集成流程 5.2.1 iOS
解压接口压缩文件(文件名是 WS_MOBILE_PAY_SDK_BASE.zip),找到 iOS 的压缩文件(文件名是支付宝钱包支付开发包标准版(iOS).zip)。
1. 导入代码
步骤1: 启动IDE(如Xcode),把iOS包中的压缩文件中以下文件拷贝到项目文件夹下,
并导入到项目工程中。
依赖添加完毕后,如下图所示结构。
AlipaySDK.bundle
AlipaySDK.framework
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 8 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
图5-1 添加依赖
步骤2: 在需要调用AlipaySDK的文件中,增加头文件引用。
#import &AlipaySDK/AlipaySDK.h&
步骤3: 配置请求信息。
Order *order = [[Order alloc] init];
order.partner =
order.seller =
order.tradeNO = [self generateTradeNO]; //订单ID(由商家□自□行制定)
order.productName = product. //商品标题
order.productDescription = product. //商品描述
order.amount = [NSString stringWithFormat:@"%.2f",product.price]; //商
order.notifyURL = @"http://www.xxx.com"; //回调URL
order.service = @"mobile.securitypay.pay";
order.paymentType = @"1";
order.inputCharset = @"utf-8";
order.itBPay = @"30m";
//应用注册scheme,在AlixPayDemo-Info.plist定义URL types NSString *appScheme = @"alisdkdemo";
//将商品信息拼接成字符串
NSString *orderSpec = [order description];
NSLog(@"orderSpec = %@",orderSpec);
//获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循 RSA 签名规范,
并将签名字符串 base64 编码和 UrlEncode
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3
支付宝钱包支付接口开发包 2.0 标准版附录文档
id&DataSigner& signer = CreateRSADataSigner(privateKey);
NSString *signedString = [signer signString:orderSpec];
//将签名成功字符串格式化为订单字符串,请严格按照该格式
NSString *orderString =
if (signedString != nil) {
orderString = [NSString
stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
orderSpec, signedString, @"RSA"];
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
//【callback 处理支付结果】
NSLog(@"reslut = %@",resultDic);
[tableView deselectRowAtIndexPath:indexPath animated:YES]; }
详细可参见 Demo 中示例文件
AliSDKDemo\APViewController.h AliSDKDemo\APViewController.m AliSDKDemo\Order.h
AliSDKDemo\Order.m
步骤4: 配置支付宝客户端返回url处理方法。
(外部存在支付包钱包,支付宝钱包将处理结果通过 url 返回。)
如示例 AliSDKDemo\APAppDelegate.m 文件中,增加引用代码:
#import &AlipaySDK/AlipaySDK.h&
在@implementation AppDelegate 中增加如下代码:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
//如果极简开发包不可用,会跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给开
if ([url.host isEqualToString:@"safepay"]) {
[[AlipaySDK defaultService] processOrderWithPaymentResult:url
standbyCallback:^(NSDictionary *resultDic) {
//【由于在跳转支付宝客户端支付的过程中,商户 app 在后台很可能被系统 kill 了,所以 pay 接口的 callback 就会失效,请商户对 standbyCallback 返回的回调结果进行处理,就是在这个方
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3
支付宝钱包支付接口开发包 2.0 标准版附录文档
法里面处理跟 callback 一样的逻辑】 NSLog(@"result = %@",resultDic);
if ([url.host isEqualToString:@"platformapi"]){//支付宝钱包快登授权返回 authCode
[[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
//【由于在跳转支付宝客户端支付的过程中,商户 app 在后台很可能被系统 kill 了, 所以 pay 接口的 callback 就会失效,请商户对 standbyCallback 返回的回调结果进行处理,就 是在这个方法里面处理跟 callback 一样的逻辑】
NSLog(@"result = %@",resultDic);
return YES; }
2. 针对Demo的运行注意
(1) 关于签名代码问题
&AliSDKDemo\Util 及下面所有文件
&AliSDKDemo\openssl 及下面所有文件
&libcrypto.a
这些文件是为示例签名所在客户端本地使用。出于安全考虑,请商户尽量把私钥保 存在服务端,在服务端进行签名验签。
(2) 如果遇到运行后报错,类似于以下提示信息:
那么需要打开报错了的文件,增加头文件。
#import &Foundation/Foundation.h&
(3) 如果商户要在某个文件中使用支付宝的开发包类库,需增加引用头文件。 #import &AlipaySDK/AlipaySDK.h&
(4) 点击项目名称,点击&Build Settings&选项卡,在搜索框中,以关键字&search& 搜索,对&Header Search Paths&增加头文件路径:$(SRCROOT)/项目名 称。如果头文件信息已增加,可不必再增加。
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 11 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
图5-2 增加头文件信息
(5) 点击项目名称,点击&Build Phases&选项卡,在&Link Binary with Librarles& 选项中,新增&AlipaySDK.framework&和&SystemConfiguration.framework& 两个系统库文件。如果商户项目中已有这两个库文件,可不必再增加。
图5-3 增加系统库文件
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 12 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
(6) 点击项目名称,点击&Info&选项卡,在&URL Types&选项中,点击&+&, 在&URL Schemes&中输入&alisdkdemo&。&alisdkdemo&来自于文件 &APViewController.m&的 NSString *appScheme = @"alisdkdemo";。
图5-4 配置 URL Schemes
3. 配置基本信息 打开&APViewController.m&文件,对以下三个参数进行编辑
表5-1 IOS基本信息配置
NSString *partner = @"";
NSString *seller = @"";
NSString *privateKey = @"";
合作身份者ID,以 2088 开头由 16 位纯数字组成的字符串。请参考&7.1 如何获得PID与 密钥&。
支付宝收款账号,手机号码或邮箱格式。
private_key
商户方的私钥,pkcs8 格式。请参考&7.2 RSA密钥生成与使用&。
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 13 页
支付宝钱包支付接口开发包 2.0 标准版附录文档 注意:
这些参数配置是为客户端签名功能服务的,仅作为示例使用。商户在接入支付宝产 品时,请把这些信息通过商户项目自己的服务端传递。
4. 代码示例运行逻辑
步骤1: &调用 order.m 里的函数 description 将商品信息拼接成字符串作为待签名字符串,
步骤2: &使用类CreateRSADataSigner,调用signString签名函数做签名,如:
步骤3: &把签名结果赋值给参数 sign,并把 sign 加入之前的待签名数组中,此时得到的便 是要请求给支付宝的全部数据。
"partner=\"3491\"&seller_id=\"3491\"&out_trade_no =\"YR2VGG3G1I31XDZ\"&subject=\"1\"&body=\" 我 是 测 试 数 据 \"&total_fee=\"0.02\"&notify_url=\"http://www.xxx.com \"&service=\"mobile.securitypay.pay\"&payment_type=\"1\"&_input_charset=\ "utf-8\"&it_b_pay=\"30m\"&show_url=\"m.alipay.com\""
"GsSZgPloF1vn52XAItRAldwQAbzIgkDyByCxMfTZG%2FMapRoyrNIJo4U1LUGjHp6gdBZ7U8 jA1kljLPqkeGv8MZigd3kH25V0UK3Jc3C94Ngxm5S%2Fz5QsNr6wnqNY9sx%2Bw6DqNdEQnnk s7PKvvU0zgsynip50lAhJmflmfHvp%2Bgk%3D"
"partner=\"3491\"&seller_id=\"3491\"&out_trade_no =\"YR2VGG3G1I31XDZ\"&subject=\"1\"&body=\" 我 是 测 试 数 据 \"&total_fee=\"0.02\"&notify_url=\"http://www.xxx.com\"&service=\"mobile. securitypay.pay\"&payment_type=\"1\"&_input_charset=\"utf-8\"&it_b_pay=\" 30m\"&show_url=\"m.alipay.com\"&sign=\"GsSZgPloF1vn52XAItRAldwQAbzIgkDyBy CxMfTZG%2FMapRoyrNIJo4U1LUGjHp6gdBZ7U8jA1kljLPqkeGv8MZigd3kH25V0UK3Jc3C94 Ngxm5S%2Fz5QsNr6wnqNY9sx%2Bw6DqNdEQnnks7PKvvU0zgsynip50lAhJmflmfHvp%2Bgk% 3D\"&sign_type=\"RSA\""
步骤4: 调用(AlipaySDK *)defaultService 类下面的支付接口函数,唤起支付宝支付页面。
appScheme 为 app 在 info.plist 注册的 scheme。
(void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 14 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
图5-5 支付宝支付页面 后面的动作全由买家在支付宝收银台中操作完成。如果设备中有支付宝客户端,会
优先调用支付宝客户端进行支付,支付完成后会重新唤起商户 app。
步骤5: 当这笔交易被买家支付成功后支付宝收银台上显示该笔交易成功,并提示用户&返 回&。此时在 APAppDelegate.m 的 -
(BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 中调 用获取返回数据的代码:
[[AlipaySDK defaultService]
processOrderWithPaymentResult:url
standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);//返回的支付结果
//【由于在跳转支付宝客户端支付的过程中,商户 app 在后台很可能被系统 kill 了,所以 pay 接
口的 callback 就会失效,请商户对 standbyCallback 返回的回调结果进行处理,就是在这个方法
里面处理跟 callback 一样的逻辑】
拿到返回数据:
点取消后返回
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 15 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
对其做 URLDecode
点确认后返回
2%E7%94%A8%E6%88%B7%E4%B8%AD%E9%80%94%E5%8F%96%E6%B6%88%22,%22ResultStatu
s%22:%%7D,%22requestType%22:%22safepay%22%7D"
"alisdkdemo://safepay/?{"memo":{"result":"","memo":" 用 户 中 途 取 消
","ResultStatus":"6001"},"requestType":"safepay"}"
"alisdkdemo://safepay/?%7B%22memo%22:%7B%22result%22:%22partner=%5C%22208
1%5C%22&seller_id=%5C%C%22&out_trade_no=%
5C%22QU6ZOD85K4HVQFN%5C%22&subject=%5C%221%5C%22&body=%5C%22%E6%88%91%E6%
98%AF%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%5C%22&total_fee=%5C%220.02%5C%2
2&notify_url=%5C%22http:%5C/%5C/www.xxx.com%5C%22&service=%5C%22mobile.se
curitypay.pay%5C%22&payment_type=%5C%221%5C%22&_input_charset=%5C%22utf-8
%5C%22&it_b_pay=%5C%&show_url=%5C%22m.alipay.com%5C%22&success
=%5C%22true%5C%22&sign_type=%5C%22RSA%5C%22&sign=%5C%22pg16DPA%5C/cIRg1iU
FCl8lYZG54de+kfw+vCj32hGWye97isZ1A4bW6RNaDXHhZXVaI5Vk2YDxhNUl85EHRd+EL7%5
C/+ogQTnsaEHl+D13PuZExIXRKGBnkYqaNV6kH6hDygnf5IOtoojHWLQyem7oRBVzB0vlF%5C
/+YGFpzFHZyTVpM8=%5C%22%22,%22memo%22:%22%22,%22ResultStatus%22:%
2%7D,%22requestType%22:%22safepay%22%7D"
对其做 URLDecode
"alisdkdemo://safepay/?{"memo":{"result":"partner=\"3491\"&se
ller_id=\"3491\"&out_trade_no=\"QU6ZOD85K4HVQFN\"&subject=\"1
\"&body=\" 我 是 测 试 数 据
\"&total_fee=\"0.02\"&notify_url=\"http:\/\/www.xxx.com\"&service=\"mobil
e.securitypay.pay\"&payment_type=\"1\"&_input_charset=\"utf-8\"&it_b_pay=
\"30m\"&show_url=\"m.alipay.com\"&success=\"true\"&sign_type=\"RSA\"&sign
=\"pg16DPA\/cIRg1iUFCl8lYZG54de+kfw+vCj32hGWye97isZ1A4bW6RNaDXHhZXVaI5Vk2
YDxhNUl85EHRd+EL7\/+ogQTnsaEHl+D13PuZExIXRKGBnkYqaNV6kH6hDygnf5IOtoojHWLQ
yem7oRBVzB0vlF\/+YGFpzFHZyTVpM8=\"","memo":"","ResultStatus":"9000"},"req
uestType":"safepay"}"
之后,对这些数据做处理。
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3
支付宝钱包支付接口开发包 2.0 标准版附录文档 注意:
&由于在跳转支付宝客户端支付的过程中,商户app在后台很可能被系统kill了, 所以 pay 接口的 callback 就会失效,请商户对 standbyCallback 返回的回调结 果进行处理;
&同步返回数据时,建议通过服务端的验签功能代码做验签处理,之后再对返回 的数据做业务逻辑处理;
&须以服务器异步通知的结果数据为准,并对其做业务逻辑处理;
SDK付款有两种模式:如果外部存在支付宝钱包,则直接跳转到支付宝钱包付
款;不存在的场景下,在 SDK 内部进行 H5 支付。测试同学需要关注这两类测
5.2.2 Android
解压接口压缩文件(文件名是 WS_MOBILE_PAY_SDK_BASE.zip),找到安卓
的压缩文件(文件名是支付宝钱包支付开发包标准版(Android).zip)。标准开发包
以 jar 包方式提供给商户应用工程集成,打开 alipay-sdk-common 文件夹获取
alipaySDK-.jar,后 8 位数字标识发布日期,商户可根据日期时间判断
SDK 版本的新旧。
2. 导入开发资源
(1) &将 alipaySDK-.jar 包放入商户应用工程的 libs 目录下,如下图。
图5-6 libs目录结构
(2) &进入商户应用工程的 Java Build Path,将 libs 目录下的
alipaySDK-.jar 导入,如下图。
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 17 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
图5-7 导入 jar
(3) 选中 Order and Export,勾选 alipaySDK-.jar,如下图。
图5-8 勾选3个jar包
3. 修改Manifest
在商户应用工程的 AndroidManifest.xml 文件里面添加声明:
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind" &
&/activity&
android:name="com.alipay.sdk.auth.AuthActivity" android:configChanges="orientation|keyboardHidden|navigation" android:exported="false"
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3
支付宝钱包支付接口开发包 2.0 标准版附录文档 和权限声明:
4. 添加混淆规则
在商户应用工程的 proguard-project.txt 里添加以下相关规则:
android:screenOrientation="behind" &
&/activity&
&uses-permission android:name="android.permission.INTERNET" /& &uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /& &uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /& &uses-permission android:name="android.permission.READ_PHONE_STATE" /& &uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
-libraryjars libs/alipaySDK-.jar
-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}
至此,开发包开发资源导入完成。
5. 订单数据生成
在调用开发包支付时需要提交订单信息 info,其中参数以 key=&value&形式呈现,
参数之间以&&&分隔,所有参数不可缺。
6. 支付接口调用
需要在新线程中调用支付接口。(可参考 alipay_demo 实现)
获取 PayTask 支付对象调用支付,代码示例:
finalStringorderInfo= //订单信息
Runnable payRunnable = new Runnable() {
public void run() {
PayTask alipay = new PayTask(DemoActivity.this);
String result = alipay.pay(orderInfo);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 19 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
mHandler.sendMessage(msg); }
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();
7. 支付结果获取和处理
调用 pay 方法支付后,将通过 2 种途径获得支付结果:
商户应用客户端通过当前调用支付的 Activity 的 Handler 对象,通过它的回调函数
获取支付结果。(可参考 alipay_demo 实现)
商户需要提供一个 http 协议的接口,包含在参数里传递给快捷支付,即 notify_url。
支付宝服务器在支付完成后,会以 POST 方式调用 notify_url,以 xml 数据格式传
输支付结果。
8. 查询有效账户接口调用
调用 PayTask 对象的 checkAccountIfExist()方法查询。(可参考 alipay_demo 实
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
Result result = new Result((String) msg.obj);
Toast.makeText(DemoActivity.this, result.getResult(),
Toast.LENGTH_LONG).show();
Runnable checkRunnable = new Runnable() {
public void run() {
PayTask payTask = new PayTask(DemoActivity.this);
boolean isExist = payTask.checkAccountIfExist();
Message msg = new Message();
msg.what = SDK_CHECK_FLAG;
msg.obj = isE
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 20 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
mHandler.sendMessage(msg); }
Thread checkThread = new Thread(checkRunnable);
checkThread.start();
9. 获取当前开发包版本号
调用 PayTask 对象的 getVersion()方法查询。
SDK 付款有两种模式:如果外部存在支付宝钱包,则直接跳转到支付宝钱包付款;
没有支付宝钱包的场景下,将触发在 SDK 内部进行 H5 支付。商户在测试集成支
付是否正常的时候,建议测试(存在、没有)支付宝钱包的场景。对于测试过程中
出现的异常,请联系支付宝技术支持进行处理。
6 测试流程规则
表6-1 测试流程规则
PayTask payTask = new PayTask(activity);
String version = payTask.getVersion();
第一步:在本机单独对这个 接口进行调试
正常获取授权令牌 正常唤起客户端支付
仅仅把接口配置好,不要放在商户 的正式 app 项目中。
第二步:在服务器上单独对 这个接口进行调试
正常获取授权令牌 正常唤起客户端支付 alixpay同步返回
服务器异步通知返回
本机调试没有问题后,再放入服务
器中调试。
第三步:接口融合到app项
把调试好的接口与商户 app 项目
的业务流程进行衔接和融合
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 21 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
第四步:在本机对融合后的
app 项目进行调试
整个业务操作流程
正常唤起客户端支付
alixpay同步返回
服务器异步通知返回
业务逻辑后续的执行
在本机调试衔接到 app 项目,并
做好客户端和服务端的区分后的
使用一个账号做测试的时候,第一次走支付流程会出现授权页面,在设置过免密额
度以及短信校验后不会再出现授权页面。
7.1 如何获得PID与密钥
步骤1: 使用签约支付宝账号登录支付宝网站,点击&签约管理&栏目下的&签约订单&。
图7-1 我的商家服务
步骤2: 在跳转后的页面中点击&查看 PID|KEY &,在新打开的页面中
(https://b.alipay.com/order/pidAndKey.htm ),可查看到签约支付宝账号、合作
者身份ID(PID)。
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 22 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
图7-2 查询 PID
步骤3: 输入支付密码,查询key、支付宝公钥。
图7-3 查询 Key
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 23 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
输入支付密码需要安装数字证书或支付盾。
步骤4: 上传RSA公钥
在&合作伙伴密钥管理&下,点击&RSA 加密&后的&添加密钥&,把自己的公
钥复制进去,如下图所示。
图7-4 上传 RSA 公钥
上传的公钥是一行格式,不允许有注释、空格、换行等!
转换前 pem 文件格式:
转换后的字符串:
-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWiDVZ7XYxa4CQsZoB3n7bfxL DkeGKjyQPt2FUtm4TWX9OYrd523iw6UUqnQ+Evfw88JgRnhyXadp+vnPKP7unorm YQAfsM/CxzrfMoVdtwSiGtIJB4pfyRXjA+KL8nIa2hdQy5nLfgPVGZN4WidfUY/Q pkddCVXnZ4bAUaQjXQIDAQAB
-----END PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWiDVZ7XYxa4CQsZoB3n7bfxLDkeGKjyQP
t2FUtm4TWX9OYrd523iw6UUqnQ+Evfw88JgRnhyXadp+vnPKP7unormYQAfsM/CxzrfMoVdtw
SiGtIJB4pfyRXjA+KL8nIa2hdQy5nLfgPVGZN4WidfUY/QpkddCVXnZ4bAUaQjXQIDAQAB
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3
支付宝钱包支付接口开发包 2.0 标准版附录文档
步骤5: 点击&确认上传&,提示:上传成功,说明已经成功上传。
图7-5 上传成功提示
如果需要修改公钥,只需要把新的公钥复制进去,点击&修改&即可!
步骤6: 查看支付宝公钥:点击&RSA 加密&后面的&查看支付宝公钥&即可查看到对应
的支付宝公钥。
图7-6 查看支付宝公钥
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 25 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
7.2 RSA密钥生成与使用
7.2.1 生成商户密钥
1. 打开openssl密钥生成软件
打开 openssl 文件夹下的 bin 文件夹,执行 openssl.exe 文件,如下图:
图7-7 执行 openssl.exe 文件
2. 生成RSA私钥
输入&genrsa -out rsa_private_key.pem 1024&命令,回车后,在当前 bin 文件目
录中会新增一个 rsa_private_key.pem 文件,其文件为原始的商户私钥(请妥善保
存该文件,PHP 开发语言中需要使用该文件),以下为命令正确执行截图:
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 26 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
3. 生成RSA公钥
图7-8 生成 RSA 私钥
输入&rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem&命令回车
后,在当前 bin 文件目录中会新增一个 rsa_public_key.pem 文件,其文件为原始
的商户公钥(请妥善保存该文件,PHP 开发语言中需要使用该文件),以下为命
令正确执行截图:
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 27 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
图7-9 生成 RSA 公钥
4. 生成PKCS8 编码的私钥
输入命令&pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM
-nocrypt&并回车,当前界面中会直接显示出生成结果:
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 28 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
图7-10 生成 PKCS8 编码的私钥
右键点击 openssl 窗口上边边缘,选择&编辑&标记&,选中要复制的文字:
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 29 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
图7-11 选中要复制的文字
此时继续右键点击 openssl 窗口上边边缘,选择&编辑&复制&,把复制的内容粘
贴进一个新的记事本中,可随意命名,只要知道这个是 PKCS8 格式的私钥即可(请
妥善保存该文件)。
7.2.2 RSA密钥使用逻辑
RSA 密钥使用逻辑:
商户在使用 RSA 签名方式的支付宝接口时,真正会用到的密钥是商户私钥与支付
宝公钥。商户上传公钥给支付宝,支付宝把公钥给商户,是公钥互换的操作。这就
使得商户使用自己的私钥做签名时,支付宝端会根据商户上传的公钥做验证签名。
商户使用支付宝公钥做验证签名时,同理,也是因为支付宝用支付宝私钥做了签名。
1. PHP开发语言使用方法
key 文件夹里面须存放.pem 后缀名的商户私钥、支付宝公钥两个文件。
商户的私钥
& 不需要对刚生成的(原始的)私钥做 pkcs8 编码;
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3 第 30 页
支付宝钱包支付接口开发包 2.0 标准版附录文档
& 不需要去掉去掉&-----BEGIN PUBLIC KEY-----&、&-----END PUBLIC
KEY-----&;
& 简言之,只要维持刚生成出来的私钥的内容即可。
支付宝公钥
支付宝的 RSA 公钥为:
(1) &把支付宝的公钥复制到新建的记事本中,并对该记事本命名为
&alipay_public_key.txt&;
(2) &去掉这串字符串中的回车、换行、空格,变成只有一行文字;
(3) &在这串支付宝公钥字符串的头尾部分,分别增加&-----BEGIN PUBLIC
KEY-----&、&-----END PUBLIC KEY-----&这两条文字;
(4) &切割这串支付宝公钥字符串,第一行、第二行、第三行分别是 64 个字符,第
四行是 24 个字符,切割后的格式与商户刚生成的公钥格式一致即可,如下图:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRA
FljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQE
B/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5Ksi
NG9zpgmLCUYuLkxpLQIDAQAB
-----END PUBLIC KEY-----
图7-12 支付宝公钥示意图
(5) 保存该记事本,并改变后缀名为.pem。
2. JAVA和ASP.NET(C#)开发语言使用方法
商户的私钥
& 必须保证只有一行文字,即:没有回车、换行、空格等;
& 需对刚生成的(原始的)私钥做 pkcs8 编码;
支付宝(中国)网络技术有限公司 版权所有| 版本:1.3
支付宝钱包支付接口开发包 2.0 标准版附录文档
& 编码完成后,复制该段私钥,并去掉该段里面的回车、换行、空格、
&-----BEGIN RSA PRIVATE KEY-----&、&-----END RSA PRIVATE
KEY-----&。
支付宝公钥
支付宝的 RSA 公钥为:
去掉这串字符串中的回车、换行、空格,必须保证只有一行文字。
7.3 业务数据传递
支付宝提供的业务参数为支付宝需要商户传递过来的数据要求。商户只需要根据自 己的业务需求,在业务逻辑代码运行时把这些动态数据以赋值给变量的形式,再通 过支付宝接口本身的接口逻辑,传递给支付宝系统,让支付宝系统可识别。
举例说明,商户要把某笔订单的数据传递给支付宝。那么商户需要先根据支付宝的 参数要求,从自己的下单系统中拿到付款总金额(total_fee)、商户的订单号 (out_trade_no)、订单名称(subject)等数据,再把这些数据一个一个以值的形 式赋给对应的变量。再通过代码逻辑,把变量组合及加工成一次可以发送给支付宝 的请求。&
阅读(...) 评论()

我要回帖

更多关于 和包支付和支付宝 的文章

 

随机推荐