迁移最新版本

1.下载SDK

下载地址:https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1

解压并导入jar包,并Add As Library.

2.添加声明

AndroidManifest.xml文件里面添加声明(支付宝客户端调用和H5页面调用)

 <activityandroid:name="com.alipay.sdk.app.H5PayActivity"android:configChanges="orientation|keyboardHidden|navigation"android:exported="false"android:screenOrientation="behind"/><activityandroid:name="com.alipay.sdk.auth.AuthActivity"android:configChanges="orientation|keyboardHidden|navigation"android:exported="false"android:screenOrientation="behind"/>

3.调用处理

在去支付的按钮点击事件里面加入下面代码

Runnable payRunnable = new Runnable() {@Overridepublic void run() {//调用支付宝PayTask payTask = new PayTask(这里是上下文);String result = payTask.pay(orderBean.payUrl, true);Message msg = new Message();msg.what = SDK_PAY_FLAG;msg.obj = result;mHandler.sendMessage(msg);}};// 必须异步调用Thread payThread = new Thread(payRunnable);payThread.start();

payTask.pay(orderBean.payUrl, true)中的orderBean.payUrl是服务器返回给我的数据,也就是支付宝需要的参数(后台封装好的,支付宝也不建议前台去搞),都在里面了,只需要拿数据去请求就行了。

第二个参数true,表示在请求支付的时候是否加入Loading的dialog

返回结果在Handler中处理

@SuppressLint("HandlerLeak")private Handler mHandler = new Handler() {@SuppressWarnings("unused")public void handleMessage(Message msg) {switch (msg.what) {case SDK_PAY_FLAG: {PayResult payResult = new PayResult((String) msg.obj);String resultInfo = payResult.getResult();// 同步返回需要验证的信息String resultStatus = payResult.getResultStatus();if (TextUtils.equals(resultStatus, "9000")) {MyUtil.showToast("支付成功");} else {// "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准if (TextUtils.equals(resultStatus, "8000")) {MyUtil.showToast("支付结果确认中");}else if (TextUtils.equals(resultStatus, "6001")) {MyUtil.showToast("支付取消");}else if (TextUtils.equals(resultStatus, "6002")) {MyUtil.showToast("网络异常");}else if (TextUtils.equals(resultStatus, "5000")) {MyUtil.showToast("重复请求");}else {// 其他值就可以判断为支付失败MyUtil.showToast("支付失败");}}break;}}}};               

加入上面的代码就需要一个PayResult 类去接收返回结果了(直接copy下载的sdk中的demo里面的就行)

PayResult payResult = new PayResult((String) msg.obj);如果这句报错,就是类型转换的问题,有的是String,有的是Map的,去实体类中改就好了,在类型转换的时候改也行。

所以接入支付宝SDK只需要3个步骤:

  • 添加jar包
  • manifest中添加声明
  • 加入上面两段代码和一个实体类

以上皆为Android客户端的接入


接入中遇到支付失败,code 4000,报错ALI59

按照官网的解决方案去检查了一遍,最后发现是参数格式的问题

支付宝请求参数中的订单总金额单位为元,精确到小数点后两位,如果是10.0000这样的就会报错ALI59,正确10.00

而微信支付的请求参数中的总金额单位为分,对账单中的交易金额单位是为元的。

Android客户端三步完成支付宝支付SDK接入相关推荐

  1. 微信支付SDK接入流程梳理

    微信SDK的支付功能接入简单梳理. 首先说一下,你需要的官网都有,但是官网提供的东西不管新旧与否先给你放上去,部分地方提供的链接点击时还提示404,不同的页面提示相同的下载内容(demo)还不一样,表 ...

  2. android支付宝支付接口申请,支付宝分享SDK接入指南—Android

    支付宝分享入口 1.   申请你的AppID 请到支付宝开放平台应用登记页面进行登记,登记并选择移动应用进行设置后,将获得AppId,可立即用于开发.但应用登记完成后还需要提交审核,只有审核通过的应用 ...

  3. Android集成支付宝支付SDK,实现支付功能

    官方集成文档地址:https://docs.open.alipay.com/204/105296/ 一.导入支付宝SDK 1.将 alipaySdk-15.6.5-20190718211159.aar ...

  4. 【Android游戏开发】登录以及支付SDK总结

    最近在公司里面搞IOS的登陆以及支付流程 我也写了一篇在论坛中 感兴趣的可以点击去看看 地址摆在下方 [IOS游戏开发] 登陆以及支付SDK总结 先了解接入SDK的各个流程 首先理清楚下面这个登陆模块 ...

  5. Java服务端集成支付宝支付SDK

    文章目录 文档 流程说明 添加依赖 集成步骤 常见问题 文档 蚂蚁金服官方文档 https://docs.open.alipay.com/54/103419/https://docs.open.ali ...

  6. 小米支付SDK接入注意事项

    因为工作的性质经常会接触android渠道的的支付SDK,所以暂时会做一个小系列的总结,只是对于一些疑难的地方. 小米的SDK接入中经常会出现在确定包名,AppId,AppKey的正确情况下,还是不能 ...

  7. 简单三步,教你快速接入淘宝开放平台,调用官方API

    淘宝开放平台是为了方便开发者接入淘宝平台,进行商品.订单等信息的管理和交互而设计的.接入淘宝开放平台需要经过一系列审核和申请流程,而在API权限包审核时,一定要提供真实有效的证件和资料,并满足相应的条 ...

  8. java后台程序员转android 之《三B》 支付宝支付 client join server 及采坑记录

    目录 前言: 介绍: demo: 先看下 我的目录结构 java 代码 activit代码 总结思路: server  端 开发思路 前言: 最近公司打算做先关android 方面的技术,然后招and ...

  9. Unity 接入安卓 支付宝支付SDK遇到ALI38173问题

    今天遇到一个特坑的问题,跟Web大佬找了一整天,再次记录一下.. 1.如果大家遇到这个问题,先去官网排查一下:https://opensupport.alipay.com/support/knowle ...

最新文章

  1. js过滤HTML标签以及空格
  2. windows批处理的感叹号和变量延迟扩展
  3. lucene索引合并与增量索引
  4. Mac安装python3的opencv包
  5. ScrollView 分割屏幕效果
  6. 探索Julia(part7)--数组与字典函数
  7. python queue windows_python Queue模块
  8. wps分享为什么要登入_[win]为什么你需要便携应用?portableapps让你得心应手.
  9. devops项目经理_DevOps:如何避免交接导致项目死亡
  10. QT+VS中ui不能声明为指针?
  11. 企业做网络推广关键词设置的几点个人看法
  12. L1-056 猜数字-PAT团体程序设计天梯赛GPLT
  13. atitit.二进制数据无损转字符串网络传输
  14. 『NLP学习笔记』AllenNLP的注册机制
  15. linux虚拟磁带机管理,RHEL6 虚拟磁带机使用指南
  16. php是什么币种的外汇英文,外汇币种英文_我要最常用的10个外汇币种和英文简称!_合拍网...
  17. Easy Login...So Easy...(base64编码/修改Cookie/社工)-学习笔记
  18. 京东云 linux无法远程,问题解读 | Linux系统SSH无法远程登录时该怎么办?这里有篇小攻...
  19. Mindmanager2020教程篇画一个树状思维导图及试用密钥过期
  20. restframework(一)

热门文章

  1. Redis 中哨兵sentinel 机制、从宕机及恢复、主库宕机及恢复解决方案
  2. DRF实战5 - 商品管理
  3. 安卓微信中下载apk无反应 微信浏览器无法跳转到apk下载链接方案
  4. 台湾安格AG6202与CS5210参数差异与区别|HDMI转VGA方案比较|AG6202与CS5210电路设计差异
  5. (python)改进的k-shell算法来识别关键节点 The improved k-shell algorithm(IKS)
  6. Cass和Cmap在地形图编辑中的一点心得
  7. 图像处理之_傅立叶变换
  8. 计算机网络管理员初级是几级,计算机网络管理员初级试卷.pdf
  9. KDD 2021 | 推荐系统论文集锦[持续更新]
  10. 股市行情的真谛--威廉.D.江恩