官方集成文档地址:https://docs.open.alipay.com/204/105296/

一、导入支付宝SDK

1.将 alipaySdk-15.6.5-20190718211159.aar 包放在您的应用工程的 libs 目录下(图片中文件名仅做示例,请以实际 SDK 文件名为准):arr文件下载地址:https://download.csdn.net/download/github_39118247/11648340

2.在主项目的 build.gradle 中,添加下面的内容,将 libs 目录作为依赖仓库:

allprojects {repositories {// 添加下面的内容flatDir {dirs 'libs'}// ... jcenter() 等其他仓库}
}

3.在您 App Module 的 build.gradle 中,添加下面的内容,将支付宝 SDK 作为项目依赖:

dependencies {// 添加下面的内容compile (name: 'alipaySdk-15.5.7-20181023110917', ext: 'aar')// ... 其他依赖项
}

至此,支付宝 SDK 开发资源导入完成。

运行权限

为正常完成良好的支付流程体验,支付宝 SDK 需要使用下面这些权限:

android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE

至此项目配置部分结束,接下来直接赋上代码:

一般订单加密,下单都是在服务端完成,所以我们首先要调用自己后台的一个接口,传递一些参数,让其携带可以调用支付宝的接口,实现统一下单功能,之后便返回一个订单数据串,对应的也就是代码中的orderInfo,移动端得到这个数据串,使用支付宝的sdk,调用支付宝程序进行支付。

/*** 支付宝账户支付业务示例*/
public void alipay(View v, String orderInfo) {
//orderInfo 的获取必须来源于服务端final String authInfo = orderInfo;final Runnable payRunnable = new Runnable() {@Overridepublic void run() {PayTask alipay = new PayTask(PayActivity.this);Map<String, String> result = alipay.payV2(authInfo, true);Log.i("msp", result.toString());Message msg = new Message();msg.what = SDK_PAY_FLAG;msg.obj = result;mHandler.sendMessage(msg);}};// 必须异步调用Thread payThread = new Thread(payRunnable);payThread.start();
}
@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((Map<String, String>) msg.obj);/*** 同步返回的结果必须放置到服务端进行验证(验证的规则请看https://doc.open.alipay.com/doc2/* detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&* docType=1) 建议商户依赖异步通知*/String resultInfo = payResult.getResult();// 同步返回需要验证的信息String resultStatus = payResult.getResultStatus();Log.e("resultStatus", "resultStatus-------------------" + resultStatus);// 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档if (TextUtils.equals(resultStatus, "9000")) {popPayPrice.setText("¥" + registrationPrice.getText().toString().trim());pop_toll.showAtLocation(PayActivity.this, registrationPrice, Gravity.CENTER, 0, 0);
//                        Intent intent = new Intent(PayActivity.this, ModelTwoRegistrationActivity.class);
//                        startActivity(intent);
//                        finish();} else {// 判断resultStatus 为非"9000"则代表可能支付失败// "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)if (TextUtils.equals(resultStatus, "8000")) {Toast.makeText(PayActivity.this, "支付结果确认中", Toast.LENGTH_SHORT).show();} else if (TextUtils.equals(resultStatus, "6001")) {//6001用户取消支付Log.e("error", "error: ========" + payResult);Toast.makeText(PayActivity.this, "取消支付", Toast.LENGTH_SHORT).show();} else {// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误Toast.makeText(PayActivity.this, "支付失败" + payResult, Toast.LENGTH_SHORT).show();Log.e("error", "error: ========" + payResult);}}break;}default:break;}}};
public class PayResult {private String resultStatus;private String result;private String memo;public PayResult(Map<String, String> rawResult) {if (rawResult == null) {return;}for (String key : rawResult.keySet()) {if (TextUtils.equals(key, "resultStatus")) {resultStatus = rawResult.get(key);} else if (TextUtils.equals(key, "result")) {result = rawResult.get(key);} else if (TextUtils.equals(key, "memo")) {memo = rawResult.get(key);}}}@Overridepublic String toString() {return "resultStatus={" + resultStatus + "};memo={" + memo+ "};result={" + result + "}";}/*** @return the resultStatus*/public String getResultStatus() {return resultStatus;}/*** @return the memo*/public String getMemo() {return memo;}/*** @return the result*/public String getResult() {return result;}
}

Android集成支付宝支付SDK,实现支付功能相关推荐

  1. SpringBoot集成支付宝沙箱手机网站支付详细流程和踩坑分享

    描述 本文主要讲解SpringBoot集成支付宝沙箱手机网站支付,即网页点击按钮发起支付,跳转到沙箱app付款 由于其他博客的流程大多笼统,有时候并不能找到正确的集成方式,本文尽可能详细的阐述付款,异 ...

  2. laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案)

    laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案) 参考文章: (1)laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案) (2)http ...

  3. Android 集成海康威视监控 SDK,实现监控录像的查看

    Android 集成海康威视监控 SDK,实现监控录像的查看 配置 切换Android studio 到project目录下,分别将jar包与armeabi包复制进去lib文件夹下: 设置app bu ...

  4. android 快捷支付sdk,Android 集成支付宝SDK实现快捷支付--填坑

    刚给app集成了支付宝的android客户端快捷支付SDK,集成很简单,但是由于是涉及钱的问题,大家都会持谨慎态度,所以有很多小坑,粗心的话集成之路会很坎坷,对于集成步骤,我不想写了,没有必要,就看官 ...

  5. android如何实现支付宝,(Android集成支付宝支付)react-native实现支付宝支付

    网上关于RN的支付宝支付组件大部分都是IOS的,Android要实现支付宝支付只剩下走原生这一步了. 整体思路: 1.在蚂蚁金服开放平台申请应用 2.在android原生集成支付宝 3.封装andro ...

  6. Android 集成支付宝支付,支付宝支付2.0

    成功起调支付宝支付 下载支付sdk复制到libs文件夹下并add  as library:https://docs.open.alipay.com/54/104509 1.首先申请支付宝 企业账户  ...

  7. Android集成支付宝支付

    2019独角兽企业重金招聘Python工程师标准>>> 相比微信支付,支付宝支付简单了许多,它的交互过程如图: 首先导入jar包:alipaySdk-20161222.jar,可以去 ...

  8. android 支付sdk流程,支付SDK

    1. 集成准备 1.1 获得DBKEY和APPKEY 访问地址:https://pay.dangbei.com/open,注册并添加应用后,系统会自动生成DBKEY和APPKEY,也可在配置页面查看 ...

  9. android集成支付宝红包功能.你想要的就在这里

    废话不说直接上干货! 先带你跑通支付宝demo 1.支付宝demo下载地址点击打开链接 2.有两个参数需要填写如下图(如果没有那么找申请支付业务的人要);其中RSA2_PRIVATE和RSA_PRIV ...

