微信公众号开发接入_官方文档

接入概述

 接入微信公众号平台开发,开发者需要按照如下步骤完成:
    1、填写服务器配置
    2、验证服务器地址的有效性
    3、依据接口文档实现业务逻辑

一、填写服务器配置

登录微信公众号平台官网后,在公众号平台开发基本设置页面,勾选协议成为开发者,点击修改配置按钮,填写服务器地址url、token和EncodingAESKey,其中url是开发者用来接收微信消息和事件接口的url。token可由开发者任意填写,用作生成签名(该token会和接口url中包含的token进行比对,从而验证安全性)EncodingAESKey由开发者手动填写或随机生成,将用作消息加解密密钥。

103516_rJcI_1760394.png

二、验证消息确实是来自微信服务器

    开发者提交消息后,微信服务器将发送GET请求到填写到服务器地址URL上,GET请求携带参数如下表所示:

103701_xMpw_1760394.png

开发者通过校验signature对请求进行校验。若确认此次get请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。

103923_chNI_1760394.png

104011_kn8J_1760394.png

java代码:验证

 public String access(HttpServletRequest request, HttpServletResponse response) {
        // 验证URL真实性
        logger.info("进入验证access");
        // 微信加密签名
        String signature = request.getParameter("signature");
        // 时间戳
        String timestamp = request.getParameter("timestamp");
        // 随机数
        String nonce = request.getParameter("nonce");
        // 随机字符串
        String echostr = request.getParameter("echostr");
        List<String> params = new ArrayList<String>();
        params.add(token);
        params.add(timestamp);
        params.add(nonce);
        // 1. 将token、timestamp、nonce三个参数进行字典序排序
        Collections.sort(params, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
        // 2. 将三个参数字符串拼接成一个字符串进行sha1加密
        String temp = SHA1.encode(params.get(0) + params.get(1) + params.get(2));
        if (temp.equals(signature)) {
            try {
                response.getWriter().write(echostr);
                logger.info("成功返回 echostr:" + echostr);
                return echostr;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        logger.info("失败 认证");
        return null;
    }

三、依据接口文档实现业务逻辑

    验证URL有效性成功后即接入生效,成为开发者。可以在公众平台网站中申请微信认证,认证成功后,将获得更多接口权限,满足更多业务需求。

成为开发者后,用户每次向公众号发送消息、或者产生自定义菜单、或产生微信支付订单等情况时,开发者填写等服务器配置URL将得到微信服务器推送过来的消息和事件,开发者可以依据自身业务逻辑进行响应,如回复消息。

转载于:https://my.oschina.net/inchlifc/blog/1619504

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值