国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ WeChat アプレット WeChatの開発 .net を使用して WeChat パブリック プラットフォーム インスタンスを開発する方法に関するチュートリアルを共有する

.net を使用して WeChat パブリック プラットフォーム インスタンスを開発する方法に関するチュートリアルを共有する

Mar 10, 2017 pm 02:30 PM
WeChatの開発

この記事では、主に .net を使用して WeChat パブリック プラットフォーム インスタンスを開発する方法についてのチュートリアルを共有します。WeChat パブリック プラットフォーム開発の原則と、それに対応する .net 実裝方法について詳しく説明します。必要な友人はこれを參照してください。記事

この例では、.net を使用して WeChat パブリック プラットフォームを開発する方法を説明します。皆さんの參考に共有してください。具體的な実裝方法は以下の通りです:

1. 説明:

パブリックプラットフォーム情報(bào)インターフェースは、開発者に申請(qǐng)した後のみ、パブリックプラットフォームの開発機(jī)能を使用できるようにする新しいメッセージ処理方法を提供します。ここで URL とトークンを入力する必要があります。これらの 2 つの情報(bào)には、獨(dú)自のサーバー (外部ネットワーク サーバー) リソースが必要です。URL は、開発者が任意に入力できます。この記事では、単純な Web サイトを作成し、1 つのページのバックグラウンド プログラムで関連するインターフェイス情報(bào)を構(gòu)成し、それを外部ネットワーク サーバーに公開する方法を使用します。このページにアクセスするための URL は、ここに入力する必要があります。

.net を使用して WeChat パブリック プラットフォーム インスタンスを開発する方法に関するチュートリアルを共有する

2. インターフェース設(shè)定プロセス:

1. Web サイトへのアクセス - 検証署名:

コードは次のとおりです:

const string Token = "aka";//定義一個(gè)局部變量不可以被修改,這里定義的變量要與接口配置信息中填寫的Token一致
protected void Page_Load(object sender, EventArgs e)
{
        string postStr = "";
        Valid();//校驗(yàn)簽名,當(dāng)填入的信息提交之后頁(yè)面有提示“你已成功成為公眾平臺(tái)開發(fā)者,可以使用公眾平臺(tái)的開發(fā)功能”這個(gè)的時(shí)候,接下來你就需要注釋掉這個(gè)校驗(yàn)的方法,使得后面的消息回復(fù)得以正常運(yùn)作
        if (Request.HttpMethod.ToLower() == "post")//當(dāng)普通微信用戶向公眾賬號(hào)發(fā)消息時(shí),微信服務(wù)器將POST該消息到填寫的URL上
        {
            postStr = PostInput();
            if (string.IsNullOrEmpty(postStr) == false)
            {
                //WriteLog(postStr,Server);//計(jì)入日記
                ResponseMsg(postStr);
            }
        }
}
private void Valid()
{
        string echoStr = Request.QueryString["echoStr"].ToString();
        if (CheckSignature())
        {
            if (!string.IsNullOrEmpty(echoStr))
            {
                Response.Write(echoStr);
                Response.End();
            }
        }
}

.net を使用して WeChat パブリック プラットフォーム インスタンスを開発する方法に関するチュートリアルを共有する

コードは次のとおりです:

