微信开发(一)-配置环境并发送文本信息

1.到万网申请免费主机

2.登录微信公众平台

安装新手开发说明,一步一步看下去

第一步:填写服务器配置,就是刚才从万网上申请来的

Token自己随便取

为了方便测试加密方式选择明文模式

第二步,验证服务器的地址的有效性

#region 1.0验证消息的真实性 - private void ValidateUrl()
private void ValidateUrl()
{
    #region 获取微信服务器Get发送过来的四个参数
    //开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带四个参数:
    HttpContext context = HttpContext.Current;
    //微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
    string signature = context.Request.QueryString["signature"];
    //时间戳
    string timestamp = context.Request.QueryString["timestamp"];
    //随机数
    string nonce = context.Request.QueryString["nonce"];
    //随机字符串
    string echostr = context.Request.QueryString["echostr"];
    #endregion

    #region 加密/校验来自微信服务器的请求
    string token = "Kim2015";//必须跟公共账号上的一致
    //1. 将token、timestamp、nonce三个参数进行字典序排序
    string[] temp1 = { token, timestamp, nonce };
    Array.Sort(temp1);

    //2. 将三个参数字符串拼接成一个字符串进行sha1加密
    string temp2 = string.Join("", temp1);
    string temp3 = FormsAuthentication.HashPasswordForStoringInConfigFile(temp2,
        FormsAuthPasswordFormat.SHA1.ToString());
    //3. 若确认此次GET请求来自微信服务器,请原样返回echostr参数内容
    if (temp3.ToLower().Equals(signature))
    {
        context.Response.Write(echostr);
    }
    #endregion

注意验证请求时,http发送的方式是get请求

下面来试试接收文本消息的要求

以及回复文本消息的要求

#region 2.0接收并处理文本信息 - private void HandleTextMsg()
private void HandleTextMsg()
{
    #region 接收微信服务器POST发送过来的xml数据包
    /*
     <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>
     */
    HttpContext context = HttpContext.Current;
    //接收xml数据包
    Stream xmlStream = context.Request.InputStream;
    //构造xml对象
    XmlDocument doc = new XmlDocument();
    doc.Load(xmlStream);
    //获取根节点
    XmlElement rootElement = doc.DocumentElement;
    //解析xml数据
    string toUserName = rootElement.SelectSingleNode("ToUserName").InnerText;
    string fromUserName = rootElement.SelectSingleNode("FromUserName").InnerText;
    string createTime = rootElement.SelectSingleNode("CreateTime").InnerText;
    string msgType = rootElement.SelectSingleNode("MsgType").InnerText;
    string content = rootElement.SelectSingleNode("Content").InnerText;
    string msgId = rootElement.SelectSingleNode("MsgId").InnerText;

    #endregion

    #region 解析xml数据包,并按照一定格式返回
    /*
     <xml>
    <ToUserName><![CDATA[toUser]]></ToUserName>
    <FromUserName><![CDATA[fromUser]]></FromUserName>
    <CreateTime>12345678</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[你好]]></Content>
    </xml>
     */

    string xmlMsg = "<xml>" +
                    "<ToUserName><![CDATA[" + fromUserName + "]]></ToUserName>" +
                    "<FromUserName><![CDATA[" + toUserName + "]]></FromUserName>" +
                    "<CreateTime>" + GetCreateTime() + "</CreateTime>" +
                    "<MsgType><![CDATA[text]]></MsgType>" +
                    "<Content><![CDATA[“很高兴认识你”]]></Content>" +
                    "</xml>";
    context.Response.Write(xmlMsg);
    #endregion
}
#endregion

该执行文件的PR方法如下:

public void ProcessRequest(HttpContext context)
{

    if (context.Request.HttpMethod.ToLower().Equals("get"))
    {
       context.Response.Write(msg);
        //校验
        ValidateUrl();
    }
    else
    {
        //当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上
        HandleTextMsg();
    }
}

开始发布该网站

2.配置微信服务器,配置好之后,按提交,然后按启动

开始测试,测试地址:http://debug.fangbei.org/

总结:其实微信服务器开发,就是在微信端发送到自己的服务器之间,都了一个微信服务器的步骤。处理过程,依旧和http请求一样。

发送报文-处理报文-响应报文

时间: 2024-08-26 05:27:41

微信开发(一)-配置环境并发送文本信息的相关文章

001_java开发中配置环境变量的含义

在学习java的时候需要配置环境变量,但是为什么需要配置path和classpath这2个环境变量呢?    (1) 首先,搞起清楚path这个环境变量的作用.我们cmd到dos命令窗口的时候,输入ipconfig.        其实它调用的是存放在某个目录下面的ipconfig.exe程序,那么操作系统如何知道ipconfig程序存放在哪个目录下的呢?        这时候我们用set path的命令,就能看到很多目录,用;隔开.(如下所示)        #################

2 微信开发本地代理环境的搭建--实现将内网ip映射到外网

微信公众号的开发,要搭建网站,并且随时都有可能修改网站内容进行调试,这就需要临时外网能返回本地开发环境搭建的项目进行测试,即内网映射到公网,但是好多开发者没有自己的域名和服务器,这里我们先来搭建一个本地代理环境把服务器地址变为外网能访问的地址: 这里,我对内网映射外网的方法进行了一下简单的总结: 1 ngrok映射工具(失效) 2 nodejs的localtunnel服务(虚拟域名,随机生成,总是变化,不方便) 3 www.tunnel.mobl(失效) 4 QQ浏览器微信调试工具(已下架) 5

微信开发——前期配置

本文讲前端如何独立的进行微信开发(没有搭建后台,如何通过config接口注入权限验证配置). 1.申请微信公众号成功后,进入微信公众平台(https://mp.weixin.qq.com/),登录. 2.在开发者工具中选择公众平台测试账号,点击进入,微信扫码授权登录. 3.进入测试号页面,得到测试号信息: 4.完成JS-SDK使用权限签名算法. 首先获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):打开链接https://api.weixi

企业微信开发基础配置

企业微信,这玩意和钉钉基本没区别,主打企业移动办公,弱化了社交,强化了企业服务 起步比钉钉晚,格局分布基本一样,自建应用和第三方应用 开发第三方应用就不说了,下面说说开发配置自建应用吧: 1.注册登录企业微信,创建公司(这里面会有个企业id需要记下来,这个id后面掉微信接口要用): 2.创建自建应用,填写相关信息,(名称,图标,可见用户群体)如下: 3.创建好应用进来以后,有两个参数(后面和微信接口对接要用的)和两个设置非常重要:  至此等到了三个id分别如下: CorpID(企业id)----

[微信开发] - 关于测试号以及消息发送及回复

通过测试号,可以使用微信平台的全面功能. 而微信官方文档中也具体地描述了各种对接端口的参数调用和规则:https://mp.weixin.qq.com/wiki 今天小试牛刀将用户关注微信平台的事件Event以及发送信息以及通过Java后台程序返回消息大概做了个初版: 首先对接微信平台 首先你得通过微信平台设置一些参数,这里不详细讲了,看文档! 之后通过测试号就可以进行测试了!之后通过测试号微信公众平台就可以收发信息了! 微信公众号接口权限说明 原文地址:https://www.cnblogs.

微信开发测试号配置

1.进入微信测试平台 2.配置接口信息 URL:开发模式下的验证token的url token:‘token’ 3.网页服务-->网页账号 --> 修改授权回调页面域名:[此处的回调域名是你的域名,不能添加http://字样,只需要写域名就可以了] 这时候在手机微信平台就可以看到开发的网页内容了

.NET 微信开发 JSSDK配置 wx.config调用 invalid signature签名错误分析

官方文档 要认真看一遍之后,开始搞 JSSDK是网页调用微信功能的配置文件.在这里浪费了大量时间  所以记录一下.(吐槽下微信返回的错误信息,也是没谁了...) 页面先配置一下.注释里几个参数,可以用ajax会获取. <script type="text/javascript"> wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端

eclipseEE开发web配置环境

习惯了myeclipse吗?突然换到eclipseEE不习惯? 那就配置一下吧,那就和myeclipse使用基本一样了. step1: 当然是安装eclipseEE啦,这就不多说了. step2:配置工作空间默认编码防中文乱码: windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右 侧Text file encoding,选择Other,改变为UTF-8,以后新建立工程其属性对话框中的Text fil

微信开发——申请微信支付功能及支付环境设置

很久没写博客文章了,最近一直负责微信开发实现微信支付功能,所以在这方面有一定的了解. 在开始实现微信支付功能的前提是公众号已认证的并已通过审核的服务号,具体微信支付申请人的流程没有比官 方公布的流程更详细的了,附上链接https://mp.weixin.qq.com/paymch/readtemplate?t=mp/business/faq_tmpl,开通 并与微信工作人员沟通微信支付相关授权路径之后,在微信后台可以看到微信支付的相关功能 在支付申请选择下可以查看商户的基本资料以及我们开发支付功