# Weixin-Web **Repository Path**: JavaRepo/weixin-web ## Basic Information - **Project Name**: Weixin-Web - **Description**: 用来测试微信公共平台相关流程的Demo - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2016-01-07 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #20151021 1、在 微信公共平台 上的开发者中心下进行 服务器配置,其中在进行服务器配置的过程中,需要验证token, 用来验证这个服务器地址归你所使用; 2、服务器地址需要配置80端口 ,本地没有此环境,故使用 tunnel 进行局域网端口转发; 3、微信公共平台 这里的 TOKEN令牌 需要进行配置,配置过之后,需要跟程序中的TOKEN 部分进行校验; 程序中的TOKEN 设置在 WechatCallbackApi 这个servlet中; 注意这里的TOKEN值需要和微信刚刚平台上面的TOKEN值保持一致,否则通过不了校验; http://mp.weixin.qq.com/wiki/home/index.html 接入指南 第一步:申请消息接口 登录https://mp.weixin.qq.com/ 后,在公众平台后台管理页面 – 开发者中心页,点击“修改配置”按钮,填写URL、Token和EncodingAESKey, 其中URL是开发者用来接收微信服务器数据的接口URL。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。 EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式。 模式的选择与服务器配置在提交后都会立即生效,请开发者谨慎填写及选择。加解密方式的默认状态为明文模式, 选择兼容模式和安全模式需要提前配置好相关加解密代码,详情请参考消息体签名及加解密部分的文档。 第二步:验证URL有效性 开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数: 参数 描述 signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 timestamp 时间戳 nonce 随机数 echostr 随机字符串 开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。 加密/校验流程如下: 1. 将token、timestamp、nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密 3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 #20151022 微信公共平台 开发者中心 服务器配置,入口为统一的一个url: 进行服务器配置过程中,为get请求,校验通过的话,说明服务器配置成功,此Demo中为 WechatCallbackApi.doGet(……)方法; 进行数据交互的过程中,为post请求,这里可以根据发送的请求报文进行数据分析,回复给用户相关的数据类型; 此例中现阶段仅仅完成了 文本报文 的操作,解析用户发送的文本,并且返回给用户重新封装过得数据格式; #20151023 引入lucene,用来根据用户输入的内容,匹配相关的资源回复给用户; #20151027 返回 ImageMessage 信息 #20160112 使用微信公共平台 测试号管理 。获取测试平台公共号下所属的用户列表信息,并且显示用户图片 #20160113 websocket整合,完成向公共号发送消息之后,此消息展示在页面中;