この記事C#WeChat開発におけるテキストメッセージの受信/返信の原理と実装方法は一定の参考値がありますので、以下のエディタで見てみましょう
テキストメッセージの受信/返信
①受信/戻る テキスト メッセージングの原理の説明
一般の WeChat ユーザーが公開アカウントにメッセージを送信すると、WeChat サーバーは開始前に開発者が入力した URL に POST メッセージの XML データをパッケージ化します。 WeChat で通常のメッセージを受信するための WeChat パブリック プラットフォームを読んでドキュメントを作成し、WeChat のメッセージ処理メカニズム (通常のメッセージを受信するための WeChat 開発ドキュメント) をある程度理解してから開発を開始してください。
1. 再試行のためのメッセージの重複排除については、重みを排除するために msgid を使用することをお勧めします。
2. WeChat サーバーは 5 秒以内に応答を受信しない場合、接続を切断してリクエストを再開始し、合計 3 回再試行します。サーバーが 5 秒以内に処理して応答することを保証できない場合は、空の文字列で直接応答できます。WeChat サーバーはこれに対して何もせず、再試行も開始しません。詳しくは『
メッセージを送信 - メッセージに対する受動的返信』をご覧ください。 3. より高度な セキュリティ 保護を確保するために、開発者はパブリック プラットフォームの公式 Web サイトの開発者センターでメッセージ暗号化を設定できます。暗号化をオンにすると、ユーザーが送信するメッセージが暗号化され、ユーザーのメッセージに対するパブリック アカウントの受動的な返信も暗号化する必要があります (ただし、カスタマー サービス
インターフェースやその他の API 呼び出しを通じてユーザーにメッセージを送信する開発者は)影響を受けません)。メッセージの暗号化と復号化の詳細な手順については、「メッセージの暗号化と復号化の手順」を参照してください。 開発者サーバーへの 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>
パケットパラメータの説明:
戻るテキストメッセージのXML形式:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[你好]]></Content>
</xml>
テキストメッセージパケットパラメータの説明を返す:
②テキストメッセージの受信/返信コードの実装
開発者は自分のサーバー上の 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*******************************
}
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) の処理メソッドのコードは次のとおりです。
コードのデモ機能の実現はここにあります。Complete です。テキスト メッセージの受信/返信、写真
メッセージ、音声メッセージ、ビデオメッセージ、ショート ビデオ メッセージ、地理的位置メッセージ、リンクなど、後続の他のメッセージ処理モードもこのメソッドに基づいて対話します。上記のコードを参照して機能を実装できます。
以上がC# WeChatの開発原理とテキストメッセージの受信/返信の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。