ホームページ  >  記事  >  WeChat アプレット  >  asp.net を使用して WeChat パブリック プラットフォームを開発し、ユーザー メッセージを取得して処理する

asp.net を使用して WeChat パブリック プラットフォームを開発し、ユーザー メッセージを取得して処理する

高洛峰
高洛峰オリジナル
2017-03-15 16:59:411923ブラウズ

この記事では、主に asp.net を使用して、ユーザー メッセージを取得して処理する WeChat パブリック プラットフォームを開発する方法を紹介します。関連情報については、必要な友人は、

ユーザーメッセージの取得

を参照してください。ユーザーが送信したメッセージは、WeChat サーバーによって送信された HTTP POST リクエスト に含まれています。 POST リクエストのデータ ストリームから、

WeChat サーバーへの HTTP リクエスト メッセージの例を取得します

POST /cgi-bin/wxpush?msg_signature=477715d11cdb4164915debcba66cb864d751f3e6&timestamp=1409659813& nonce=1372 623149 HTTP/1.1

ホスト: qy.weixin.qq.com

POST リクエストからデータを取得します

asp.net を使用して WeChat パブリック プラットフォームを開発し、ユーザー メッセージを取得して処理する

この方法で取得されたユーザー メッセージには、暗号化されたメッセージと暗号化されていないメッセージの 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

Message

<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 オブジェクト を作成し、そのメソッドを呼び出して暗号化と復号を行います。具体的なコードはコード例で見つけることができます。

WeChatSecurityHelper

asp.net を使用して WeChat パブリック プラットフォームを開発し、ユーザー メッセージを取得して処理する

using 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。