移动支付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”,让支付宝通知服务器知晓已执行完毕。    
五、商户开发。
商户根据自己的业务需求做相应的业务逻辑。
注:请将签名放在服务端。
目录
相关文章
|
15天前
|
NoSQL 应用服务中间件 PHP
布谷一对一直播源码android版环境配置流程及功能明细
部署需基于 CentOS 7.9 系统,硬盘不低于 40G,使用宝塔面板安装环境,包括 PHP 7.3(含 Redis、Fileinfo 扩展)、Nginx、MySQL 5.6、Redis 和最新 Composer。Swoole 扩展需按步骤配置。2021.08.05 后部署需将站点目录设为 public 并用 ThinkPHP 伪静态。开发环境建议 Windows 操作系统与最新 Android Studio,基础配置涉及 APP 名称修改、接口域名更换、包名调整及第三方登录分享(如 QQ、微信)的配置,同时需完成阿里云与腾讯云相关设置。
|
27天前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
1月前
|
安全 算法 小程序
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
131 28
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
|
2月前
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
72 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
2月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
219 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
3月前
|
缓存 前端开发 Android开发
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
175 12
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
|
3月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
73 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
1月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
274 76

热门文章

最新文章