2017-03-09 20:19:38 github_2011 阅读数 49731
  • 微信公众平台开发4-消息管理-微信开发php

    微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131

    6336 人正在学习 去看看 秦子恒


在微信开放平台创建移动应用时上图大家都遇到过,这里的应用签名是什么呢?

这里介绍说可以通过签名生成工具在已安装当前应用的手机中获取,(待会获取测试一下)我们先搞明白它是什么,这里提到了该应用签名由开发者签名该应用的keystore文件决定。

接下来我们便来探究一下这个应用签名是什么

思路:

1.创建一个keystore文件

2.创建一个Android应用

3.使用keystore文件签名该应用得到签名apk

4.使用签名生成工具查看该应用的签名

我们下面开始一步步执行

1.生成keystore文件

在自己电脑jdk的安装目录bin文件夹内打开dos命令行(cmd命令打开cd到bin目录也可以),输入如下命令:

keytool -genkey -alias qj_test -keyalg RSA -validity 10000 -keystore qj_test.keystore
具体操作如下图:

这时我们发现在我们的bin文件夹内多了一个qj_test.keystore文件,它就是我们生成的keystore文件


接下来我们在命令行输入如下命令:

keytool -list -v -keystore qj_test.keystore
输入密钥库口令:123456之后得到详细的keystore输出信息如下:

这里大家明显看到我把MD5值给框起来了,跟它有关系吗?想知道答案继续往下看吧…

2.创建一个简单的android项目

项目的包名为:com.qj.keystoretest ,包名符合规范可以随便命名,因为后面会用到,故在此处标出(如何创建项目略)

3.使用keystore文件签名该应用得到签名apk

我们的android应用已经创建好了,现在如何使用我们的keystore文件签名我们的应用呢






app-release.apk便是我们使用自己生成的keystore文件签名生成的apk文件

先把该apk装到手机中,就剩最后一步啦!

4.使用签名生成工具查看该应用的签名

签名生成工具下载(微信开发平台)

签名生成工具下载(新浪微博开放平台)

任意下载一个(是一个apk文件)安装手机后运行:



很显然两个工具生成的签名是相同的,因为签名是由我们的keystore文件决定的,从新浪签名获取工具的名字其实也不难发现,签名应该和MD5有关

签名生成工具生成的签名:add1944573e750774d84c04148c720a0

keystore文件中的MD5值:AD:D1:94:45:73:E7:50:77:4D:84:C0:41:48:C7:20:A0

对比发现:MD5值去掉两两之间的 " : " ,并将大写改为小写之后,奇迹出现了! 你会发现它和签名生成工具生成的签名一模一样。

总结:微信开放平台Android应用签名的本质便是我们签名文件keystore的MD5值


相关知识点:

我们创建自己的keystore,利用keystore生成签名apk文中已经介绍了,如果想要在每次运行调试应用的时候也用该keystore文件生成apk,

请参考:Android studio 如何指定使用自己生成的keystore调试



2017-03-22 16:28:41 DickyQie 阅读数 16908
  • 微信公众平台开发4-消息管理-微信开发php

    微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131

    6336 人正在学习 去看看 秦子恒

开发中分享操作往往经常遇到,而且还是一些比较大型一定的平台,如微信,QQ,微博等。写这篇博客主要是把微信的的分享和相关操作表达一下,分享可以包含:文字,视频,音乐,图片等分享。

分享可以有 分享给好友,群,朋友圈等。

效果如下图:(注意:功能根据自己的需要选择就可以了)

            

准备工作:

微信开放平台创建应用,操作步骤请看博客:Android之微信开放平台创建应用

成功之后得到AppId,放入项目中。

public class Constants {
    // APP_ID 替换为你的应用从官方网站申请到的合法appId==
    public static final String APP_ID = "wx1b73fd7b49ffa027";
    
    public static class ShowMsgActivity {
        public static final String STitle = "showmsg_title";
        public static final String SMessage = "showmsg_message";
        public static final String BAThumbData = "showmsg_thumb_data";
    }

public class AppRegister extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        final IWXAPI api = WXAPIFactory.createWXAPI(context, null);

        // 将该app注册到微信
        api.registerApp(Constants.APP_ID);
    }
}

文本分享代码:

// 初始化一个WXTextObject对象
                        WXTextObject textObj = new WXTextObject();
                        textObj.text = text;
                        // 用WXTextObject对象初始化一个WXMediaMessage对象
                        WXMediaMessage msg = new WXMediaMessage();
                        msg.mediaObject = textObj;
                        // 发送文本类型的消息时,title字段不起作用
                        msg.title = "Will be ignored";
                        msg.description = text;

                        // 构造一个Req
                        SendMessageToWX.Req req = new SendMessageToWX.Req();
                        req.transaction = buildTransaction("text"); // transaction字段用于唯一标识一个请求
                
                        req.message = msg;
                        /**
                         * 判断是否是朋友圈
                         */
                        req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
                        
                        // 调用api接口发送数据到微信
                        api.sendReq(req);

