支付宝支付官网地址: 打开官网
服务器端如何拼接Orderinfo所需参数请看这篇文章。打开链接
安卓app集成阿里支付流程:
步骤一:下载aar和demo,并将aar添加到安卓项目依赖里。点击查看如何添加。
阿里支付demo和aar下载地址: 打开下载.
解压此zip -> 可以看到里面有Android_Demo和Android_SDK,
将Android_SDK里的aar文件放入到安卓项目libs文件里,并添加为依赖即可。
不知道如何添加依赖?查看此文章:
如何添加aar依赖到安卓: 点击跳转.
步骤二:根据官方提供的demo准备所需必备支付宝支付的参数和java文件。
打开Android_Demo
支付宝支付的sdk里写了一大堆参数东西(APPID PID TARGET_ID 等等),这些东西都是后端进行拼接产品信息等操作。
为了信息安全,安卓端不需要做任何事,仅仅需要从后端获取 orderInfo 即可。(orderInfo类型为字符串)
想了解orderInfo怎么拼接的,还有参数怎么配置,可以查看这篇文章。有详解。打开链接
PayDemoActivity: (主要运行的java文件)
将该java中以下4个与安卓端支付功能相关的代码方法移植到你的项目中。
- private Handler mHandler = new Handler() 消息传递
- private static void showAlert(Context ctx, String info) 提示框
- private static void showAlert(Context ctx, String info, DialogInterface.OnDismissListener onDismiss) 提示框
- public void payV2(View v) 点击按钮,调用支付业务。 该方法我们只需payRunnable即可,其他的都是关于后端拼接产品的信息。
alipay.payV2 方法调用支付接口,等待用户进行操作结束后,会返回map值,传递到result里。mHandler.sendMessage(msg)会将map信息传递到private Handler mHandler = new Handler() 方法中进行处理。
注意:这里的 PayDemoActivity.this 参数,要改成你自己的MainActivity
获取到的orderInfo格式大致应为这样的 (忽略 “+” 号,这里我空格了,方便查看)
- 如果传递的orderInfo不正确,会有各种提示报错代码,如何解决可以看另一篇文章。(待写)
H5PayDemoActivity (网页支付宝)
在 PayDemoActivity 的 alipay.payV2方法里已经做了兼容,如果用户没有下载支付宝app,那么则会走该h5页面的支付流程。
该java是支付宝放在demo里的演示,不需要放在你的项目中。
PayResult (支付结果)
将该java整个复制到你的项目中即可。
AuthResult (授权)
将该java整个复制到你的项目中即可。
Base64 (加密)安卓端不用看
SignUtils (签名)安卓端不用看
ExternalFragment (demo的布局)不需要
步骤三 注意事项,权限,网络清单:
UI界面规范,最低过审要求
配置网络清单
<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 *;}
集成中各种报错代码的解决办法,请看这篇文章:
错误代码4000,6004等等问题。打开链接
5. Android技术生活交流
qq群