zoukankan      html  css  js  c++  java
  • 1、接入公众平台

    推荐查看官方文档: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432

    1、公众号有 编辑模式 和 开发模式  

    开发模式交互: 用户关注公众号后发送消息,先到 微信服务器, 再转发到 指定的服务器(我们定义的应用),等处理完再返回给微信服务器,进而返回给用户。

    所以想进行接入公众平台测试要有: 一、独立域名的网站(用来和微信服务器交互,单纯测试的话,可以用花生壳,参考上一篇);

                                                  二、微信公众号(这里由于测试,直接用微信的公众帐号测试号,通过手机微信扫描二维码即可登陆。

                                                  地址: http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

    登陆之后,可以在接口配置信息看到 如下图:

    1、配置接口信息

    URL:       是指开发者用来接收微信消息和事件的接口URL,如果服务器域名是mypc.cn,应用名为weixin,  用weixinValidate.do来接收消息,url如图上

    Token:    可由开发者可以任意填写,用作生成签名(该Token会和接口URL(如weixinValidate.do)中包含的Token进行比对,从而验证安全性),可以随便填写,但注意保密。

    详情参考 接入指南 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

    这二个都是从应用得到的,点提交后,提示 配置成功才证明 我们的服务器接入公众平台。

    下面是服务器的weixinValidate.do

    首先看文档了解到

    代码如下:

    @Controller
    public class ValidateController {
    
        @RequestMapping(value = "/weixinValidate",method = RequestMethod.GET)
        @ResponseBody
        public String weixinValidate(String signature, String timestamp, String nonce, String echostr ){
    
            // 1)将token、timestamp、nonce三个参数进行字典序排序
            String[] arrs = {WeixinUtil.TOKEN,timestamp,nonce}; //WeixinUtil.TOKEN: 抽取出来的TOKEN,为了重用
            Arrays.sort(arrs);
            // 2)将三个参数字符串拼接成一个字符串进行sha1加密
            String str = arrs[0] + arrs[1] + arrs[2];
            // 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
            if (signature.equals(SecurityUtil.SHA1(str))){
                //确认此次GET请求来自微信服务器,返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败
                return echostr;
            }else
                return null;
        }
    }
    
    
    将应用部署到服务器后,重启后。 回到刚才 微信的公众帐号测试号的接口配置信息,点提交后,提示 配置成功才证明 我们的服务器接入公众平台。

    这时候就接入成功了。

    微信后台发送消息是一个GET请求,URL会带上signature、timestamp、nonce这3个参数;

    如果是别人伪造的请求,由于不知道token,所以,无法计算出正确的signature;

    timestamp和nonce 防止第三方通过监听后重放攻击

    
    
  • 相关阅读:
    Django(二)
    VSCode写Django的坑
    AXF—个Django项目
    Linux
    安装软件方面的问题及解决方法杂烩
    Python
    环境搭建
    Django(一)
    关于excel表
    (十)selenium实现微博高级搜索信息爬取
  • 原文地址:https://www.cnblogs.com/weiapro/p/7695269.html
Copyright © 2011-2022 走看看