Heim >WeChat-Applet >WeChat-Entwicklung >Verwenden Sie asp.net, um die öffentliche WeChat-Plattform zu entwickeln, um Benutzernachrichten abzurufen und zu verarbeiten

Verwenden Sie asp.net, um die öffentliche WeChat-Plattform zu entwickeln, um Benutzernachrichten abzurufen und zu verarbeiten

高洛峰
高洛峰Original
2017-03-15 16:59:411948Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung von asp.net vorgestellt Relevante Informationen zur Entwicklung der öffentlichen WeChat-Plattform zum Empfangen und Verarbeiten von Benutzernachrichten finden Freunde in Not unter

Benutzernachrichten erhalten

Die von Benutzern gesendeten Nachrichten Sind auf dem WeChat-Server enthalten und werden in einer HTTP-POST-Anfrage gesendet, muss die vom Benutzer gesendete Nachricht aus dem Datenstrom der POST-Anfrage abgerufen werden

Beispiel für eine HTTP-Anfragenachricht für die WeChat-Server, um die Nachricht an den Server zu senden

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

Host: qy .weixin.qq.com

Daten aus POST-Anfrage abrufen

Verwenden Sie asp.net, um die öffentliche WeChat-Plattform zu entwickeln, um Benutzernachrichten abzurufen und zu verarbeiten

Die auf diese Weise erhaltene Benutzernachricht kann in zwei Situationen vorliegen : verschlüsselte Nachricht oder unverschlüsselte Nachricht. Dies hängt mit der Auswahl des Nachrichtenverschlüsselungs- und Entschlüsselungsmodus zusammen, wenn Sie den Klartextmodus auswählen Wenn Sie Abgesicherten Modus auswählen, werden Benutzernachrichten verschlüsselt und müssen vor der weiteren Verarbeitung entschlüsselt werden

2. Auf Benutzernachrichten antworten

Siehe Dokumentation zur Entwicklung der öffentlichen WeChat-Plattform

•Textnachrichten

<xml> 
<ToUserName><![CDATA[{0}]]></ToUserName> 
<FromUserName><![CDATA[{1}]]></FromUserName> 
<CreateTime>{2}</CreateTime> 
<MsgType><![CDATA[text]]></MsgType> 
<Content><![CDATA[{3}]]></Content> 
</xml>


BilderNachrichten

<xml> 
<ToUserName><![CDATA[{0}]]></ToUserName> 
<FromUserName><![CDATA[{1}]]></FromUserName> 
<CreateTime>{2}</CreateTime> 
<MsgType><![CDATA[image]]></MsgType> 
<Image> 
<MediaId><![CDATA[{3}]]></MediaId> 
</Image> 
</xml>

Das Nachrichtenformat ist bereits vorhanden, dann müssen wir nur noch die entsprechenden Parameter einstellen

responseContent = string.Format(ReplyType.Message_Text, 
 FromUserName.InnerText, 
 ToUserName.InnerText, 
DateTime.Now.Ticks, 
String.IsNullOrEmpty(reply)?"Sorry,I can not follow you." :reply);

3. Verschlüsselung und Entschlüsselung von Benutzernachrichten und Servernachrichten

Entwicklerdokumentation für die öffentliche WeChat-Plattform c++, C#, Java usw. Für Sprachverschlüsselungs- und -entschlüsselungsbeispiele verwenden wir nur zwei der Dateien. Sample.cs ist der vom WeChat-Team bereitgestellte Beispielcode . Es ist nicht erforderlich, auf die Dateien WXBizMsg

.cs und Cryptography.cs zu verweisen neue Klasse WeChatSecurityHelper

Definieren Sie zwei Methoden für die Verschlüsselung (EncryptMsg) und die Entschlüsselung (DecryptMsg), erstellen Sie ein WXBizMsgCrypt-Objekt

und rufen Sie seine Methode zum Verschlüsseln und Entschlüsseln auf. siehe Codebeispiel

WeChatSecurityHelperVerwenden Sie asp.net, um die öffentliche WeChat-Plattform zu entwickeln, um Benutzernachrichten abzurufen und zu verarbeiten


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;
    }
  }
}
Das Obige ist der gesamte Inhalt Ich hoffe, dass dieser Artikel Ihnen allen gefällt.

Das obige ist der detaillierte Inhalt vonVerwenden Sie asp.net, um die öffentliche WeChat-Plattform zu entwickeln, um Benutzernachrichten abzurufen und zu verarbeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn