支付宝开放平台安卓「应用签名」获取方法
支付宝开放平台要求填的应用签名,是你 App 签名证书的 MD5 指纹值(去掉冒号、转小写后的一串字符),不是 SHA1。下面分三种情况给你拿。
方法一:用 keytool 命令行(最准确,推荐)
前提:你手里有 App 的 keystore 签名文件(.jks 或 .keystore),以及对应的密钥库密码、alias 别名、alias 密码。
Windows:打开 CMD,进入 JDK 的 bin 目录(一般在 C:\Program Files\Java\jdk1.8.0_xx\bin),执行:
keytool -list -v -keystore 你的签名文件.jks
Mac:终端执行:
keytool -list -v -keystore /路径/你的签名文件.jks
回车后输入密钥库密码,会输出一堆信息,找到这一行:
MD5: AB:CD:EF:12:34:56:78:90:AB:CD:EF:12:34:56:78:90
把这串 MD5 值的冒号全部删掉,字母全部转小写,就是支付宝要的应用签名:
abcdef1234567890abcdef1234567890
注意:SHA1 那一行支付宝不用填,别拿错。
方法二:Android Studio 里直接看
用 Android Studio 打开你的项目。
右侧边栏点开 Gradle 面板。
依次展开:
你的项目名 → :app → Tasks → android。双击里面的
signingReport。底部 Run/Build 窗口会输出
Variant: release(或你用的那个构建变体)下面的MD5、SHA1、SHA256。取 MD5,去冒号、转小写,填到支付宝后台。
如果你用的是 release 签名,要确保 app/build.gradle 里 signingConfigs 已经配了你的正式 keystore,否则 signingReport 默认打的是 debug 证书。
方法三:APK 已经打出来了,没有 keystore
如果你手上只有装好的 APK 安装包、找不到 keystore 文件了,可以:
把 APK 后缀改成
.zip,解压。进去找
META-INF文件夹,里面有个CERT.RSA(或类似.RSA/.DSA)文件。用 keytool 看这个文件:
keytool -printcert -file META-INF/CERT.RSA
输出里同样找 MD5,去冒号转小写。
提醒:这个方法拿到的是 APK 实际签名。如果你的应用将来要上生产,务必保管好原始 keystore 文件,支付宝后台的签名一旦绑定,后续换包必须用同一个签名证书,不然支付回调会验签失败。
填到支付宝开放平台哪里
登录 open.alipay.com,进入你的应用。
左侧菜单 → 设置 → 开发设置(或 "接口加签方式" 旁边的应用信息)。
找到 "安卓应用" 那一栏,填:
应用包名:就是你 AndroidManifest /build.gradle 里的
applicationId,比如com.yourcompany.yourapp应用签名:粘贴上面去冒号转小写后的 MD5 串。
保存,提交审核。
常见踩坑
签名对了但支付调不起 / 回调失败:99% 是 MD5 没去冒号、没转小写,或者填成了 SHA1。重新核对一遍。
debug 包能调起,release 包不行:你在支付宝后台填的是 debug 签名,release 用了正式签名,把 release 的 MD5 重新算一遍填进去。
一个应用支持多个签名:支付宝后台安卓签名一般支持填多个(比如 debug + release,或多个渠道包),用换行或分号隔开即可,按后台页面提示操作。
按上面任一种方法拿到 MD5,去冒号转小写,填到开放平台「开发设置 → 安卓应用」里就可以了。