最新文章

  1. 计算机专业每年都有国企招老吗,这十大专业在国企中最受欢迎,待遇高、前景好,有你的专业吗?...
  2. 【学习——字符串】字符串之一网打尽quq
  3. Visual Studio开发必备:扩展工具应用
  4. ASP.Net中OnBeforeUnLoad事件中调用__doPostBack不起作用?
  5. C++中的explicit关键字用法
  6. PHP中获取数组中单列的值
  7. “隐私经济”有未来吗?
  8. JAVA里点击树与表格结合,javaswing中的表格(jtable)和树(jtree)组件使用实例.doc
  9. 已解决:Torch not compiled with CUDA enabled
  10. Qt 5 编译 glm
  11. 上海法官招嫖爆料者讲述始末
  12. Android学习笔记(二)
  13. 程序员工作久了,都不会好好说人话了...互联网人的....黑话
  14. 数仓模型设计详细讲解
  15. ISO文件怎么安装?
  16. 信通院 移动安全蓝皮书 数据安全管理案例 学习笔记
  17. 柯桥西班牙语培训,西班牙语关于篮球的词汇
  18. java判断数字大小写_java判断字符串是否全部由数字,大小写字母,特殊符号组成...
  19. 正确选择合适的移动应用测试工具很重要
  20. ES 查询一,基于URL 的查询

热门文章

  1. 机械专业应具备什么计算机能力
  2. 树莓派4b学习笔记一:树莓派4B开箱简单配置(远程工具+opencv+pytorch1.3)
  3. 天府新区信息职业学院计算机专业,天府新区信息职业学院是几本,重点专业是什么...
  4. 如何查看本地电脑ip
  5. 4diac 分布式应用-部署到不同的设备中运行
  6. 分层架构使用DTO,VO,PO
  7. matlab实现k-l算法,K均值聚类算法的MATLAB实现
  8. 活动星投票寻找最美家庭图片投票制作平台微信图文投票怎么制作
  9. Atmel基于ARM Cortex-M的全球最低功耗解决方案 突破超低功率性能瓶颈
  10. 给麦田PT做的新主题:Harvest