【Java微信公众平台开发模式+自定义按钮源码】

首先,想用开放模式需要先成为开发者。成为开发者有两种写法。

  一是:通过jsp页面,用out.print("echostr")//SHA1加密的字符串;

  二是:通过Servlet。doGet返回exhostr,给微信平台。

  这里我只写第二种方式的请求(这里的请求是以get方式请求),代码如下:

  import java.io.IOException;

  import java.io.InputStream;

  import java.io.PrintWriter;

  import java.util.Arrays;

  import javax.servlet.ServletException;

  import javax.servlet.http.HttpServlet;

  import javax.servlet.http.HttpServletRequest;

  import javax.servlet.http.HttpServletResponse;

  import org.jdom.JDOMException;

  /**

  * 微信统一入口

  * @author slz

  * 2013-7-26 上午10:17:08

  */

  public class WeixinServlet extends HttpServlet {

  public WeixinServlet() {

  super();

  }

  public void destroy() {

  super.destroy();

  }

  /**

  * 微信公众平台  成为开发者验证入口

  */

  public void doGet(HttpServletRequest request, HttpServletResponse response)

  throws ServletException, IOException {

  doPost(request, response);

  }

  /**

  * 微信公众平台  所有接口入口

  */

  public void doPost(HttpServletRequest request, HttpServletResponse response)

  throws ServletException, IOException {

  response.setCharacterEncoding("UTF-8");

  request.setCharacterEncoding("UTF-8");

  PrintWriter out = response.getWriter();

  String TOKEN = "sun";//Token

  String signature = request.getParameter("signature");//SHA1加密字符串

  String timestamp = request.getParameter("timestamp");//时间

  String nonce = request.getParameter("nonce");//随机数

  String echoStr = request.getParameter("echostr");//随机字符串

  if(StrUtil.isNotNull(echoStr)){

  String[] a = {TOKEN,timestamp,nonce};

  Arrays.sort(a);//数组排序

  String str = "";

  for(int i=0;i<a.length;i++){

  str += a[i];

  }

  String echo = new SHA1().getDigestOfString(str.getBytes());//SHA1加密

  if(echo.equals(signature)){

  out.print(echoStr);

  }else{

  out.print("123");

  }

  }else{

  try {

  InputStream is = request.getInputStream();

  PushManage push = new PushManage();

  String getXml = push.PushManageXml(is);

  System.out.println("getXml:"+getXml);

  out.print(getXml);

  } catch (JDOMException e) {

  out.print("");

  }

  }

  out.flush();

  out.close();

  }

  }

  当我们完成第一步成为开发者后,我们就可以用微信提供给我们的接口。

  大家应该也看见上面有doPost方法(微信公共平台  所有接口入口)。当我们成为开发者后,微信用户向我们的公众账号发信息都是post请求。

  //这里写法多种,怎么写就要看你这么获取微信请求时发给我们的XML

  InputStream is = request.getInputStream();

  PushManage push = new PushManage();

  String getXml = push.PushManageXml(is);

转载于:https://www.cnblogs.com/qq12345678/p/3305544.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值