/// <summary>
/// 驗(yàn)證微信簽名
/// </summary>
/// <returns></returns>
private bool CheckSignature()
{
        string signature = Request.QueryString["signature"].ToString();
        string timestamp = Request.QueryString["timestamp"].ToString();
        string nonce = Request.QueryString["nonce"].ToString();
        string[] ArrTmp = { Token, timestamp, nonce };
        Array.Sort(ArrTmp);//字典排序
        string tmpStr = string.Join("", ArrTmp);
        tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//對(duì)該字符串進(jìn)行sha1加密
        tmpStr = tmpStr.ToLower();//對(duì)字符串中的字母部分進(jìn)行小寫轉(zhuǎn)換,非字母字符不作處理
        //WriteLog(tmpStr, Server);//計(jì)入日志
        if (tmpStr == signature)//開發(fā)者獲得加密后的字符串可與signature對(duì)比,標(biāo)識(shí)該請(qǐng)求來源于微信。開發(fā)者通過檢驗(yàn)signature對(duì)請(qǐng)求進(jìn)行校驗(yàn),若確認(rèn)此次GET請(qǐng)求來自微信服務(wù)器,請(qǐng)?jiān)瓨臃祷豦chostr參數(shù)內(nèi)容,則接入生效,否則接入失敗
        {
            return true;
        }
        else
            return false;
}
/// <summary>
/// 獲取post返回來的數(shù)據(jù)
/// </summary>
/// <returns></returns>
private string PostInput()
{
        Stream s = System.Web.HttpContext.Current.Request.InputStream;
        byte[] b = new byte[s.Length];
        s.Read(b, 0, (int)s.Length);
        return Encoding.UTF8.GetString(b);
}
/// <summary>
///返回微信信息結(jié)果
/// </summary>
/// <param name="weixinXML"></param>
private void ResponseMsg(string weixinXML)
{
        try
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(weixinXML);//讀取XML字符串
            XmlElement rootElement = doc.DocumentElement;
            XmlNode MsgType = rootElement.SelectSingleNode("MsgType");//獲取字符串中的消息類型
            string resxml = "";
            if (MsgType.InnerText == "text")//如果消息類型為文本消息
            {
                var model = new
                {
                    ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText,
                    FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText,
                    CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText,
                    MsgType = MsgType.InnerText,
                    Content = rootElement.SelectSingleNode("Content").InnerText,
                    MsgId = rootElement.SelectSingleNode("MsgId").InnerText
                };
                resxml += "<xml><ToUserName><![CDATA[" + model.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + model.ToUserName + "]]></FromUserName><CreateTime>" + ConvertDateTimeInt(DateTime.Now) + "</CreateTime>";
                if (!string.IsNullOrEmpty(model.Content))//如果接收到消息
                {
                    if (model.Content.Contains(" 你好") || model.Content.Contains(" 好") || model.Content.Contains("hi") || model.Content.Contains("hello"))// 你好
                    {
                        resxml += "<MsgType><![CDATA[text]]></MsgType><Content><![CDATA[你好,有事請(qǐng)留言,偶會(huì)及時(shí)回復(fù)你的。]]></Content><FuncFlag>0</FuncFlag></xml>";
                    }
                 }
                 else//沒有接收到消息
                {
                    resxml += "<MsgType><![CDATA[text]]></MsgType><Content><![CDATA[親,感謝您對(duì)我的關(guān)注,有事請(qǐng)留言。]]></Content><FuncFlag>0</FuncFlag></xml>";
                }
                Response.Write(resxml);
            }
            if (MsgType.InnerText == "image")//如果消息類型為圖片消息
            {
                var model = new
                {
                    ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText,
                    FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText,
                    CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText,
                    MsgType = MsgType.InnerText,
                    PicUrl = rootElement.SelectSingleNode("PicUrl").InnerText,
                    MsgId = rootElement.SelectSingleNode("MsgId").InnerText
                };
                resxml += "<xml><ToUserName><![CDATA[" + model.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + model.ToUserName + "]]></FromUserName><CreateTime>" + ConvertDateTimeInt(DateTime.Now) + "</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>1</ArticleCount><Articles><item><Title><![CDATA[歡迎您的光臨!]]></Title><Description><![CDATA[非常感謝您的關(guān)注!]]></Description><PicUrl><![CDATA[http://www.miracleart.cn/]]></PicUrl><Url><![CDATA[http://www.miracleart.cn/]]></Url></item></Articles><FuncFlag>0</FuncFlag></xml>";
                Response.Write(resxml);
            }
            else//如果是其余的消息類型
            {
                var model = new
                {
                    ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText,
                    FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText,
                    CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText,
                };
                resxml += "<xml><ToUserName><![CDATA[" + model.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + model.ToUserName + "]]></FromUserName><CreateTime>" + ConvertDateTimeInt(DateTime.Now) + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[親,感謝您對(duì)我的關(guān)注,有事請(qǐng)留言,我會(huì)及時(shí)回復(fù)你的哦。]]></Content><FuncFlag>0</FuncFlag></xml>";
                Response.Write(resxml);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        Response.End();
}
/// <summary>
/// datetime轉(zhuǎn)換成unixtime
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
private int ConvertDateTimeInt(System.DateTime time)
{
        System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
        return (int)(time - startTime).TotalSeconds;
}
/// <summary>
/// 寫日志(用于跟蹤),可以將想打印出的內(nèi)容計(jì)入一個(gè)文本文件里面,便于測(cè)試
/// </summary>
public static void WriteLog(string strMemo, HttpServerUtility server)
{
        string filename = server.MapPath("/logs/log.txt");//在網(wǎng)站項(xiàng)目中建立一個(gè)文件夾命名logs(然后在文件夾中隨便建立一個(gè)web頁(yè)面文件,避免網(wǎng)站在發(fā)布到服務(wù)器之后看不到預(yù)定文件)
        if (!Directory.Exists(server.MapPath("//logs//")))
            Directory.CreateDirectory("//logs//");
        StreamWriter sr = null;
        try
        {
            if (!File.Exists(filename))
            {
                sr = File.CreateText(filename);
            }
            else
            {
                sr = File.AppendText(filename);
            }
            sr.WriteLine(strMemo);
        }
        catch
        {
        }
        finally
        {
            if (sr != null)
                sr.Close();
        }
}


