ホームページ > 記事 > WeChat アプレット > asp.net を使用して WeChat パブリック プラットフォームを開発し、ユーザー メッセージを取得して処理する
この記事では、主に asp.net を使用して、ユーザー メッセージを取得して処理する WeChat パブリック プラットフォームを開発する方法を紹介します。関連情報については、必要な友人は、
ユーザーメッセージの取得
を参照してください。ユーザーが送信したメッセージは、WeChat サーバーによって送信された HTTP POST リクエスト に含まれています。 POST リクエストのデータ ストリームから、
WeChat サーバーへの HTTP リクエスト メッセージの例を取得します
POST /cgi-bin/wxpush?msg_signature=477715d11cdb4164915debcba66cb864d751f3e6×tamp=1409659813& nonce=1372 623149 HTTP/1.1
ホスト: qy.weixin.qq.com
POST リクエストからデータを取得します
この方法で取得されたユーザー メッセージには、暗号化されたメッセージと暗号化されていないメッセージの 2 つの状況があります。 WeChat パブリック プラットフォームで Web サイトを設定するときに追加されます。平文モードが選択されている場合は、暗号化されません。セキュリティの場合。モードが選択されている場合、ユーザーメッセージは暗号化され、さらに処理するために復号化する必要があります
WeChatパブリックプラットフォーム開発ドキュメントを参照してください
•テキストメッセージ<xml> <ToUserName><![CDATA[{0}]]></ToUserName> <FromUserName><![CDATA[{1}]]></FromUserName> <CreateTime>{2}</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[{3}]]></Content> </xml>
•
Pictures
<xml> <ToUserName><![CDATA[{0}]]></ToUserName> <FromUserName><![CDATA[{1}]]></FromUserName> <CreateTime>{2}</CreateTime> <MsgType><![CDATA[image]]></MsgType> <Image> <MediaId><![CDATA[{3}]]></MediaId> </Image> </xml>メッセージ形式がYesになっている場合は、対応するパラメータを設定するだけです
responseContent = string.Format(ReplyType.Message_Text, FromUserName.InnerText, ToUserName.InnerText, DateTime.Now.Ticks, String.IsNullOrEmpty(reply)?"Sorry,I can not follow you." :reply);
3.メッセージ
C++、C#
は、WeChatパブリックプラットフォーム開発者ドキュメントで提供されています。Javaなどのさまざまな言語での暗号化と復号化の例では、2つのファイルをプロジェクトに追加するだけで済みます。 Sample.cs は WeChat チームによって提供されたサンプル コードです。引用は必要ありません。さらにカプセル化して呼び出しを容易にするために、WXBizMsgCrypt.cs ファイルへの参照を追加するだけです。新しいクラス WeChatSecurityHelper
と、暗号化 (EncryptMsg) と復号 (DecryptMsg) を実行する 2 つのメソッドをクラス内に定義し、WXBizMsgCrypt オブジェクト を作成し、そのメソッドを呼び出して暗号化と復号を行います。具体的なコードはコード例で見つけることができます。
WeChatSecurityHelperusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Common { public class WeChatSecurityHelper { /// <summary> /// 定义Token,与微信公共平台上的Token保持一致 /// </summary> private const string Token = "StupidMe"; /// <summary> /// AppId 要与 微信公共平台 上的 AppId 保持一致 /// </summary> private const string AppId = "11111111111"; /// <summary> /// 加密用 /// </summary> private const string AESKey = "pvX2KZWRLQSkUAbvArgLSAxCwTtxgFWF3XOnJ9iEUMG"; private static Tencent.WXBizMsgCrypt wxcpt = new Tencent.WXBizMsgCrypt(Token, AESKey, AppId); private string signature,timestamp,nonce; private static LogHelper logger = new LogHelper(typeof(WeChatSecurityHelper)); public WeChatSecurityHelper(string signature, string timestamp, string nonce) { this.signature = signature; this.timestamp = timestamp; this.nonce = nonce; } /// <summary> /// 加密消息 /// </summary> /// <param name="msg">要加密的消息</param> /// <returns>加密后的消息</returns> public string EncryptMsg(string msg) { string encryptMsg=""; int result = wxcpt.EncryptMsg(msg, timestamp, nonce, ref encryptMsg); if (result == 0) { return encryptMsg; } else { logger.Error("消息加密失败"); return ""; } } /// <summary> /// 解密消息 /// </summary> /// <param name="msg">消息体</param> /// <returns>明文消息</returns> public string DecryptMsg(string msg) { string decryptMsg = ""; int result = wxcpt.DecryptMsg(signature, timestamp, nonce, msg,ref decryptMsg); if (result != 0) { logger.Error("消息解密失败,result:"+result); } return decryptMsg; } } }
上記がこの記事の全内容です。皆様に気に入っていただければ幸いです
。以上がasp.net を使用して WeChat パブリック プラットフォームを開発し、ユーザー メッセージを取得して処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。