Android接入支付宝登录及支付是指**在Android应用中集成支付宝的SDK**,实现用户可以使用支付宝账号登录(授权)并在应用内调用支付宝付款。
接入步骤:准备工作 → 集成SDK → 实现登录(授权)→ 实现支付 → 常见问题与安全建议,所有代码示例以Kotlin + Android Studio为准,同时适配Android 11+。
一、准备工作(开放平台配置)
在编写任何代码之前,您需要完成支付宝开放平台的入驻和应用创建。
1. 注册并登录 [支付宝开放平台]
- 使用企业支付宝账号(个人开发者仅可测试,上线需企业认证)。
2. 创建应用
- 进入“控制台” → “网页&移动应用” → “创建应用”。
- 选择“**移动应用**”,填写应用名称、绑定Android包名(Bundle ID)和应用签名(SHA256)。
- **获取应用签名**:使用支付宝提供的[密钥工具](https://opendocs.alipay.com/open/291/106097)或命令行:
```bash
keytool -list -v -keystore your_keystore.jks
```
输出中的`SHA256`值(去掉冒号,小写)即为应用签名。
3. 签约功能
- **登录功能**:默认新应用需申请“**获取会员信息**”权限(即Alipay Auth)。在“功能列表”中添加并签约(免费)。
- **支付功能**:申请“**App支付**”能力,并签约。注意需要企业资质,费率一般为0.6%。
4. 获取APPID和配置密钥
- 创建成功后,您会获得一个**APPID**(如2021003123456789)。
- 在“应用详情” → “开发设置”中:
- **接口加签方式**:选择“公钥/证书”,生成RSA2密钥对(建议使用开放平台助手工具)。将**应用公钥**上传,获得**支付宝公钥**。
- **应用网关**和**授权回调地址**:登录功能需要填写回调地址(例如 `https://yourdomain.com/callback`),支付功能不需要客户端配置回调,但服务端需配置。
> **安全提示**:私钥必须存储在您的**服务端**,绝对不能放在客户端App中。
二、集成支付宝SDK
支付宝官方提供两个独立的SDK:
- **alipay-sdk-android**:仅用于支付(`AlipaySDK`)
- **ap-auth-sdk**:用于登录授权(`AlipayAuth`)
最新版本请查阅[开放平台文档](https://opendocs.alipay.com/open/204/105297)。
1. 添加依赖(build.gradle)
```groovy
dependencies {
// 支付SDK(必须)
implementation 'com.alipay.sdk:alipay-sdk-android:15.8.19'
// 登录授权SDK(可选,只用支付则不加)
implementation 'com.alipay.sdk:ap-auth-sdk:3.2.0'
}
```
2. 添加权限(AndroidManifest.xml)
```xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Android 11+ 查询其他应用(支付宝)需要的权限 -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
```
3. 声明支付宝回调Activity(支付用)
```xml
<activity
an