图片分享代码:(包含 本地图片,SD卡图片,网络图片)

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_img);
                            WXImageObject imgObj = new WXImageObject(bmp);
                            WXMediaMessage msg = new WXMediaMessage();
                            msg.mediaObject = imgObj;
                            
                            Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
                            bmp.recycle();
                            msg.thumbData = Util.bmpToByteArray(thumbBmp, true);  // 设置所图;

                            SendMessageToWX.Req req = new SendMessageToWX.Req();
                            req.transaction = buildTransaction("img");
                            req.message = msg;
                            req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
                            api.sendReq(req);

音乐分享代码

WXMusicObject music = new WXMusicObject();
                            music.musicUrl="http://staff2.ustc.edu.cn/~wdw/softdown/index.asp/0042515_05.ANDY.mp3";
                            WXMediaMessage msg = new WXMediaMessage();
                            msg.mediaObject = music;
                            msg.title = "标题";
                            msg.description = "描述信息";

                            Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
                            msg.thumbData = Util.bmpToByteArray(thumb, true);

                            SendMessageToWX.Req req = new SendMessageToWX.Req();
                            req.transaction = buildTransaction("music");
                            req.message = msg;
                            req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
                            api.sendReq(req);

视频分享代码

WXVideoObject video = new WXVideoObject();
                            video.videoUrl = "url....mp4";//mp4视频路径
                            WXMediaMessage msg = new WXMediaMessage(video);
                            msg.title = "标题";
                            msg.description = "描述信息";

Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb); msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("video"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req);

网页分享代码:

WXWebpageObject webpage = new WXWebpageObject();
                            webpage.webpageUrl = "http://www.baidu.com";
                            WXMediaMessage msg = new WXMediaMessage(webpage);
                            msg.title = "标题";
                            msg.description = "描述信息";
                            Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
                            msg.thumbData = Util.bmpToByteArray(thumb, true);
                            
                            SendMessageToWX.Req req = new SendMessageToWX.Req();
                            req.transaction = buildTransaction("webpage");
                            req.message = msg;
                            req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
                            api.sendReq(req);
                            

等等。


代码下载

github: https://github.com/DickyQie/android-third-party/tree/weixin-share


2018-10-31 22:35:54 zgphacker2010 阅读数 165
  • 微信公众平台开发4-消息管理-微信开发php

    微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131

    6336 人正在学习 去看看 秦子恒

首先用android studio给项目生成apk文件,具体步骤如下(…)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

获取md5:有两种方法可以获取的md5
(1)在AndroidStudio控制台切换到Terminal窗口,切换到你刚才生成的签名文件目录下,输入keytool -list -v -keystore **就可以获取到MD5(图片看不清?右键–>在新窗口中打开图片)
在这里插入图片描述

(2)利用签名工具获取(将签名工具和apk安装到手机上,然后打开签名工具,输入包名获取签名);
在这里插入图片描述

签名工具下载地址:https://pan.baidu.com/s/1cgMzSi

原文:https://blog.csdn.net/lhg_55/article/details/52669109

2018-10-26 14:35:00 weixin_30859423 阅读数 21
  • 微信公众平台开发4-消息管理-微信开发php

    微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131

    6336 人正在学习 去看看 秦子恒

微信开放平台Android应用签名的本质便是我们签名文件keystore的MD5值。

keytool -list -v -keystore qj_test.keystore

获得:

  • 别名: naolihuangjin
  • 创建日期: Sep 25, 2018
  • 条目类型: PrivateKeyEntry
  • 证书链长度: 1
  • 证书[1]:
  • 所有者: O=XiaoMa, OU=GameDeviceA, CN=MaCheng
  • 发布者: O=XiaoMa, OU=GameDeviceA, CN=MaCheng
  • 序列号: 20c22861
  • 有效期开始日期: Tue Sep 25 17:11:24 CST 2018, 截止日期: Wed Sep 12 17:11:24 CST 2068
  • 证书指纹:
  • MD5: B6:1B:5E:28:8B:6F:2D:F6:C2:0C:10:DB:9B:23:34:24  
  • SHA1: E6:F1:88:D0:7A:43:8D:78:3E:EB:1A:C6:44:26:6B:EB:4A:D9:79:5E
  • SHA256: E6:98:86:20:26:2B:B4:3B:B5:DF:AD:4B:DD:15:82:03:8D:16:E8:84:02:FD:89:69:F9:40:E1:D6:B3:06:D4:40
  • 签名算法名称: SHA1withRSA
  • 版本: 3

 把MD5的冒号都删掉, 再转成小写。

b61b5e288b6f2df6c20c10db9b233424

就是这个了

 

转载于:https://www.cnblogs.com/sweetXiaoma/p/9856164.html

2017-08-02 16:34:37 Baijinwen 阅读数 348
  • 微信公众平台开发4-消息管理-微信开发php

    微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131

    6336 人正在学习 去看看 秦子恒

一: 开放平台

https://open.weixin.qq.com/

二:提交审核需要填写签名



三:生成签名

1. 首先打包自己的安卓程序并安装到手机


2. 下载   【查看签名】 apk   ---- Gen_Signature_Android.apk,并安装到手机

    

https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk

3. 打开Gen_Signature_Android.apk

输入你自己的安卓程序的包名,点击生成





没有更多推荐了,返回首页