以上が.net を使用して WeChat パブリック プラットフォーム インスタンスを開発する方法に関するチュートリアルを共有するの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP WeChat 開発: メッセージの暗號(hào)化と復(fù)號(hào)化を?qū)g裝する方法 PHP WeChat 開発: メッセージの暗號(hào)化と復(fù)號(hào)化を?qū)g裝する方法 May 13, 2023 am 11:40 AM

PHP は、Web 開発およびサーバーサイド プログラミング、特に WeChat 開発で広く使用されているオープン ソースのスクリプト言語(yǔ)です?,F(xiàn)在、ますます多くの企業(yè)や開発者が WeChat 開発に PHP を使用し始めています。これは、PHP が本當(dāng)に學(xué)びやすく、使いやすい開発言語(yǔ)となっているためです。 WeChat の開発では、メッセージの暗號(hào)化と復(fù)號(hào)化はデータのセキュリティに関わるため、非常に重要な問題となります。暗號(hào)化と復(fù)號(hào)化の方法を持たないメッセージの場(chǎng)合、ハッカーは簡(jiǎn)単にデータを入手でき、ユーザーに脅威を與える可能性があります。

PHP WeChat開発:投票機(jī)能の実裝方法 PHP WeChat開発:投票機(jī)能の実裝方法 May 14, 2023 am 11:21 AM

WeChat パブリック アカウントの開発では、投票機(jī)能がよく使用されます。投票機(jī)能はユーザーが気軽に交流に參加できるほか、イベントの開催や意見調(diào)査などにも重要なツールです。この記事では、PHPを使用してWeChatの投票機(jī)能を?qū)g裝する方法を紹介します。 WeChat公式アカウントの認(rèn)証を取得する まずはWeChat公式アカウントの認(rèn)証を取得する必要があります。 WeChatパブリックプラットフォームでは、WeChatパブリックアカウント、公式アカウント、およびパブリックアカウントに対応するトークンのAPIアドレスを設(shè)定する必要があります。 PHP言語(yǔ)を使用した開発の過程では、WeChatが公式に提供するPHを使用する必要があります

PHP を使用して WeChat マス メッセージング ツールを開発する PHP を使用して WeChat マス メッセージング ツールを開発する May 13, 2023 pm 05:00 PM

WeChat の人気に伴い、マーケティング ツールとして WeChat を使用し始める企業(yè)が増えています。 WeChat グループ メッセージング機(jī)能は、企業(yè)が WeChat マーケティングを行うための重要な手段の 1 つです。ただし、手動(dòng)送信のみに頼ると、マーケターにとって非常に時(shí)間と労力がかかる作業(yè)になります。したがって、WeChat マス メッセージング ツールを開発することが特に重要です。この記事では、PHP を使用して WeChat マス メッセージング ツールを開発する方法を紹介します。 1. 準(zhǔn)備作業(yè) WeChat マス メッセージング ツールを開発するには、次の技術(shù)點(diǎn)を習(xí)得する必要があります。 PHP WeChat パブリック プラットフォーム開発の基礎(chǔ)知識(shí) 開発ツール: Sub

PHP WeChat 開発: カスタマー サービスのチャット ウィンドウ管理を?qū)g裝する方法 PHP WeChat 開発: カスタマー サービスのチャット ウィンドウ管理を?qū)g裝する方法 May 13, 2023 pm 05:51 PM

