Android app集成支付宝支付
支付宝支付
- 其实是比较简单的,但因为发起订单总是失败,经过各种测试、排除,最终确定是服务端返回数据有误造成的。所以严格来说支付宝文档等没有什么问题,问题在于后端程序员不认真看文档和测试。
- 申请id需要的应该是微信支付一致,也是需要包名和md5签名,可能也是需要先上架应用商店。
- 文档地址:https://opendocs.alipay.com/open/204/105051,[APP支付接入流程]: https://opensupport.alipay.com/support/helpcenter/87/201602491089?ant_source=opendoc_recommend。
- 服务端文档:https://opendocs.alipay.com/open/54/103419。
集成sdk
sdk和demo:https://opendocs.alipay.com/open/04km1h。
使用的是gradle文件添加,未主动下载sdk。参考文档:[客户端 Android 集成流程]:https://opendocs.alipay.com/open/204/105296/
分析bug
输出日志,确定请求支付返回4000。查看文档中的常见问题,找到:
当时手机未安装支付宝app,测试安装后可以打开支付宝(未登录,所以没有返回4000,也没有测试是否可以支付成功)。后来测试登录支付宝后支付也是失败(但是没有返回4000,弹窗"交易订单处理失败,请稍后再试。“,应该是支付宝的弹窗。点击确定后返回6001,表示取消订单。)。而未安装支付宝app时返回4000,弹窗"订单创建失败,请重试”,这个弹窗是自己的代码弹窗的,正确的逻辑应该是打开h5的支付页面。
然后下面的问题列表也有:
核心就是配置"com.alipay.sdk.app.H5PayActivity"这个activity。但是查看引用的aar是15.8.11版本,aar的xml中配置了,而且反编译生成的apk也确实是存在activity。所以一开始怀疑是不是因为activity的配置不完全一致造成的?测试主动在xml中加入activity,因为android:configChanges产生冲突,无法编译,只能去除android:configChanges属性。测试还是无法打开h5支付页面。
搜索这个问题,大部分都是和文档里说的一样:主动添加activity。有一个说是需要在新线程里执行,我对照着文档和demo的代码,猜测不是这个问题,因为本身执行这段代码的已经是新线程了,而且测试再新创建一个线程执行还是同样的错误。搜索到的还有一个:https://blog.csdn.net/qijingwang/article/details/102739536,说是org.apache.http.legacy的问题,测试添加后依然不能解决。而且其实aar的xml中本来就已经存在org.apache.http.legacy了,不需要主动添加。
最终无奈编译官方的demo,但是运行需要id、密钥等信息,后端程序员根本没有给我这些信息。
翻看demo代码,发现是本地拼接的字符串orderStr,格式是:键值对以"=“号连接,相邻的键值对使用”&"连接。而查看服务端返回的数据,解密后是一个带双引号的字符串:
"alipay_sdk=alipay-sdk-PHP-4.11.14.ALL&app_id=2021003...2912&biz_conte..."
错误1:解密后是字符串,但不应该是带双引号的字符串,这样就需要手动取出双引号内的字符串,但是直接取出,不能确保是否存在需要去除转义的字符。
错误2:相邻的键值对应该使用"&“连接,而不是加上"amp;”。
文档中有orderStr的例子。
- 而且php的demo中应该指出了可能存在转义的情况:https://opendocs.alipay.com/open/54/106370
- 所以如果真的认真看文档了,或者测试了,或者参考已经有的项目,还没有发现这两个错误,那就真的是太不负责任了。对后端程序员完全失望了,此类的错误已经不是2、3次了。
Android app集成支付宝支付相关推荐
- Android端集成支付宝支付
Android端集成支付宝支付 1.申请账号及配置变量 支付宝快速接入链接点击打开链接 支付宝扫码或者账号密码登录 下面是支付宝给出的接入介绍 第一步:创建应用并获取APPID 要在您的应用中接入支付 ...
- Android app集成微信支付
Android app集成微信支付 鉴于微信支付的文档入口不太容易找到.以及文档中有些逻辑不通或者容易产生歧义或者缺失一些信息的情况,记录下此次接入的流程和需要关注的一些点. 使用的是app支付-&g ...
- Android App集成支付宝
http://blog.csdn.net/wenzhibinbin_pt/article/details/7933078 手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传 ...
- 安卓-Android如何集成支付宝支付(集成阿里支付)详解。Android接入alipay支付
支付宝支付官网地址: 打开官网 服务器端如何拼接Orderinfo所需参数请看这篇文章.打开链接 安卓app集成阿里支付流程: 步骤一:下载aar和demo,并将aar添加到安卓项目依赖里.点击查看如 ...
- Springboot 服务端为App集成支付宝支付
别整什么花里胡哨的,先去吧官方文档看一遍. 首先把准备的东西准备好,这里加上一个大佬写的的连接:https://blog.csdn.net/vbirdbest/article/details/8063 ...
- Android怎么集成支付宝支付和微信支付功能(上)
看到网上写支付的文章不多,又有感于许多资料和官网内容中到处都有坑,填过坑的我决定让支付简单点(想起了我当初到处找资料的情景,唉,心累).为便于浏览,分为支付宝支付和微信支付上下两篇.看官请看..... ...
- android 支付宝是否安装包,Android App集成支付宝
嗯,其实官方的文档和DEMO够用了,只是我悟性太不堪. 为自己把过程要点给备忘一下. ## 准备工作 1. 要有一个支付宝账号 3. 完成后登录 ms.alipay.com 在"我的产品页& ...
- android如何实现支付宝,(Android集成支付宝支付)react-native实现支付宝支付
网上关于RN的支付宝支付组件大部分都是IOS的,Android要实现支付宝支付只剩下走原生这一步了. 整体思路: 1.在蚂蚁金服开放平台申请应用 2.在android原生集成支付宝 3.封装andro ...
- Android中集成支付宝
手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能. 人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫 ...
最新文章
- linux启动x不启动桌面,redhat开机不启动桌面登录程序
- 简单实现ReplaceAll(转)
- 贝壳集团IPO背后,风投协议之外还要面临何时盈利的问题
- Python自然语言处理学习笔记(68):7.9 练习
- 34.Silverlight中不得不了解使用的依赖属性
- RDP(远程桌面很慢) slow performance, Hyper-V,IPv4 Checksum offload
- FFmpeg总结(十四)FFmpeg如何解析直播点播m3u8
- T-SQL语句实现数据库备份与还原功能
- 你可以将类似于Google Earth的地球仪嵌入到自己的网站中
- PS绘制的路径不见了
- 对话90后,移动互联网新生代力量行为调查-20140219早读课
- cesium所有示例下载
- android 流失布局,GitHub - hongyangAndroid/FlowLayout: [不再维护]Android流式布局,支持单选、多选等,适合用于产品标签等。...
- 射击类项目(数据的持久化保存)整理四
- wGlasses AR智能眼镜正式发布!影育科技带来端云协同、软硬件及资源零代码、一体化的AR生态科技盛宴!
- PHP+MySQL实现留言板功能(二)
- Phonetic symbol 辅音 - 清辅音 -- /f/
- 访问者模式 Visitor
- python_d03
- MySQL数据打标_易打标(标签条码打印软件)