この記事では、WeChat インターフェイスを使用して C# で WeChat メッセージに応答し、WeChat ポータルを開発するプロセスを主に紹介します。必要な友人は参考にしてください。
WeChat アプリケーションは本格化しており、多くの企業が情報エクスプレスに乗り出すことを望んでいます。これはビジネスチャンスであり、技術的な方向性でもあるため、時間があるときに WeChat 関連の開発について勉強することは計画済みの取り決めの 1 つです。この一連の記事では、WeChat の関連する開発プロセスと関連する経験の概要をステップバイステップの観点から包括的に紹介し、関連する開発プロセスを誰もが理解できるようにしたいと考えています。このエッセイは主に前回の記事「C# を使用した WeChat インターフェイスを使用した WeChat ポータル アプリケーションの開発」に基づいて詳細な紹介を提供し、WeChat メッセージの処理と応答のプロセスを紹介します。
1. WeChat のメッセージ応答インタラクション
WeChat のサーバーは、顧客の携帯電話と開発者のサーバーの間にブリッジを構築し、メッセージの送信と応答を通じてユーザーとのインタラクションを実現することがわかっています。これがメッセージ フロー図です。
WeChatが開発者サーバーに要求するメッセージには多くの種類がありますが、基本的にはテキストメッセージ処理、イベントメッセージ処理、音声メッセージ認識、開発者になる前の基本的なメッセージ認証操作に分類されます。私が描いたメッセージ分類図では、これらの関係とそれぞれのメッセージ絞り込み分類が紹介されています。
これらのメッセージリクエストについては、サーバーサイドを開発するときに、対応する処理に関連するロジックを作成し、WeChatサーバープラットフォームへのメッセージに応答する必要があります。
前回のエッセイでは、WeChatメッセージ処理の入力操作を紹介するコードを投稿しました。コードは次のとおりです。
コードは次のとおりです:
public void ProcessRequest(HttpContext context) { //WHC.Framework.Commons.LogTextHelper.Info("测试记录"); string postString = string.Empty; if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST") { using (Stream stream = HttpContext.Current.Request.InputStream) { Byte[] postBytes = new Byte[stream.Length]; stream.Read(postBytes, 0, (Int32)stream.Length); postString = Encoding.UTF8.GetString(postBytes); } if (!string.IsNullOrEmpty(postString)) { Execute(postString); } } else { Auth(); } }
Execute(postString); は、さまざまなメッセージの配布と処理を実装するメッセージ処理関数です。
コードは次のとおりです:
/// <summary> /// 处理各种请求信息并应答(通过POST的请求) /// </summary> /// <param name="postStr">POST方式提交的数据</param> private void Execute(string postStr) { WeixinApiDispatch dispatch = new WeixinApiDispatch(); string responseContent = dispatch.Execute(postStr); HttpContext.Current.Response.ContentEncoding = Encoding.UTF8; HttpContext.Current.Response.Write(responseContent); }
内部の WeixinApiDispatch は、リクエスト メッセージの内容を抽出し、さまざまな種類のメッセージ パラメーターを構築し、それらをさまざまな応答関数に渡して処理し、カプセル化されたメッセージを返します。応答の XML コンテンツ。
具体的なコード処理ロジックを以下の図に示します。
このメッセージ処理インターフェースは、実際にはリクエストメッセージに対する一連の処理を定義します。パラメータは別のメッセージオブジェクトです。具体的なコード定義は次のとおりです(スペースの都合上、一部のインターフェースは省略しています。詳細は参照してください)。上の写真へ)。
コードは次のとおりです:
/// <summary> /// 客户端请求的数据接口 /// </summary> public interface IWeixinAction { /// <summary> /// 对文本请求信息进行处理 /// </summary> /// <param name="info">文本信息实体</param> /// <returns></returns> string HandleText(RequestText info); /// <summary> /// 对图片请求信息进行处理 /// </summary> /// <param name="info">图片信息实体</param> /// <returns></returns> string HandleImage(RequestImage info); /// <summary> /// 对订阅请求事件进行处理 /// </summary> /// <param name="info">订阅请求事件信息实体</param> /// <returns></returns> string HandleEventSubscribe(RequestEventSubscribe info); /// <summary> /// 对菜单单击请求事件进行处理 /// </summary> /// <param name="info">菜单单击请求事件信息实体</param> /// <returns></returns> string HandleEventClick(RequestEventClick info); }
上記のコードからわかるように、さまざまなメッセージがさまざまなメッセージ エンティティ クラスの形式で処理関数に渡されます (注: エンティティ クラス Iこれはプログラム開発の必要に応じて自分で定義したものであり、WeChat 自体のエンティティ クラスではありません)。そうしないと、毎回異なるメッセージ内容を解析する必要がある場合に問題が発生しやすくなります。このような厳密に型指定されたデータ型により、WeChat アプリケーションは堅牢かつ効率的に開発されます。これらのエンティティクラスのオブジェクトは一定の継承関係を持っており、その継承関係は以下の通りである。
2. WeChat の管理インターフェイス
上記のメッセージ カテゴリは、WeChat サーバーから開発者サーバーに送信されるメッセージ要求操作です。また、開発者サーバーから WeChat へのメッセージ要求または応答であるメッセージもあります。これは一時的に WeChat の管理インターフェイスと呼ばれ、これらのインターフェイスを通じて関連するメッセージの返信やデータ管理操作を実行できることを示しています。その分類図を以下に示します。
WeChat 返信メッセージの処理は、上記のセクションの情報と同じです。BaseMessage エンティティ クラスからも継承されます (同様に、下の図のエンティティ クラスとその継承関係も、プログラム開発を容易にするためにカスタマイズされています)。 ) 、その関係は次のとおりです
一般に、返信するために最もよく使用されるメッセージはテキスト メッセージとグラフィック メッセージです。
テキストメッセージの効果は以下の通りです。
グラフィックメッセージ、写真を追加でき、詳細なリンクページも追加できます。これは、コンテンツが多く、より良い効果を示したい人にとっては、一般的に使用されます。効果は以下の通りです。
以上がWeChat インターフェイスを使用して C# で WeChat メッセージを処理し、応答して WeChat ポータル アプリケーションを開発する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。