Android微信签名知识的总结

前言

最近遇到一个项目的应用要上微信登录,大家都知道微信登录是需要开放平台上申请的,在微信开发平台创建移动应用后,需要填写:


需要填写的内容

问题

这里的应用签名是keystore的证书的md5,但是微信的这个只有一个填写输入框,不像百度地图、高德地图那样,有线上的SHA1和开发调试的SHA1两种,那这就纠结了,在开发运行的时候AS IDE默认使用的签名keystore是系统的 debug.keystore,系统的和自己项目线上的keystore的MD5、SHA1肯定是不一样的,那么问题来了,要怎么统一用线上的,又不影响开发调试。

解决方案

既然不能同时使用线上和系统debugkeystore,那我们就使用同一个,只要确保MD5、SHA1一致就ok了,微信上我们继续使用线上的MD5,百度地图、高端地图等第三方的一些服务把线上和开发调试的SHA1都使用线上keystore的:

命令行进入线上keystore的文件所在目录,然后输入如下命令,即可查看签名。

keytool -list -v -keystore app-release.jks

复制一份线上的keystore文件在同一个文件夹下:

修改这个keystore文件的别名alias,改成androiddebugkey(系统的debug.keystore的别名就是这个,如果不是这个别名,调试运行的时候会编译不通过,提示需要使用这样的alias),使用如下命令来修改:

keytool -changealias -keystore ishopping-debug.jks -alias ishopping -destalias androiddebugkey

-alias后面是原来的别名, -destalias后面是新的别名,记住一定要用androiddebugkey作为别名。

修改调试用keystorestorepasswdkeypasswd的口令为“android”(也需要和系统的debug.keystore的一样都使用这个口令),使用如下命令来修改:

// 修改密钥口令
keytool -keypasswd -keystore ishopping-debug.jks -alias androiddebugkey
// 修改密钥库口令
keytool -storepasswd -keystore ishopping-debug.jks

每一行命令,后都需要输入原有的密钥库和密钥口令,然后再输入新的口令:


修改口令

然后使用开头的查看签名MD5和SHA1的命令来查看新的调试开发用的keystore文件,看看签名是不是和线上的一样。

最后在gradle里面配置:

signingConfigs {
 release {
 // 此处是相对路径,可以在module app下新建一个key文件夹把keystore文件拷贝进去
 storeFile file('key/ishopping.jks')
 }
 debug {
 storeFile file('key/ishopping-debug.jks')
 }
}
buildTypes {
 release {
 minifyEnabled false
 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
 signingConfig signingConfigs.release
 }
 debug {
 signingConfig signingConfigs.debug
 }
}

配置完后,重新同步gradle,然后重新构建工程,点击Android Studio菜单栏Build -- Rebuild Project,新的证书才会生效。(只要是替换修改签名证书,都需要重新构建工程)

总结

