安卓app集成阿里支付流程:

  • 步骤一:下载aar和demo,并将aar添加到安卓项目依赖里。点击查看如何添加。
  • 步骤二:根据官方提供的demo准备所需必备支付宝支付的参数和java文件。

  • PayDemoActivity: (主要运行的java文件)
  • H5PayDemoActivity (网页支付宝)
  • PayResult (支付结果)
  • AuthResult (授权)
  • Base64 (加密)安卓端不用看
  • SignUtils (签名)安卓端不用看
  • ExternalFragment (demo的布局)不需要
  • 步骤三 注意事项,权限,网络清单:
  • UI界面规范,最低过审要求
  • 配置网络清单
  • Mainfest.xml权限添加
  • 添加混淆
  • 集成中各种报错代码的解决办法,请看这篇文章:
  • 5. Android技术生活交流


步骤一:下载aar和demo,并将aar添加到安卓项目依赖里。点击查看如何添加。

阿里支付demo和aar下载地址: 打开下载.

android 支付sdk下载安装 安卓 支付系统_android 支付sdk下载安装


解压此zip -> 可以看到里面有Android_Demo和Android_SDK,

android 支付sdk下载安装 安卓 支付系统_android_02

将Android_SDK里的aar文件放入到安卓项目libs文件里,并添加为依赖即可。
不知道如何添加依赖?查看此文章:

如何添加aar依赖到安卓: 点击跳转.


步骤二:根据官方提供的demo准备所需必备支付宝支付的参数和java文件。

打开Android_Demo

支付宝支付的sdk里写了一大堆参数东西(APPID PID TARGET_ID 等等),这些东西都是后端进行拼接产品信息等操作。
为了信息安全,安卓端不需要做任何事,仅仅需要从后端获取 orderInfo 即可。(orderInfo类型为字符串)

想了解orderInfo怎么拼接的,还有参数怎么配置,可以查看这篇文章。有详解。打开链接

PayDemoActivity: (主要运行的java文件)

将该java中以下4个与安卓端支付功能相关的代码方法移植到你的项目中。

  1. private Handler mHandler = new Handler() 消息传递
  2. private static void showAlert(Context ctx, String info) 提示框
  3. private static void showAlert(Context ctx, String info, DialogInterface.OnDismissListener onDismiss) 提示框
  4. public void payV2(View v) 点击按钮,调用支付业务。 该方法我们只需payRunnable即可,其他的都是关于后端拼接产品的信息。

alipay.payV2 方法调用支付接口,等待用户进行操作结束后,会返回map值,传递到result里。mHandler.sendMessage(msg)会将map信息传递到private Handler mHandler = new Handler() 方法中进行处理。

注意:这里的 PayDemoActivity.this 参数,要改成你自己的MainActivity

android 支付sdk下载安装 安卓 支付系统_android 支付sdk下载安装_03

获取到的orderInfo格式大致应为这样的 (忽略 “+” 号,这里我空格了,方便查看)

android 支付sdk下载安装 安卓 支付系统_安卓_04

  1. 如果传递的orderInfo不正确,会有各种提示报错代码,如何解决可以看另一篇文章。(待写)

H5PayDemoActivity (网页支付宝)

在 PayDemoActivity 的 alipay.payV2方法里已经做了兼容,如果用户没有下载支付宝app,那么则会走该h5页面的支付流程。

该java是支付宝放在demo里的演示,不需要放在你的项目中。

PayResult (支付结果)

将该java整个复制到你的项目中即可。

AuthResult (授权)

将该java整个复制到你的项目中即可。

Base64 (加密)安卓端不用看

SignUtils (签名)安卓端不用看

ExternalFragment (demo的布局)不需要


步骤三 注意事项,权限,网络清单:

UI界面规范,最低过审要求

android 支付sdk下载安装 安卓 支付系统_安卓_05

配置网络清单

<domain includeSubdomains="true">tfs.alipayobjects.com</domain>
    <domain includeSubdomains="true">mobilegw.alipay.com</domain>
    <trust-anchors>
        <certificates src="system" />
        <certificates src="user" />
    </trust-anchors>

不知道如何配置网络清单?请看这篇文章:跳转

Mainfest.xml权限添加

1.在Manifest.xml文件中添加

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

添加混淆

-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}


5. Android技术生活交流