微信公众号java开发

抽空总结一下微信公众号开发,用的是现在github最流行的wechatSDK:weixin-java-tools.这个包挺强大,不过缺点就是文档极其简陋,像我这样的lowB码农,用起来还是需要摸索。

首先总得看微信api,贴一下地址吧。https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

一开始看微信api必须用qq浏览器,现在不用了,谷歌就可以了。

1.接入微信公众平台开发

贴一下api里那个服务器地址接口。

@RequestMapping(value = "signature")
public void signature(HttpServletResponse response,HttpServletRequest request, String signature, String timestamp,String nonce, String echostr, String postData) throws IOException {
    response.setContentType("text/html;charset=utf-8");
    response.setStatus(HttpServletResponse.SC_OK);
    if (echostr != null || StringUtils.isNotBlank(echostr)) {
        boolean ck = weiXinMPService.checkSignature(signature, timestamp,nonce, echostr);
        if (ck) {
            ServletUtil.writerText(response, echostr);
        }
        return;
    }
    // 如果没有echostr,则说明传递过来的是用户消息,在解密方法里会自动验证消息是否合法
    WxMpConfigStorage defaultStorage = WeiXinMpInit.defaultStorage;
    String encryptType = StringUtils.isBlank(request.getParameter("encrypt_type")) ? "raw" : request.getParameter("encrypt_type");
    if ("raw".equals(encryptType)) {
        // 明文传输的消息
        WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(request.getInputStream());
        WxMpXmlOutMessage outMessage = weiXinMPService.analyticalData(inMessage);
        if (outMessage != null) {
            response.getWriter().write(outMessage.toXml());
        }
		return;
	}
    if ("aes".equals(encryptType)) {
        // 是aes加密的消息
        String msgSignature = request.getParameter("msg_signature");
        WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml(request.getInputStream(), defaultStorage, timestamp, nonce,msgSignature);
        WxMpXmlOutMessage outMessage = weiXinMPService.analyticalData(inMessage);
        response.getWriter().write(outMessage.toEncryptedXml(defaultStorage));
        return;
    }
	response.getWriter().println("不可识别的加密类型");
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值