以上就是这篇文章的全部内容了,希望本文的内容对各位Android开发者们能有所帮帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • Android 高仿微信支付数字键盘功能

    现在很多app的支付.输入密码功能,都已经开始使用自定义数字键盘,不仅更加方便.其效果着实精致. 下面带着大家学习下,如何高仿微信的数字键盘,可以拿来直接用在自身的项目中. 先看下效果图: 1. 自定义布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

  • android端微信支付V3版本地签名统一下单详解

    满满的都是坑,因为服务器偷懒让客服端写统一下单,服务器只给了通知的url.微信的支付demo并没有统一下单的代码. 读此文前先阅读: https://pay.weixin.qq.com/wiki/doc/api/app/app.PHP?chapter=9_1 一步步的来  先根据统一下单的参数介绍工具: 1. 获取到当前的ip: <span style="font-size:14px;">public String getLocalIpAddress() { try { f

  • Android第三方微信支付教程

    做了微信支付,下载了Demo,发现和之前有所改动,v3.0的版本,也许有的朋友还在摸索,这里我已经成功支付,话不多说,直接进入主题: 一.首先要在微信开发平台注册账号,新增应用,填写正确的包名,正确的签名(MD5中的一串字符冒号去掉,全部小写),当然也会生成的AppID和AppSecret都有用!最后还要花300大洋开通支付功能! 二.分析一下微信支付的流程 三.界面交互流程 上面都看明白了,接下来就是写代码了 四.这里必须要有wxapi这个包名,同时必须有WXPayEntryActivity这

  • Android支付宝和微信支付集成

    场景 随着移动支付的兴起,在我们的app'中,会经常有集成支付的需求.这时候一般都会采用微信和支付宝的sdk 来集成 (一)支付宝支付 在使用支付宝支付的过程中,我们是在服务器端生成订单,客户端访问接口,并得到订单信息,调用接口支付,支付成功后支付宝会分别 异步调用服务器端,并向客户端返回支付结果. 开发步骤: ①注册支付宝账号--进行实名认证--提交审核资料--审核通过 支付宝无线快捷支付接口: b.alipay.com/order/productDetail.htm?productId=20

  • Android微信支付获取二次签名Sign的方法

    本文实例为大家分享了Android微信支付获取二次签名Sign的方法,供大家参考,具体内容如下 /** * 获取sign签名 * * @return */ private String genPayReq() { // 获取参数的值 PayReq request = new PayReq(); request.appId = ConstantsMember.APP_ID; request.partnerId = ConstantsMember.MCHID; request.prepayId =

  • 微信开发之使用java获取签名signature

    一.前言 微信接口调用验证最终需要用到的三个参数noncestr.timestamp.signature: 接下来将会给出获取这三个参数的详细代码 本文的环境eclipse + maven 本文使用到的技术HttpClient.Json字符串转map.sha1加密 二.需要用到的jar包 maven依赖的包有: 1.HttpClient包依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <ar

  • Android实现微信支付功能

    开发Android APP微信支付功能,需要完成三个步骤:第一步生成预支付订单.第二步生成微信支付参数.第三步调起微信APP支付.除了需要审核通过的APP应用外,还需要获得微信支付接口权限,然后获取对应的商户号.API密钥,这两者缺一不可,并且在APP微信支付中使用 获得商户号.API密钥 在微信开放平台中查看审核通过的APP应用,是否申请支付功能,若已申请,登录微信支付|商户平台:http://pay.weixin.qq.com 查看对应的商户号.API密钥 >申请微信支付接口 >登录商户平

  • android微信支付源码分享

    本文为大家分享了android微信支付源码,供大家参考,具体内容如下 参数配置 public static final String APP_ID ; /** 在微信开放平台注册app,微信给分配的id **/ public static final String MCH_ID; /** 申请开通微信支付,成功后微信会给你发一封邮件,给你分配一个商户平台账号,在资料里有商户ID **/ public static final String API_KEY; /** 在微信发给你的那封邮件里,给你

  • Android集成微信支付功能

    准备工作这里就不说了,包括签约和申请APPID,附上微信开放平台APP开发步骤,不懂的同学可以参考这里: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5 上面的步骤很详细,这里主要说下调起支付的注意事项.按照上面文档中说的商户服务器生成支付订单,先调用统一下单API生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付. 相关代码如下: /** * 商户服务器生成支付订单,先调用统一下单API(详见第

  • Android微信签名知识的总结

    前言 最近遇到一个项目的应用要上微信登录,大家都知道微信登录是需要开放平台上申请的,在微信开发平台创建移动应用后,需要填写: 需要填写的内容 问题 这里的应用签名是keystore的证书的md5,但是微信的这个只有一个填写输入框,不像百度地图.高德地图那样,有线上的SHA1和开发调试的SHA1两种,那这就纠结了,在开发运行的时候AS IDE默认使用的签名keystore是系统的 debug.keystore,系统的和自己项目线上的keystore的MD5.SHA1肯定是不一样的,那么问题来了,要

  • Android开发签名知识梳理总结

    目录 前言 一.签名基础 1. 消息摘要 2. 加密算法 2.1 对称加密 2.2 非对称加密 2.3 使用场景 3. 数字签名 4. 数字证书 二.Android签名机制 1. Android签名机制的异同点 2. Debug和Relase的签名 三.签名方案 1 v1方案 2. v2方案 四.签名过程 1. v3方案 2. v4方案 3. 向下兼容的签名方案 前言 最近帮测试做了一点关于签名的需求,今天就和各位同学简单聊一聊关于签名的那些事儿. 如果问到 Android 为什么需要签名?大家

  • Android签名知识小结

    一.为什么要签名 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的. 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换. APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉. 这样签名其实也是开发者的身份标识.交易中抵赖等事情发生时,签名可以防止抵赖的发生. 二.

  • Android微信支付开发问题

    并不是所有的BAT的API都是非常好用的,微信支付就有不少的缺陷,总结一下微信支付实现中出现的问题   坑点一: PayReq的参数 sign的生成   PayReq对象有个参数为packageValue 而sign生成时要用到packageValue,但是对应的Key是package,这里的key容易弄错 复制代码 代码如下: List<NameValuePair> signParams = new LinkedList<NameValuePair>();         sig

  • Android微信第三方登录(个人笔记)

    今天在写微信登录,花了半天时间搞定.然后写下自己的笔记,希望帮助更多的人.欢迎各位指教. 微信授权登录,官方说的不是很清楚.所以导致有一部分的坑. 微信注册应用平台的应用签名,下载 微信签名生成工具 输入项目的packageName也可以查看到. (注意:debug.Release 一定要区分,因为2种生成的微信签名不一致,会导致没有跳转.回调....一般在微信开发者上面注册的是正式环境打包好的.) 申请微信开发者账号.应用申请省略. 1. AndroidManifest.xml 权限 <!--

  • Android微信Tinker热更新详细使用

    先看一下效果图 Tinker已知问题 由于原理与系统限制,Tinker有以下已知问题: Tinker不支持修改AndroidManifest.xml,Tinker不支持新增四大组件: 由于Google Play的开发者条款限制,不建议在GP渠道动态更新代码: 在Android N上,补丁对应用启动时间有轻微的影响: 不支持部分三星android-21机型,加载补丁时会主动抛出"TinkerRuntimeException:checkDexInstall failed": 由于各个厂商的

  • 记录Android微信分享功能的吐槽与思考

    在App内潜入分享到微信好友或朋友圈的功能想必大家已经屡见不鲜了,比如Android分享一个网页信息(URL)到微信客户端的代码: /** * 微信分享:分享网页 * @param context * @param url * @param title * @param description * @param scene */ public static void shareToWeChatWithWebpage(Context context, String url, String titl

  • Android 微信文件传输助手文件夹

    微信文件传输助手是微信电脑版与手机微信之间相互传输图片等文件的好工具,但很多童鞋都找不到微信文件传输助手文件夹在哪,就让我们一起找找吧 1.先说说手机微信文件传输助手文件夹在哪吧 文件夹路径为/Tencent/MicroMsg/Download/ 2.电脑版微信文件传输助手文件夹在:/微信安装保存目录/wechat files/微信号/ 也可以点击接收到的图片下载保存到相应位置即可 以上就是Android 微信文件传输助手文件夹的寻找,希望能帮助到您,谢谢大家对本站的支持!

随机推荐