首页 > 其他分享 >微信开发基础教程

微信开发基础教程

时间:2023-06-27 18:05:14浏览次数:45  
标签:SelectSingleNode string 微信 Request 开发 InnerText 基础教程 root


微信开发学习笔记----

1.正确填写服务器配置信息

微信开发基础教程_微信

其中Url为我们的要接收并处理微信服务器发送的消息的一般处理程序地址,如:http://sadi.qrenlei.cn/WXTest.ashx

Token是一个开发者自定义的验证字符串,可任意填写。

点击提交前,需要把咱们的包含一般处理程序的网站发布到服务器上。

2.一般处理程序的编写

微信开发基础教程_服务器_02

 

 




if (Request.HttpMethod.ToLower() == "get")
            {
                Validate();
            } 

        public void Validate()
        {
                 //微信接口接入验证代码
                string signature = Request["signature"];
                string token = "Your token";
                string timestamp = Request["timestamp"];
                string nonce = Request["nonce"];
                string echostr = Request["echostr"];

                string[] temp = { token, timestamp, nonce };
                Array.Sort(temp);
                string str = string.Join("", temp);
                string sha1Str = FormsAuthentication.HashPasswordForStoringInConfigFile(str, "SHA1");

                if (sha1Str.ToLower() == signature.ToLower())
                {
                    Response.Write(echostr);
                }
        }




服务器端配置好后,点击“提交”按钮,就会提示成功接入的信息。

3.接收消息

当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。

微信开发基础教程_微信_03




else if (Request.HttpMethod.ToLower() == "post")
            {
                //微信服务器发送信息是通过post请求,向发送者以流的形式发送xml
                Stream xmlStream = Request.InputStream;
                XmlDocument doc = new XmlDocument();
                doc.Load(xmlStream);
                XmlElement root = doc.DocumentElement;
                string toUserName = root.SelectSingleNode("ToUserName").InnerText;
                string fromUserName = root.SelectSingleNode("FromUserName").InnerText;
                int createTime = int.Parse(root.SelectSingleNode("CreateTime").InnerText);
                string msgType = root.SelectSingleNode("MsgType").InnerText;
                string content = root.SelectSingleNode("Content").InnerText;
                long msgId = Int64.Parse(root.SelectSingleNode("MsgId").InnerText);
                
            }
     //因为服务器返回的是时间戳,即现在的时间与1970年1月1日8时0分0秒的秒数差,所以可以用此函数对时间进行处理
        public DateTime GetDateTime(int timeSpan)
        {
            return new DateTime(1970,1,1,8,0,0).AddSeconds(timeSpan);
        }



4.返回消息




