zoukankan      html  css  js  c++  java
  • 微信公众平台开发----自定义菜单、消息处理及获取OpenID(C#)

    一、成为开发者

    1. 服务器配置

         登录微信公众平台官网后,在公众平台后台管理页面 开发者中心页,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,如下图所示:

    微信服务器配置

       其中URL是开发者用来接收微信消息和事件的接口URL。Token可由开发者任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。
    

    2. 验证URL

           开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带四个参数:
    

    这里写图片描述

    加密/校验流程如下:
    1. 将token、timestamp、nonce三个参数进行字典序排序
    2. 将三个参数字符串拼接成一个字符串进行sha1加密
    3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

    按照该流程,在上面填写的服务器中,写入如下验证代码:

    这里写图片描述

    将以上代码部署到服务器端,通过微信公众平台去验证,如果验证成功,则成为开发者成功,否则失败。验证成功后显示如下图:

    这里写图片描述

    二、创建菜单

    1. 新建菜单JSON文件,如下图所示: 
      这里写图片描述

       其中,button目录下为以及菜单,sub_button下为二级菜单
    2. 获取acxess_token

          access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效
    3. 这里写图片描述
      参数说明 
      这里写图片描述

    4. 创建菜单

      这里写图片描述

    注意: 
    1、自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。
    2、一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。
    3、创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来。

    三、消息处理

     对消息的监听操作,要放置到最初配置URL的服务器中进行操作。判断是事件还是信息。
    

    1. 消息监听

    <xml>
     <ToUserName><![CDATA[toUser]]></ToUserName>
     <FromUserName><![CDATA[fromUser]]></FromUserName> 
     <CreateTime>1348831860</CreateTime>
     <MsgType><![CDATA[text]]></MsgType>
     <Content><![CDATA[this is a test]]></Content>
     <MsgId>1234567890123456</MsgId>
     </xml>

    这里写图片描述 
    2. 事件监听

        点击菜单拉取消息时的事件推送 
    

    推送XML数据包示例:

    <xml>
    <ToUserName><![CDATA[toUser]]></ToUserName>
    <FromUserName><![CDATA[FromUser]]></FromUserName>
    <CreateTime>123456789</CreateTime>
    <MsgType><![CDATA[event]]></MsgType>
    <Event><![CDATA[CLICK]]></Event>
    <EventKey><![CDATA[EVENTKEY]]></EventKey>
    </xml>

    获取菜单点击事件

    四、获取openID

     用户向公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID。
    

    消息返回参数如下: 
    消息参数列表

    解析XML,并获取OpenID:

    获取OpenID

  • 相关阅读:
    Socket.IO API Server
    Socket.IO 中文笔记
    Express 中文API 笔记
    JWT
    Sass 记录
    CSS高级技巧(二)背景和边框
    CSS高级技巧(一)常见的注意事项
    CSS进阶(二十四)流向的改变
    linux应用之test命令详细解析
    数字证书原理(ssl,https)
  • 原文地址:https://www.cnblogs.com/pangguoming/p/9496744.html
Copyright © 2011-2022 走看看