IT技术问答
联系我们
你的位置:主页 > IT技术问答 > 正文IT技术问答
微信公众平台企业号开发—开启回调模式,公众回调
编辑:AG集&# 发布时间:2019-02-06

微信公众平台企业号开发—开启回调模式,公众回调

2014年9月17日,微信发布了期待已久的企业号。网上关于企业号的教程几乎还没有,所以这里分享一下的我的开发经验。

由于公司用的还是老版本的resin2.1服务器,对于一些官方方法并不支持,增加了很多麻烦,这里也欢迎和我有相同经历的同学留言咱们一起探讨一下。

对比于订阅号和服务号的开发,企业号的开发显得更加复杂一点。这大概也是腾讯考虑到企业信息安全性要求比较高的缘故,在消息的收发和一些验证上都增加了加密解密的操作。这就需要开发者认真去阅读官方说明(其实通过官方说明你可以解决几乎所有问题),接下来我开启回调模式的步骤:

1、申请企业号:这个步骤这里就不详细赘述了,可以参考 http://jingyan.baidu.com/article/8065f87ff7db25233124980d.html 

2、设置通讯录:这是开启回调模式必须的

3、在应用中心增加应用:增加完之后点开应用你就可以看到开启回调模式的入口了,然后就是按它的提示输入相关参数。这里也不赘述了。

4、准备远程服务器:这一步其实应该是最早做的,你可以自己申请域名空间,也可以用新浪百度的云空间。

5、进入后台程序开发阶段:核心QYCoreServlet 代码如下,该类中引用的一些工具类都是腾讯官方提供的

官方工具类下载链接:http://qydev.weixin.qq.com/wiki/index.php?title=加解密库下载与返回码,找到对应java的即可

特别注意的是:jdk版本必须是1.6及以上;需要替换JCE无限制权限策略文件,JDK7的下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html下载后解压,可以看到local_policy.jar和UAAAAport_policy.jar以及readme.txt。如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件,如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。这里我耽搁了比较久。


package com.hotbuysell.servlet;

import java.io.IOException;  
import java.io.InputStream;
import java.io.PrintWriter;  
import java.net.URLDecoder;
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import com.qq.weixin.mp.aes.AesException;
import com.qq.weixin.mp.aes.WXBizMsgCrypt;

public class QYCoreServlet extends HttpServlet {  
    /*
------------验证回调URL---------------
*企业开启回调模式时,企业号会向验证url发送一个get请求 
接收到该请求时,企业应
1.解析出Get请求的参数,包括消息体签名(msg_signature),时间戳(timestamp),随机数字串(nonce)以及公众平台推送过来的随机加密字符串(echostr),这一步注意作URL解码。
2.验证消息体签名的正确性 
3. 解密出echostr原文,将原文当作Get请求的response,返回给公众平台
第2,3步可以用公众平台提供的库函数VerifyURL来实现。
*/ 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //设置编码
    response.setContentType("text/html;charset=utf-8");
         //response.setCharacterEncoding("utf-8");
        request.setCharacterEncoding("utf-8");
        
        //企业号的基本信息,配置时填写
    String sToken = "your token";
String sCorpID = "your CorpID";
String sEncodingAESKey = "your EncodingAESKey ";


try {
WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(sToken, sEncodingAESKey, sCorpID);


// 解析出url上的参数值如下:
//URLDecoder.decode(request.getParameter("echostr"),"utf-8");
String sVerifyMsgSig = URLDecoder.decode(request.getParameter("msg_signature"),"utf-8");
String sVerifyTimeStamp = URLDecoder.decode(request.getParameter("timestamp"),"utf-8");
String sVerifyNonce = URLDecoder.decode(request.getParameter("nonce"),"utf-8");
String sVerifyEchoStr = URLDecoder.decode(request.getParameter("echostr"),"utf-8");
PrintWriter out = response.getWriter();  
String sEchoStr; //需要返回的明文
try {
sEchoStr = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp,sVerifyNonce, sVerifyEchoStr);
System.out.println("verifyurl echostr: " + sEchoStr);
// 验证URL成功,将sEchoStr返回
out.print(sEchoStr);  
out.close();  
   out = null; 
} catch (Exception e) {
//验证URL失败,错误原因请查看异常
e.printStackTrace();
}

} catch (AesException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
    }  
  
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO 接收用户信息后的操作
    }
}  

6、将程序发布到远程服务器。

到这里基本就成功了,希望对大家有帮助。


微信公众平台开发是什?

首先微信的公众平台是腾迅公司在微信的基础上新增的功能,通过这一平台,个人和企业都可以打造一个微信的公众号,并实现和特定群体的文字、图片、语音的全方位沟通、互动。微信公共平台服务分为两种号,一个是“订阅号” 一个是“服务号”, 然后是两种模式,一个是“编辑模式”,另一个是“开发模式”。
然后你下面红方框的叫自定义菜单栏,红园框叫二级菜单栏,只有服务号才能有得功能。服务号每个月可以推送一个消息(图文,文字,图片)订阅号就每天能推送消息。

然后开发模式就可以点击文字 进入其他页面

----------分割线--------------------------------
编辑模式只能进入图文消息页面 有很多限制
内容来自。。。
baike.baidu.com/view/8296301.htm


 
微信企业号有没有开发模式

有啊,就在“应用中心”那里,直接点击你需要的应用,点击底部的“回调模式”,启用填写开发者配置信息即可,如下图:



 

http://www.bkjia.com/Androidjc/885317.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/885317.htmlTechArticle微信公众平台企业号开发—开启回调模式,公众回调 2014年9月17日,微信发布了期待已久的企业号。网上关于企业号的教程几乎还没有,所...

本文源自: AG环亚国际官网

上一篇:Asmack开发系列之通信数据流,asmack开发数据流
下一篇:没有了