//微信服务器接收信息是通过post请求,向接收者以流的形式发送xml
                /*
                 格式为:
                    <xml>
                    <ToUserName><![CDATA[toUser]]>          </ToUserName>
                    <FromUserName><![CDATA[fromUser]]></FromUserName>
                    <CreateTime>12345678</CreateTime>
                    <MsgType><![CDATA[text]]></MsgType>
                    <Content><![CDATA[你好]]></Content>
                    </xml>
                 */
                string reXml = string.Format(@"<xml>
                    <ToUserName><![CDATA[{0}]]></ToUserName>
                    <FromUserName><![CDATA[{1}]]></FromUserName>
                    <CreateTime>{2}</CreateTime>
                    <MsgType><![CDATA[text]]></MsgType>
                    <Content><![CDATA[{3}]]></Content>
                    </xml>", fromUserName, toUserName, GetSecond(), "已接收到你的消息[服务器自动回复]");
                Response.Write(reXml);



public int GetSecond()
          {
              return (int)(DateTime.Now - new DateTime(1970, 1, 1, 8, 0, 0)).TotalSeconds;
          }



 

现在可以测试一下你的公众号,向公众号发送一个文本消息,公众号在5秒后会自动回复你!

 

标签:SelectSingleNode,string,微信,Request,开发,InnerText,基础教程,root
From: https://blog.51cto.com/nethub/6564741

相关文章

  • 基于vue +Java+springboot+element-ui开发的智慧班牌系统源码
    电子班牌系统又称之为智慧班牌,是当前校园数字化信息化建设、文化建设的主流,是校园日常工作安排、校园信息发布、班级文化风采展示、课堂交流、家校互通的重要应用载体。在每个班级门口安装一台电子班牌终端,实现学校日常管理、校园信息化建设数据对接,为学生提供一个德智教育文化环境......
  • 微信小程序开发 01
    最近为了准备大创,进行了一些微信小程序开发的相关学习,包括环境的搭建,准备工作,以及对项目结构的一些简单介绍环境搭建:可以在微信开发平台下载微信开发者工具,这里我为了减少与我的授课视频的差异化,我选择了下载一个稍微旧一点的稳定版,在黑马程序员的相关资料中下载的准备工作包括......
  • SAP ABAP 动态结构实现发送企业微信应用消息
    企业微信官方接口:应用支持推送文本、图片、视频、文件、图文等类型。请求方式:POST(HTTPS)请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN 大概思路:1.封装调用企业微信函数SE37:ZWECHAT_SEND_MESSAGE_MSGTYPE 注:   a.  ......
  • 微信商家转账零钱优化版
    配置文件<?phpreturn['abc'=>["merchant_id"=>env('POINT_ABC_MERCHANTID'),"app_id"=>env('POINT_ABC_APP_ID'),"......
  • 关于在大模型战略资源储备的不同阶段,B端开发者的行动策略的一些思考
    一、大模型产业链的终态猜想我们先定义理想状态下,大模型应该具备哪些综合性能:指令理解能力:能够理解并遵循指令,并按照指令完成相应的逻辑推理、知识抽取、概念总结、API调用等任务多语言理解能力:能够同时理解包括中文、英文等主流语言逻辑推理能力:能够将复杂任务分解为相互串......
  • 敏捷开发缺陷管理
    ​缺陷管理通常关注如下几个方面:1.缺陷的处理速度2.缺陷处理的状态3.缺陷的分布4.缺陷产生的原因使用Leangoo敏捷看板我们可以对缺陷进行可视化的管理,方便我们对缺陷的处理进展、负责人、当前状态、分布情况等各个方面一目了然。下面我们来了解如何使用敏捷工具管理跟踪......
  • 直播开发app,vue防抖 自定义ref实现输入框防抖
    直播开发app,vue防抖自定义ref实现输入框防抖 首先需要把input的双向绑定v-mode拆开为一个value和一个input事件,在事件里注册一个函数debUpdata,debUpdata里获取到input输入内容再赋值给text,这就类似于手写v-mode,代码如下: <template> <divclass="hello">  <inpu......
  • 【HarmonyOS】低代码开发使用module中的自定义组件
     “Module是应用/服务的基本功能单元,包含了源代码、资源文件、第三方库及应用/服务配置文件,每一个Module都可以独立进行编译和运行。一个HarmonyOS应用/服务通常会包含一个或多个Module,因此,可以在工程中创建多个Module,每个Module分为Ability和Library两种类型。”这个是HarmonyOS......
  • RAKsmart有奖问答,爆款免费领,前30名送随机微信红包!!!
    为更好的了解客户需求及RAKsmart自信不足,即日起,RAKsmart将推出有奖问卷调查,参与问卷调查即可领取SV1024MVPS使用一个月,同时,前30名参与问卷调查,可领取微信随机1~10元不等,送完即止,快来参与吧!活动时间:美国西岸圣何塞时间 06/26/2023~07/10/2023问卷调查地址:https://www.wenjuan.com/......
  • 使用 nuxt3 开发简约优雅的个人 blog
    起因很早前我就有过搭建个人博客的想法,但是我希望使用纯前端实现,这样就不需要付出额外的后端维护成本,维护成本又低,而且更加安全。网上也有很多博客框架但是也不符合我的需求,所以我使用了nuxt3+ts搭建了自己的个人博客,更加贴合个人需求,在功能和样式也能做到随心所欲前端的同学......