A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 殷凯老师 中级黑马   /  2016-7-9 18:31  /  7803 人查看  /  6 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 殷凯老师 于 2016-7-9 18:28 编辑

移动支付-支付宝审核流程

移动支付-支付宝审核流程为什么要进行支付宝审核?
随着移动互联网的普及与发展, 支付宝支付已经成为我们不可缺少的支付手段之一. 作为开发者, 我们常常希望用户可以在我们的App中直接进行支付, 购买商品和服务, 此次我们一般都会接入支付宝和微信等支付工具. 然而要想用支付宝支付并不是一件容易的事情, 我们必须经过支付宝的层层审核. 这篇文章主要就是介绍如何通过各项审核, 最终使我们的App具备移动支付能力.

第一步, 注册支付宝账号
首先我们得有一个支付宝账号, 如下是支付宝注册链接:

注意: 如果在公司开发, 建议注册企业账号. 因为后续还得上传营业执照, 法人等信息来进行实名认证. 一个企业一般都是具有相关材料的. 如果使用个人账号, 会比较麻烦, 因为如果要开通移动支付功能的话你必须具有个体营业执照, 而这个执照需要你亲自跑去工商部门申请.

第二步, 创建应用, 填写相关信息
注册账号并完成实名认证之后, 就可以登录支付宝开放平台的管理中心来创建应用(实名认证可能需要等待1-2天的审核). 如下是管理中心链接:

如果你的App想开通移动支付功能, 你必须先在支付宝开放平台上注册应用, 并填写相关信息.
点击创建应用, 开始填写应用相关信息.
填写方式如下方截图所示:
应用类型: 一般选择自用型应用, 表示我们是一个独立的App;
应用名称和图片可按照自己的需求进行填写.

如果要创建Android应用, 需要填写应用包名和应用签名. 应用签名指的是打包时我们使用的签名文件的摘要信息(SHA1), 支付宝为了安全起见, 必须验证应用签名信息. 这个应用签名可以使用支付宝官方提供的签名工具来获取.

下载地址:

不过通过我个人测试, 这个签名甚至是包名我都可以随意填写, 支付宝目前并没有在此处进行验证. 但应用签名格式应该要符合规范才行, 比如可以用我提供的一个: 2a6a09abdd961772d4e305cb266f012c

第三步, 应用提交成功之后, 需要等待审核.
为了审核通过, 可以参照支付宝官方的审核规范:

据我个人经验, 审核出问题往往是应用名称导致, 只要你的应用名称不出现测试”,” test”,” 支付等字样, 就一般不会出现问题. 比如我的应用名称为XX商城, 就很容易通过审核.
一般审核周期在1-2天左右.

第四步, 审核通过之后, 填写密钥相关信息
1.  首先进入应用详情页

2.   选择应用环境页面

你会发现有好几个密钥需要填写, 那么你首先得知道什么是密钥!

支付宝为了安全, 全程数据需要加密, 它使用了一种加密算法叫做RSA, 这种算法需要有密钥才能够加密解密, 而且需要两个密钥, 公钥和私钥. 加密的时候使用公钥, 解密的时候使用私钥; 或者加密使用私钥, 解密使用公钥.
3.  生成密钥
我们的支付数据当然需要加密, 所以我们要提前生成好这两种密钥. 支付宝已经提供给我们了密钥的生成工具.

密钥生成介绍:

密钥工具下载地址:
https://os.alipayobjects.com/download/secret_key_tools_RSA_win.zip?spm=a219a.7629140.0.0.hkPoeI&file=secret_key_tools_RSA_win.zip

点击生成密钥, 就会在密钥工具的当前目录下产生三个rsa开头的文件, 如下图所示:
rsa_private_key.pem: 是私钥, 客户端要妥善保存
rsa_private_key_pkcs8.pem: 也是私钥, 不过经过了pkcs8处理, 如果你是Anroid开发, 就需要使用这个私钥!!!
rsa_public_key.pem: 是公钥, 需要配置在服务器

