Android_接入微信demo(分享、支付、登录)_签名无效

解决的问题:接入微信时,从官网下载的demo,运行后提示签名无效。

解决的方案:

1)自己申请一个账号,使用自己的包名和签名,然后再写个人测试程序

2)直接使用微信的demo,测试实际效果

 

方案1,需要申请账号,走复杂的流程;以及写个人测试程序得花费一定的时间,还会走一些坑;百度搜出来的基本上都是这种

方案2,方便快速,但会遇到一些坑。本篇,主要走的是此方案。接下来直接进入主题

 

预备知识:

1,微信开发平台官网地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN

在该地址你可以获取到demo的压缩包,以及获取签名的工具

1)demo压缩包,解压,然后导入android studio;如下图

Android_接入微信demo(分享、支付、登录)_签名无效_第1张图片

如果编译不了,查看gradle版本和路径是否正确;如下图

Android_接入微信demo(分享、支付、登录)_签名无效_第2张图片

2)签名工具,输入的包名,要求该包名对应的APP已在手机安装,才能获取

有兴趣的人可以反编译这个apk,然后自己写一套;这里我直接贴出自己反编译后参考写的:

https://github.com/yline/as_x_modlestudy/raw/179ba7e3e9bec9524be681fdd1b57b74fc34fc1f/System/AppOther/Utils/src/main/java/com/utils/utils/WechatSignUtil.java

 

2,gradle配置正确之后,Android Studio编译成功,运行。然后会遇到另外一个坑:点击分享提示签名错误

这里给一个小知识:应用的签名由工程配置的keystore决定,与包名无关。有兴趣的可以试试,如果新建工程,但没有配置keystore,新建多个工程后,应用的签名是一样的。

Android Studio中配置签名的方式,如下图

Android_接入微信demo(分享、支付、登录)_签名无效_第3张图片

由以上知识点,可以推导出,微信官方demo提示签名错误的原因是,keystore没有配置;所以,我们配置一下就行了;如下列代码:keystore对应的文件,就是微信demo解压之后的debug.keystore

android {
    signingConfigs {
        config {
            storeFile file('../debug.keystore')
            keyAlias 'androiddebugkey'
            keyPassword "android"
            storePassword "android"
        }
    }
    compileSdkVersion 28
    defaultConfig {
        applicationId "net.sourceforge.simcpux"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.config
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.config
        }
    }
}

里面关键信息:keyAlias可以查看debug.keystore文件获取、keyPassword和storePassword使用的google官方默认的密码【我也是蒙的,没想到就对了】

 

3,又是一个坑,你配置完keystore之后,一定记得把工程"build"下的文件删了,然后再重装。否则应用的签名不会采用你新配置的,而是复用之前默认或配置的签名,如下图:

Android_接入微信demo(分享、支付、登录)_签名无效_第4张图片

 

4,最后你可以使用微信的获取签名工具或自己写的获取签名工具,验证一下,我验证微信提供的签名keystore为:

ce187ed67e05c2d8879bf66bbfdfc8b9

当然,证明你成功的标志就是:运行微信demo后,点击分享可以拉起微信,并且分享成功。

 

 

 

 

 

 

你可能感兴趣的:(Android_jar)