4.0 テキストメッセージの受信/返信
①テキストメッセージの受信/返信の原理の説明
一般のWeChatユーザーが公開アカウントにメッセージを送信すると、WeChatサーバーはメッセージのXMLデータパケットをPOSTします。開発者が入力した URL にアクセスします。開発を開始する前に、まず通常のメッセージを受信するための WeChat パブリック プラットフォーム用の WeChat 開発ドキュメントを読み、WeChat のメッセージ処理メカニズムをある程度理解してから開発を開始してください (通常のメッセージを受信するための WeChat 開発ドキュメント)メッセージ)
注:
1. メッセージの重複を再試行する場合は、msgid を使用してメッセージの重複を排除することをお勧めします。
2. WeChat サーバーが 5 秒以内に応答を受信しない場合、接続は切断され、リクエストは合計 3 回再試行されます。サーバーが 5 秒以内に処理して応答することを保証できない場合は、空の文字列で直接応答できます。WeChat サーバーはこれに対して何もせず、再試行も開始しません。詳細については、「メッセージの送信 - メッセージへの受動的返信」を参照してください。
3. より高いセキュリティを確保するために、開発者はパブリック プラットフォームの公式 Web サイトの開発者センターでメッセージ暗号化を設定できます。暗号化をオンにすると、ユーザーが送信するメッセージが暗号化され、公式アカウントによってユーザーに受動的に返信されるメッセージも暗号化する必要があります (ただし、カスタマー サービス インターフェイスなどの API 呼び出しを通じてユーザーにメッセージを送信する開発者は影響を受けません)。メッセージの暗号化と復号化の詳細な手順については、「メッセージの暗号化と復号化の手順」を参照してください。
開発者サーバーへの POST の XML 形式は次のとおりです:
<xml> <tousername></tousername> <fromusername></fromusername> <createtime>1348831860</createtime> <msgtype></msgtype> <content></content> <msgid>1234567890123456</msgid> </xml>
受信メッセージ パケットのパラメータの説明:
返されるテキスト メッセージの XML 形式:
<xml> <tousername></tousername> <fromusername></fromusername> <createtime>12345678</createtime> <msgtype></msgtype> <content></content> </xml>
Return テキスト メッセージ パケットのパラメーターの説明:
②テキスト メッセージの受信/返信コードの実装
開発者は自分のサーバーで WeChat サーバーから XML データ パケット POST を受信します。受信コードは次のとおりです。
if(IsPostBack) { //*********************************自动应答代码块********************************* string postString = string.Empty; using (Stream stream = HttpContext.Current.Request.InputStream) { Byte[] postBytes = new Byte[stream.Length]; stream.Read(postBytes, 0, (Int32)stream.Length); //接收的消息为GBK格式 postString = Encoding.GetEncoding("GBK").GetString(postBytes); string responseContent = help.ReturnMessage(postString ); //返回的消息为UTF-8格式 HttpContext.Current.Response.ContentEncoding = Encoding.UTF8; HttpContext.Current.Response.Write(responseContent); } //********************************自动应答代码块end******************************* }
注: メッセージを受信するときは、メッセージ形式を「GBK」形式に変換する必要があります。そうしないと、後でメッセージを解析するときに効果的に解析されません。
ReturnMessage() 処理メソッドのコードは次のとおりです:
/// <summary> /// 统一全局返回消息处理方法 /// </summary> /// <param name="postStr"></param> /// <returns></returns> public string ReturnMessage(string postStr) { string responseContent = ""; XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(new System.IO.MemoryStream(System.Text.Encoding.GetEncoding("GB2312").GetBytes(postStr))); XmlNode MsgType = xmldoc.SelectSingleNode("/xml/MsgType"); if (MsgType != null) { switch (MsgType.InnerText) { case "event": responseContent = EventHandle(xmldoc);//菜单事件处理 break; case "text": responseContent = TextHandle(xmldoc);//文本消息处理 break; default: break; } } return responseContent; }
TextHandle (xmldoc) 処理メソッドのコードは次のとおりです:
/// <summary> /// 接受文本消息并回复自定义消息 /// </summary> /// <param name="xmldoc"></param> /// <returns></returns> public string TextHandle(XmlDocument xmldoc) { string responseContent = ""; XmlNode ToUserName = xmldoc.SelectSingleNode("/xml/ToUserName"); XmlNode FromUserName = xmldoc.SelectSingleNode("/xml/FromUserName"); XmlNode Content = xmldoc.SelectSingleNode("/xml/Content"); if (Content != null) { if (Content.InnerText == "指定回复消息的自定义文本") { responseContent = string.Format(XMLTemplate.Message_Text, FromUserName.InnerText, ToUserName.InnerText, DateTime.Now.Ticks, "自定义回复消息内容"); } } return responseContent; }
関数を実装するコードのデモはここで完了しています。他のメッセージ処理モードもこの中で対話します。たとえば、テキスト メッセージ、画像メッセージ、音声メッセージ、ビデオ メッセージ、ショート ビデオ メッセージ、地理的位置メッセージ、リンク メッセージなどの受信/返信は、上記のコードを参照することで実装できます。
C# WeChat 開発シリーズ - テキスト メッセージの受信/返信に関する記事をさらにご覧になりたい場合は、PHP 中国語 Web サイトに注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