WeChat は現(xiàn)在、世界最大のユーザーベースを持つソーシャル プラットフォームの 1 つであり、モバイル インターネットの普及に伴い、ますます多くの企業(yè)が WeChat マーケティングの重要性を認(rèn)識(shí)し始めています。 WeChat マーケティングを?qū)g施する場(chǎng)合、顧客サービスは重要な部分です。カスタマー サービスのチャット ウィンドウをより適切に管理するために、WeChat 開発に PHP 言語(yǔ)を使用できます。 1. PHP WeChat 開発の概要 PHP は、Web 開発の分野で広く使用されているオープン ソースのサーバー側(cè)スクリプト言語(yǔ)です。 WeChat パブリック プラットフォームが提供する開発インターフェイスと組み合わせると、PHP 言語(yǔ)を使用して WeChat を?qū)g行できます。

PHP WeChat 開発: ユーザータグ管理を?qū)g裝する方法 PHP WeChat 開発: ユーザータグ管理を?qū)g裝する方法 May 13, 2023 pm 04:31 PM

WeChat パブリック アカウントの開発において、ユーザー タグ管理は非常に重要な機(jī)能であり、開発者がユーザーをよりよく理解し、管理できるようになります。この記事では、PHPを使用してWeChatのユーザータグ管理機(jī)能を?qū)g裝する方法を紹介します。 1. WeChat ユーザーの openid を取得する WeChat ユーザータグ管理機(jī)能を使用する前に、まずユーザーの openid を取得する必要があります。 WeChat パブリック アカウントの開発では、ユーザーの承認(rèn)を通じて openid を取得するのが一般的です。ユーザー認(rèn)証が完了したら、次のコードを通じてユーザーを取得できます。

PHP WeChat 開発: グループ メッセージ送信レコードの実裝方法 PHP WeChat 開発: グループ メッセージ送信レコードの実裝方法 May 13, 2023 pm 04:31 PM

WeChat が人々の生活においてますます重要なコミュニケーション ツールになるにつれ、その機(jī)敏なメッセージング機(jī)能はすぐに多くの企業(yè)や個(gè)人に支持されるようになりました。企業(yè)にとって、WeChat をマーケティング プラットフォームとして開発することがトレンドになっており、WeChat 開発の重要性が徐々に顕著になってきています。その中でも、グループ送信機(jī)能はさらに広く使用されているため、PHP プログラマとしてグループ メッセージ送信レコードを?qū)g裝するにはどうすればよいでしょうか?以下に簡(jiǎn)単に紹介します。 1. WeChat パブリック アカウントに関する開発知識(shí)を理解する グループ メッセージ送信レコードの実裝方法を理解する前に、

PHP を使用して WeChat パブリック アカウント開発を?qū)g裝する手順 PHP を使用して WeChat パブリック アカウント開発を?qū)g裝する手順 Jun 27, 2023 pm 12:26 PM

PHP を使用して WeChat 公開アカウントを開発する方法 WeChat 公開アカウントは、多くの企業(yè)にとってプロモーションと交流のための重要なチャネルとなっており、一般的に使用される Web 言語(yǔ)として PHP を使用して WeChat 公開アカウントを開発することもできます。この記事では、PHP を使用して WeChat 公開アカウントを開発する具體的な手順を紹介します。ステップ1:WeChat公式アカウントの開発者アカウントを取得する WeChat公式アカウントの開発を開始する前に、WeChat公式アカウントの開発者アカウントを申請(qǐng)する必要があります。具體的な登録プロセスについては、WeChat パブリック プラットフォームの公式 Web サイトを參照してください。

WeChat 開発に PHP を使用するにはどうすればよいですか? WeChat 開発に PHP を使用するにはどうすればよいですか? May 21, 2023 am 08:37 AM

インターネットとモバイル スマート デバイスの発展に伴い、WeChat はソーシャルおよびマーケティング分野に欠かせないものになりました。デジタル化が進(jìn)むこの時(shí)代において、WeChat 開発に PHP を使用する方法が多くの開発者の焦點(diǎn)になっています。この記事では主に、PHP を WeChat 開発に使用する方法とそのヒントや注意事項(xiàng)を紹介します。 1. 開発環(huán)境の準(zhǔn)備 WeChat を開発する前に、まず対応する開発環(huán)境を準(zhǔn)備する必要があります。具體的には、PHP オペレーティング環(huán)境と WeChat パブリック プラットフォームをインストールする必要があります。

See all articles