实现微信验证通过并发送欢迎语

最近微信新上线了一些功能,越来越多的人对微信感兴趣并开发一些小功能,前一段时间研究了一下微信的东西,跟想刚开始入门的人一点参考。

一、获取凭证

在使用通用接口前,你需要做以下两个操作;

1.申请一个微信公众账号,并获取appid和appsecret(在公众平台申请自定义菜单功能,在高级模式中开启开发者模式,填写URL和Token后获得)

2.通过获取凭证接口获取到acess_token

二、验证微信通信

string TOKEN = "acess_token";
public void valid()
    {
        string echoStr = Request.QueryString["echostr"];
        if (checkSignature())
        {
            if (!string.IsNullOrEmpty(echoStr))
            {
                Response.Write(echoStr);
                Response.End();
            }
        }
        else
        {
            return;
        }
    }

    private bool checkSignature()
    {
        string signature = Request.QueryString["signature"];
        string timestamp = Request.QueryString["timestamp"];
        string nonce = Request.QueryString["nonce"];
        //排序5
        string[] arr = { TOKEN, timestamp, nonce };
        Array.Sort(arr, StringComparer.Ordinal);
        string tmpStr = string.Join("", arr);
        //加密后字符串
        string tmpSha = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, FormsAuthPasswordFormat.SHA1.ToString());
        tmpStr = tmpSha.ToLower();
        if (tmpStr.Equals(signature.ToLower()))
        {
            return true;
        }
        else
        {
            return false;
        }
    }


三、当用户关注公共账号时发送欢迎语

public void ResponseMsg(HttpContext context)
    {
        string input = string.Empty;
        using (StreamReader sr = new StreamReader(context.Request.InputStream))
        {
            input = sr.ReadToEnd();
        }


        if (string.IsNullOrEmpty(input))
        {
            context.Response.ContentType = "text/plain";
            context.Response.End();
        }
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(input);


        string MsgType = xmlDoc.DocumentElement.SelectSingleNode("MsgType").InnerText;
        string ToUserName = xmlDoc.DocumentElement.SelectSingleNode("ToUserName").InnerText;
        string FromUserName = xmlDoc.DocumentElement.SelectSingleNode("FromUserName").InnerText;


        string resultStr = string.Empty;
        string contentStr = string.Empty;


        if (MsgType != "")
        {
            string fromUsername = FromUserName;
            string toUsername = ToUserName;
            DateTime time = DateTime.Now;
            if (MsgType == "event")
            {
                string msgType = "text";
                string textTpl = "<xml>"
                            + "<ToUserName><![CDATA[{0}]]></ToUserName>"
                            + "<FromUserName><![CDATA[{1}]]></FromUserName>"
                            + "<CreateTime>{2}</CreateTime>"
                            + "<MsgType><![CDATA[{3}]]></MsgType>"
                            + "<Content><![CDATA[{4}]]></Content>"
                            + "<FuncFlag>0</FuncFlag>"
                            + "</xml>";
                contentStr = "欢迎加入微信公共账号";
                resultStr = string.Format(textTpl, fromUsername, toUsername, time, msgType, contentStr);
                context.Response.Write(resultStr);
            }
        }
        else
        {
            context.Response.Write(resultStr);
        }
    }
如果你关注公共账号发送“欢迎加入微信公共账号”的话,那么恭喜你,你已经实现微信验证通过并发送欢迎语

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值