这三个文件其实都是纯文本文件, 可以使用记事本打开.
4.  设置密钥
然后我们来到应用环境页面, 开始填写数据.
如下图所示: 应用网关无需设置, AES密钥无需设置(AES是另一种更高端的加密算法, 但我们一般不用). 主要是设置接口加签方式下的几个密钥.
RSA(SHA1)密钥: 点击设置应用公钥, 将你刚刚生成的公钥文件用记事本打开, 拷贝文本之后粘贴在此处.(注意去掉密钥标头和结尾, 只拷贝密钥内容部分)
合作伙伴密钥: 这个步骤更为关键! 否则可能导致支付失败!!!
点击详情, 设置合作伙伴密钥
其他可以不理会, 主要是我用红框标记的部分, 点击进入后设置公钥, 此处公钥内容和上一步公钥内容一致.
到这里, 我们的密钥信息终于设置完成了!

第五步, 申请开通移动支付功能
点击功能信息页面, 选择移动支付功能, 申请开通.
此处申请需要提交应用apk文件, 或者应用描述文档来进行审核, 审核周期大概1-2, 审核通过后你就可以愉快的开启支付旅程啦!

第六步, 集成支付宝SDK
等等, 有同学问我怎么开发一个支付Demo? 呵呵, 其实在我看来, 支付的审核流程最为烦人, 一旦审核完成, 开发一个支付Demo是分分钟的事情呢! 我还是说一下吧:
1.  下载支付宝sdk
下载地址:
2.  使用Eclipse或者Studio导入支付包Demo

3.   打开PayDemoActivity.java,填写相关信息
第一个, PARTNER, 商户ID, 这个可以在我们设置合作伙伴密钥的时候看到, 那个我用红笔涂抹的PID就是商户ID.
第二个: SELLER, 这是你的支付宝账号, 你在第一步注册时申请的. 一般是个邮箱.
第三个:RSA_PRIVATE, 这是你的私钥, 是在第四步的时候生成的, 直接拷贝过来, 注意是pcks8格式.
第四个:RSA_PUBLIC, 注意, 这不是你的公钥, 而是支付宝的公钥! 你的公钥已经在服务器配置了, 不需要在代码里配置. 这个无需修改. 支付宝公钥可以在这个地方看到:
4.  最后, 我们运行一下支付宝Demo
        
注意: 目前支付宝没有验证包名和应用签名, 但不代表以后不验证, 所以你在运行支付宝Demo时, 如果出现异常, 可以把支付宝Demo的包名改为你在平台注册的包名, 运行时使用的签名也要和平台的签名一致, 然后再去重试, 这是最为稳妥的做法.

总结
支付宝是移动端必备的支付手段之一, 如果你的App中需要有支付功能, 就一定会使用到支付宝支付.支付宝支付审核流程比较复杂, 但这类工作一般由公司运营人员去做, 开发人员辅助, 我们开发人员主要负责做好App端的业务逻辑就可以了. 当然不排除一些创业公司或者小公司, 所有事情都落在开发人员头上.
由于支付需求比较广泛, 但各个支付平台五花八门, 流程繁琐, 所以市面上也出现了一类公司,专门对各类支付接口进行重新封装. 比如Ping++, 集成了支付宝, 微信, 银联, 百度钱包等主流支付渠道, 开发者只需要按照Ping++的相关文档进行配置, 就能够一次性开通多个支付渠道, 大大简化了支付流程. 不过作为开发者, 我们也需要具备单个支付平台开发的能力, 从而可以从容应对各种需求.

附带一个小Demo, 可以直接完成支付, 只不过我将相关的密钥信息及支付串码的生成逻辑放在了服务器, 客户端只是发起请求, 获取支付信息后呼起支付宝客户端进行支付. 如果不介意的话, 可以多给我付点钱哦, 金额随便写^^附件: PayDemo2.zip (2.6 MB, 下载次数: 615)


6 个回复

倒序浏览
第一个顶
回复 使用道具 举报
有用,来看看,学习下
回复 使用道具 举报
很棒的东西!
回复 使用道具 举报
小白一个  努力学习中
回复 使用道具 举报

有用,来看看,学习下
回复 使用道具 举报
多谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马