移动支付demo接入流程指南(Android版)

简介: 一、下载DEMO和SDK。打开连接https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.YGttW9&treeId=54&articleId=104509&docType=1 解压DEMO文件。


解压DEMO文件。 WS_MOBILE_PAY_SDK_BASE\支付宝钱包支付接口开发包2.0标准版(201501215)\DEMO\客户端demo目录下有2个压缩文件。 IOS和Android
 二、 配置DEMO。1. 导入Import
 

选择Andorid程序。
 




2. 配置参数 找到 src/com.alipay.sdk.demo/PayDemoActivity.java文件打开。 需要配置 PARTNER:合作身份者ID,以2088开头由16位纯数字组成的字符串。即签约账号。请参考“PID和密钥管理”。 SELLER:一般情况下收款账号就是签约账号。 RSA_PUBLIC:支付宝RSA公钥。请参考 查看支付宝公钥。” RSA_PRIVATE:商户方RSA私钥。请参考 PID和密钥管理 复制上去的私钥字符串请使用pkcs8格式私钥,导入私钥路径请使用原始的私钥pem文件。


配置完成后,已经可以正常运行且支付成功。运行接口代码示例: 


点击支付:
 

3. 配置业务参数 找到src/com.alipay.sdk.demo/PayDemoActivity.java文件打开 里面有一个  pay 方法。如下图,这就是DEMO运行中点击支付所触发的方法。 在这里我们可以看到订单的信息来自于getOrderInfo这个方法。 


在这里就可以把你所需要的参数添加到响应字符串中,根据文档参数规范添加。 


拼接成的待请求参数如下:
 

使用alipay.pay方法接收支付结果。
 

同步返回:
resultStatus={9000};memo={处理成功};result={partner="2088501624560335"&seller_id="***"&out_trade_no="1229010038-1111"&subject="测试的商品"&body="该测试商品的详细描述"&total_fee="0.01"?ify_url="http://notify.msp.hk/notify.htm"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&success="true"&sign_type="RSA"&sign="SqxvaqGNpkfGqbyNUlc8a9CCFwQvEN9KUc+rU0Pf6wV5c6K5IRN3SKsOBReDzhNvM4SAPOeiKjiLs0LqJDUYVMadxrasawKcM70fm9OsqbqYXoLaESI/8WPtkcd/uz03b9DpR1pGneVmrEUfUnothAgoKvWnbq4cxA0/irl7cMM="}
此时用resultStatus做业务逻辑如图
 

三、运行逻辑详解1、拼接订单信息orderInfo(按指定格式把所需参数拼接起来) 


2、对订单信息orderInfo 进行RSA签名,使用SignUtils.java中的sign方法。得到的sign需要URL编码。 


3、拼接成完整的支付宝请求参数。
 

   4、调用SDK支付接口,且获取支付同步返回信息。
 

四、异步通知1. .NET开发异步通知逻辑
(1)打开“notify_url.aspx.cs”文件(notify_url.aspx需保证无任何HTML代码)。在注释指定位置“//请根据您的业务逻辑来编写程序”写入商户的业务逻辑代码。请参考“业务逻辑处理”。  
(2)用POST方式获得这些通知返回数据。对这些数据做签名验证、是否是支付宝发来的请求的验证。得到组做空值过滤、参数名首字母升序的排序、待签名数组转变成待签名字符串。对该字符串做RSA签名验证(这一系列动作为调用app_code/AlipayNotify.cs文件中的GetSignVeryfy函数完成),得到布尔类型的验证结果。 


(3)根据获得的参数notify_id,来验证是否是支付宝发来的请求(调用app_code/AlipayNotify.cs文件中的GetResponseTxt函数)。先拼接完整的验证请求链接,
https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg
(4)再用远程模拟HTTP请求的方式请求到支付宝,此时支付宝返回的信息是纯HTML文本“true”,页面上再也无其他任何字符。具体请参见“验证是否是支付宝发来的通知”。 
(5) 根据签名验证结果、是否是支付宝发来的通知的验证结果,二者全部为true的情况下,则验证通过(调用app_code/AlipayNotify.cs文件中的Verify函数)。此时商户可做些简单的业务逻辑,但请务必不要在当前页面做资金相关变动的业务逻辑处理。 
(6) 验证通过后,方可执行对资金相关的业务逻辑代码。需要注意的是:已经对同一笔 交易做过业务处理后,不要再做重复处理,避免资损。
(7) 商户的业务代码正常且成功执行后,需在notify_url的当前页面中输出纯文字“success”,让支付宝通知服务器知晓已执行完毕。 
2. JAVA开发异步通知逻辑
(1)打开“notify_url.jsp”文件(notify_url.jsp需保证无任何HTML代码)。在注释指定位置“//请根据您的业务逻辑来编写程序”写入商户的业务逻辑代码。请参考“业务逻辑处理”。
(2)用POST方式获得这些通知返回数据。对这些数据做签名验证、是否是支付宝发来的请求的验证。得到组做空值过滤、参数名首字母升序的排序、待签名数组转变成待签名字符串。对该字符串做RSA签名验证(这一系列动作为调用AlipayNotify.java文件中的getRSASignVerify函数完成),得到布尔类型的验证结果。
 

