WeChat開発asp.net

高洛峰
高洛峰オリジナル
2017-02-23 13:51:541580ブラウズ

私は最近 WeChat 開発に携わり、PHP コードも検討しましたが、最終的には依然として C# 言語を使用しました

新しい Index.ashx ファイルをバックグラウンドで作成しました。

まず最初に

using System.IOを引用しました


ここでの主なことは、

public class index : IHttpHandler {

    private readonly string Token = "xxxx";//与微信公众账号后台的Token设置保持一致,区分大小写。
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";

        string signature = context.Request["signature"];
        string timestamp = context.Request["timestamp"];
        string nonce = context.Request["nonce"];
        string echostr = context.Request["echostr"];

        if (context.Request.HttpMethod == "GET")
        {
            if (CheckSign(signature, timestamp, nonce))
            {
                context.Response.Output.Write(echostr);
            }
        }
        else
        {
            //post method - 当有用户想公众账号发送消息时触发,写事件
        }

        context.Response.End();
    }

実際、ここでのアイデアはA/B/を受け取ることです。 C/D、Eはカスタマイズされ、B/C/EはFを生成し、それをAと比較し、それらが等しい場合は出力Dを返します;

public bool CheckSign(string signature, string timestamp, string nonce)
    {
        string[] strs = new string[] { Token, timestamp, nonce };
        Array.Sort(strs);//排序
        string strNew = string.Join("", strs);//连接成字符串
        strNew = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strNew, "SHA1");//加密
        if (signature == strNew.ToLower())
            return true;
        return false;
    }

書き込みを指摘するのは難しいです。 !

このようにして、受信したデータを判断し、それに対応する操作を行うことができます。

以下に例を示します。あまり抽象的ではないかもしれません。この方法 これは簡単な返信です。

WeChat 開発 asp.net に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

WeChat開発asp.net

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。