更新时间:2022-07-19 08:09:53 来源:极悦 浏览1132次
微信公众平台,即平时发现我们所说的“公众号”,曾用名“官方平台”、“媒体平台”,但被冠以“公众平台”。 媒体使用的平台,是对所有公众都开放的统一平台。
微信公众平台地址:http://mp.weixin.qq.com/
公众平台公分4大规划:我们的微信订阅号、服务号、企业号。按照2016年公开微信公开课,企业信号将与企业微信联合,因此主要针对前三部分开始讲解:
简单对比一下前三者的区别以及本次即课程的讲解重点:
(1)订阅号和服务号传统消息意义的“公众号”,具有群发能力,详细区别在官方平台查看:http : //kf.qq.com/faq/140806zARbmm140826M36RJF.html我们可以引用能力能力在服务方面,而同时开发模式,同时使用更多的服务号,可以使用更多的接口,而“号”的词是“割割服务号”的。案例进行操作。
(2)微小程序,原本为“微应用号”,在微生态系统中的应用苹果和谷歌的限制,“应用号”未上线便便,取而代之即是根信根植信根割的“2”微信小程序其堪比程序的运行体验,也“微杰瑞小而成为时下火的开发方向。而全新的H5 开发课程,也将参与时下火爆的信小程序开发。
(1)账号注册
微公众平台“进入微信公众平台, 点击用户立即订阅”,点击“用户订阅号”,选择“服务号”选择机构注册,个人订阅号)
重新注册时需重新填写申报信息,根据提示可以,此处不做申报。
(2)测试账号申请
如果暂时不想注册账号无法注册服务号,官方或者提供的测试记录。地址: http ://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/ login后扫描二维码,即可获得一个测试账号,拥有全部权限。
外网映射工具
微信公众平台在访问后台时,必须提供能够正确访问的外网地址,微信平台对后台URL的要求有两个点:
1)必须能够用公网访问
2)必须使用80端口访问
要两点,我们选择购买外网服务器,比如阿里云、百度实现、腾讯云……都是不错的选择。如果没有服务器选择使用外网映射工具,将我们的内网链接可以映射以上为公网,比较不错的映射软件有:花生壳、grok、nat123等……
这几款软件都可以百度很容易找到并下载,下面简单讲解一下用法:
进入dos环境,切换到ngrock所在的盘符,输入ngrock 8080回车:
回车后等待一会,自动得到公用链接,下图显示负载访问网直接提供的链接,自动本机127.0.0.1:8080下的链接内容,分别是http协议和https协议的地址:
下面看看我们公众平台的数据微信:
从上图可以,微信公众平台实际处理的只是一个业务连接,或者实际的业务连接,实际提供的服务代码是看到我们自己的服务器网覆盖。就可以在我们自己的电脑(服务器)上编写后台代码,并通过授权工具提供到微信访问的网址,然后可以在我们的网站上绑定网址。
下面将进入实际的开发过程,我们可以参考官方提供的开发文档: https ://mp.weixin.qq.com/wiki
(1)重新填写服务器配置
进入微信公众平台,点击左侧【开发——基本配置】,选择【服务器配置】。自动进入配置页面:
其中:
网址:即我们所说的后台服务器公网访问地址
Token:开发者自定的验证权限
EncodingAESKey:常用字符串,如果消息加解密采用安全模式才需验证方式
(2)验证消息是否有效
当点击提交的时候,微信到服务器发送一个获取请求,我们上面的地址,同时传递四个参数:
我们通过检验签名对请求进行内容开发(下面有类似的方式)。如果确认请求请求来自服务器,请原返回echostr参数,则生效,使者成功访问失败。加密/智能流程如下:
下面,我们实现代码操作。
(1)使用MyEclipse创建Web项目,并新建一个servlet:
(2)在servlet doGet中,获取上述的正确参数方法:
(3)操作编写类,进行操作的方法:
五确定步骤,操作上面【2】三个参考步骤流程
使用sha1加密方法
(4)Servlet 中调用微校验方法,并验证结果,如果检验成功,将返回给你的常用字符串:eahostr原路给信平台
至此,Servlet及检查工具类,编写完成。
(5)启动Tomcat,将Servlet的本地地址(例如本机为:localhost:8080/WeiXin/servlet/WeiXinServlet 能够进行公网正确映射,参照上面第三个图形确定内容,进行公网映射,公网地址访问。
我将直接将代码中的杰瑞教育 公网服务器进行访问。获得地址:http : //www.jredu100.com/WeiXin/servlet/WeiXinServlet
进入微信后台配置相关信息:
点击提交,微信将发送Servlet,调用doGet,并进行我们编写的验证操作,如果最后成功的方法字符串,则绑定成功。
(1)Servlet源码(只保留doGet部分):
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");
PrintWriter out = response.getWriter();
if(CheckUtil.checkSignature(signature, timestamp, nonce)){
//如果校验成功,将得到的随机字符串原路返回
out.print(echostr);
}
}
(2)CheckUtil源码(可直接复制其中的getSha1加密方法):
package com.jredu.util;
import java.security.MessageDigest;
import java.util.Arrays;
public class CheckUtil {
public static final String tooken = "jredu100"; //开发者自行定义Tooken
public static boolean checkSignature(String signature,String timestamp,String nonce){
//1.定义数组存放tooken,timestamp,nonce
String[] arr = {tooken,timestamp,nonce};
//2.对数组进行排序
Arrays.sort(arr);
//3.生成字符串
StringBuffer sb = new StringBuffer();
for(String s : arr){
sb.append(s);
}
//4.sha1加密,网上均有现成代码
String temp = getSha1(sb.toString());
//5.将加密后的字符串,与微信传来的加密签名比较,返回结果
return temp.equals(signature);
}
public static String getSha1(String str){
if(str==null||str.length()==0){
return null;
}
char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f'};
try {
MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
mdTemp.update(str.getBytes("UTF-8"));
byte[] md = mdTemp.digest();
int j = md.length;
char buf[] = new char[j*2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
buf[k++] = hexDigits[byte0 & 0xf];
}
return new String(buf);
} catch (Exception e) {
// TODO: handle exception
return null;
}
}
}
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习