(3)根据获得的参数notify_id,来验证是否是支付宝发来的请求(调用AlipayNotify.java文件中的verifyResponse函数)。先拼接完整的验证请求链接,
https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg
(4)再用远程模拟HTTP请求的方式请求到支付宝,此时支付宝返回的信息是纯HTML文本“true”,页面上再也无其他任何字符。具体请参见“验证是否是支付宝发来的通知”。
(5) 根据签名验证结果、是否是支付宝发来的通知的验证结果,二者全部为true的情况下,则验证通过(调用AlipayNotify.java文件中的Verify函数)。此时商户可做些简单的业务逻辑,但请务必不要在当前页面做资金相关变动的业务逻辑处理。 (6) 验证通过后,方可执行对资金相关的业务逻辑代码。需要注意的是:已经对同一笔交易做过业务处理后,不要再做重复处理,避免资损。
 (7)商户的业务代码正常且成功执行后,需在notify_url的当前页面中输出纯文字“success”,让支付宝通知服务器知晓已执行完毕。  
3. PHP 开发异步通知
(1) 打开“notify_url.php”文件(notify_url.php需保证无任何HTML代码)。在注释指定位置“//请根据您的业务逻辑来编写程序”写入商户的业务逻辑代码。请参考“业务逻辑处理”。
(2)用POST方式获得这些通知返回数据。对这些数据做签名验证、是否是支付宝发来的请求的验证。空值过滤、参数名首字母升序的排序、待签名数组转变成待签名字符串。对该字符串做RSA签名验证(这一系列动作为调用lib/alipay_notify.class.php文件中的rsaVerify函数完成),得到布尔类型的验证结果。 


(3)根据获得的参数notify_id,来验证是否是支付宝发来的请求(调用lib/alipay_notify.class.php文件中的getResponse函数)。先拼接完整的验证请求链接,
https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg
(4)再用远程模拟HTTP请求的方式请求到支付宝,此时支付宝返回的信息是纯HTML文本“true”,页面上再也无其他任何字符。具体请参见“验证是否是支付宝发来的通知”。  
(5)根据签名验证结果、是否是支付宝发来的通知的验证结果,二者全部为true的情况下,则验证通过(调用lib/alipay_notify.class.php文件中的verifyNotify方法)。此时商户可做些简单的业务逻辑,但请务必不要在当前页面做资金相关变动的业务逻辑处理。
(6)验证通过后,方可执行对资金相关的业务逻辑代码。需要注意的是:已经对同一笔交易做过业务处理后,不要再做重复处理,避免资损。 
(7)商户的业务代码正常且成功执行后,需在notify_url的当前页面中输出纯文字“success”,让支付宝通知服务器知晓已执行完毕。    
五、商户开发。商户根据自己的业务需求做相应的业务逻辑。
注:请将签名放在服务端。
目录
相关文章
|
6月前
|
API Android开发 计算机视觉
视觉智能平台有android人脸识别拍照demo?
视觉智能平台有android人脸识别拍照demo么?
65 0
|
6月前
|
Java Android开发 开发者
1024程序节|Android框架之一 BRVAH【BaseRecyclerViewAdapterHelper】使用demo
BRVAH是一个强大的RecyclerAdapter框架(什么是RecyclerView?),它能节约开发者大量的开发时间,集成了大部分列表常用需求解决方案。为什么会有它?请查看「Android开源框架BRVAH由来篇」该框架于2016年4月10号发布的第1个版本到现在已经一年多了,经历了800多次代码提交,140多次版本打包,修复了1000多个问题,获得了9000多star,非常感谢大家的使用以及反馈。
138 0
|
7月前
|
Java Linux Android开发
理解Android进程创建流程
理解Android进程创建流程
51 0
|
4月前
|
XML Java Android开发
Android App开发触摸事件中手势事件Event的分发流程讲解与实战(附源码 简单易懂)
Android App开发触摸事件中手势事件Event的分发流程讲解与实战(附源码 简单易懂)
43 0
|
5月前
|
Android开发
Hbuilder打包android安装包流程
Hbuilder打包android安装包流程
|
6月前
|
Java Android开发
[笔记]Android 学习一之转场动画+ViewPager+ListView简单Demo
[笔记]Android 学习一之转场动画+ViewPager+ListView简单Demo
|
8月前
|
Java Linux 开发工具
安卓 keystore 获得应用签名详细流程(快应用)
安卓 keystore 获得应用签名详细流程(快应用)
597 0
|
8月前
|
Android开发
快应用安卓机进行真机调试(详细流程)
快应用安卓机进行真机调试(详细流程)
114 0
|
10月前
|
Java Android开发
Launcher点击图标启动App流程分析(基于Android N)2
Launcher点击图标启动App流程分析(基于Android N)2
104 0
|
10月前
|
监控 Java Android开发
Launcher点击图标启动App流程分析(基于Android N)1
Launcher点击图标启动App流程分析(基于Android N)
77 0