ホームページ >WeChat アプレット >WeChatの開発 >asp.net WeChat開発メッセージ応答方法の詳細説明

asp.net WeChat開発メッセージ応答方法の詳細説明

高洛峰
高洛峰オリジナル
2017-03-24 14:43:131752ブラウズ

一般の WeChat ユーザーが公開アカウントにメッセージを送信すると、WeChat サーバーはメッセージの XML データ パケットを開発者が入力した URL に POST します。

注意:

1、关于重试的消息排重,推荐使用msgid排重。
2、微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“发送消息-被动回复消息”。
3、为了保证更高的安全保障,开发者可以在公众平台官网的开发者中心处设置消息加密。开启加密后,用户发来的消息会被加密,公众号被动回复用户的消息也需要加密(但开发者通过客服接口等API调用形式向用户发送消息,则不受影响)。关于消息加解密的详细说明,请见“消息加解密说明”。

各メッセージタイプのプッシュXMLパケット構造は次のとおりです:

テキストメッセージ
 <xml>
 <tousername></tousername>
 <fromusername></fromusername> 
 <createtime>1348831860</createtime>
 <msgtype></msgtype>
 <content></content>
 <msgid>1234567890123456</msgid>
 </xml>

パラメータ

説明 ToUserNameDeveloperWeChat ID送信者アカウント (OpenID)CreateTimeメッセージ作成時間 (整数)MsgTypeテキストコンテンツテキストメッセージ内容MsgIdメッセージID、64ビット整数型ピクチャメッセージ
 <xml>
 <tousername></tousername>
 <fromusername></fromusername>
 <createtime>1348831860</createtime>
 <msgtype></msgtype>
 <picurl></picurl>
 <mediaid></mediaid>
 <msgid>1234567890123456</msgid>
 </xml>
FromUserName

パラメータ

説明ToUユーザー名開発者WeChat ID送信者アカウント(OpenID)CreateTimeメッセージ作成時間(整数)MsgTypeimagePicUrl画像リンクMediaId画像メッセージ メディア ID を使用すると、マルチメディア ファイル ダウンロード インターフェイスを呼び出してデータをプルできます。 MsgIdメッセージID、64ビット整数型音声メッセージ
<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1357290913</createtime>
<msgtype></msgtype>
<mediaid></mediaid>
<format></format>
<msgid>1234567890123456</msgid>
</xml>
FromUserName

パラメータ

説明ユーザー名開発者WeChat ID送信者アカウント (OpenID)CreateTimeメッセージ作成時刻 (整数)MsgTypeVoice は音声ですMediaId音声メッセージのメディア ID 、複数のメディア ファイルを呼び出すことができますダウンロード インターフェイスはデータを取得します。 形式amr、speexなどの音声形式MsgIDメッセージID、64ビット整数
<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1357290913</createtime>
<msgtype></msgtype>
<mediaid></mediaid>
<format></format>
<recognition></recognition>
<msgid>1234567890123456</msgid>
</xml>
追加フィールドの Format は音声形式 (通常は amr)、Recognition は UTF8 エンコーディングを使用した音声認識結果です。
FromUserName
音声認識を有効にすると、ユーザーは音声を送信することにご注意くださいWeChat はプッシュされた音声メッセージ XML パケットに認識フィールドを追加します (注: クライアントのキャッシュのため、開発者は音声認識機能を有効または無効にします。この機能は新しいフォロワーにはすぐに有効になり、24 時間かかります)すでにフォローしているユーザーに対して有効になります。開発者はテストのためにこのアカウントを再度フォローできます)。音声認識をオンにした後の音声 XML データ パケットは次のとおりです。

ビデオメッセージ

<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1357290913</createtime>
<msgtype></msgtype>
<mediaid></mediaid>
<thumbmediaid></thumbmediaid>
<msgid>1234567890123456</msgid>
</xml>

パラメータ

説明ToUserName開発者WeChat ID送信者アカウント (OpenID)CreateTime メッセージの作成time (整数) MsgTypeビデオはvideoですMediaIdビデオメッセージメディアID、マルチメディアファイルダウンロードインターフェイスを呼び出してデータをプルできます。 ThumbMediaIdビデオメッセージサムネイルのメディアID。マルチメディアファイルダウンロードインターフェイスを呼び出してデータをプルできます。 MsgIdメッセージID、64ビット整数型小さなビデオメッセージ
<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1357290913</createtime>
<msgtype></msgtype>
<mediaid></mediaid>
<thumbmediaid></thumbmediaid>
<msgid>1234567890123456</msgid>
</xml>
FromUserName

パラメータ

説明 ToUserName 開発者WeChat ID送信者アカウント(OpenID)CreateTimeメッセージ作成時間(整数)MsgType小さいビデオはshortvideoですMediaId
FromUserName
ビデオ メッセージ メディア ID、マルチメディアと呼ぶことができますファイル ダウンロード インターフェイスはデータを取得します。
ThumbMediaId ビデオメッセージサムネイルのメディアID。マルチメディアファイルダウンロードインターフェイスを呼び出してデータをプルできます。
MsgId メッセージID、64ビット整数

地理位置消息

<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1351776360</createtime>
<msgtype></msgtype>
<location_x>23.134521</location_x>
<location_y>113.358803</location_y>
<scale>20</scale>
<label></label>
<msgid>1234567890123456</msgid>
</xml>
参数 描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType location
Location_X 地理位置维度
Location_Y 地理位置经度
Scale 地图缩放大小
Label 地理位置信息
MsgId 消息id,64位整型

链接消息

<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1351776360</createtime>
<msgtype></msgtype>
<title></title>
<description></description>
<url></url>
<msgid>1234567890123456</msgid>
</xml>
参数 描述
ToUserName 接收方微信号
FromUserName 发送方微信号,若为普通用户,则是一个OpenID
CreateTime 消息创建时间
MsgType 消息类型,link
Title 消息标题
Description 消息描述
Url 消息链接
MsgId

消息id,64位整型

前回の記事では、Responsexml (Poststring) を見てみましょう。メソッドは次のとおりです

asp.net WeChat開発メッセージ応答方法の詳細説明

//// & gt;

/// ユーザーから送信されたメッセージを取得します //// & lt; /summamary & gt; // & lt ;param name="postString">

private void ResponseXML(string postString) xmlDoc = new XmlDocument();

xmlDoc.LoadXml(postString);
XmlElement rootElement = xmlDoc.DocumentElement; //ドキュメントのルートを取得します
requestXML.ToUserName = rootElement.SelectSingleNode("ToUserName ").InnerText;//パブリック アカウント
requestXML.FromUserName = rootElement.SelectSingleNode("FromUserName") .InnerText;//ユーザー requestXML.CreateTime = rootElement.SelectSingleNode( "CreateTime").InnerText; //作成時間
requestXML.MsgType = MsgType.InnerText;///メッセージタイプ
he requestxml.content = rootelement.selectsinglenode( "content")。inertext;

}
if(requestxml.msgtype.trim()== "location") = rootElement.SelectSingleNode("ラベル").InnerText ; requestXML.EventName = rootElement.SelectSingleNode("イベント").そのため、値を割り当てる前に、開発者モードで音声認識機能をオンにすることを忘れないでください。そうしないと取得できません。 requestXML.Recognition = rootElement.SelectSingleNode("Recognition").InnerText;
}
ResponseMsg(requestXML);

}


音声認識機能は次のようにオンになります。




requestXML は私が別に作成したクラスで、次のようにメッセージでよく使用される属性フィールドを宣言します。

///


/// メッセージを受信するエンティティ クラス
///

public class RequestXML
{
private String toUserName = String.Empty;
/// /// この公開アカウント
''’ public String FromUserName{get;set;}
」」 /// gt;
public String Content {get; set;}
/*以下はイベントの一意の属性ですタイプ{get;} ///グラフィックメッセージのタイトル
//グラフィックメッセージ画像
//&summary&gt; use use using using through using using '' アウト アウト アウト アウト アウト アウト オフ オフの ' ' スルー アウト スルー スルー オフ 〜 to ‐‐‐‐‐‐/// 地理的位置//// & lt;/概要 & GT;
public String local_y {get; set;} /// & gt; }
使用する使用する 使用する 使用する 使用する アウト アウト アウト スルー アウト アウト アウト アウト スルー アウト アウト アウト スルー アウト スルー アウト スルー スルー スルー スルー スルー スルー スルー スルー スルー スルー スルー スルー スルー パブリック文字列ラベル { get; summary>


private void Responsemsg (Requestxml Requestxml ) {
String msgtype = requestxml.msgtype;
try
{
// メッセージタイプの種類に応じて送信するメッセージの種類
Switch (msgtype) {cas e "text":en sendtextcase(requestxml); (requestXML.EventName) && requestXML.EventName.ToString().Trim().Equals("CLICK "))

SendEventMsg休憩;

Case "Voice":Requestxmlメッセージで彼をsendmapmsg(sendmapmsg)最初にテキストメッセージを送信することに焦点を当てましょう、sendtextcase(requestxml); = FormatTextXML(requestXML.FromUserName, requestXML.ToUserName, requestXML.Content); HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;

Current.Response.Write(responseContent);T /// & lt; 概要 & gt;

/// フォーマットされた XML 形式の内容に戻る
/// & lt; パラメータ名 = "p1" & gt; 公開アカウント & lt;/param & gt; /// ユーザー ID
;/returns>
private string FormatTextXML(string p1 、文字列 p2、文字列 p3 )
; " + DateTime.Now.Subtract(new DateTime(1970, 1, 1, 8, 0, 0)).TotalSeconds.ToString() + "}} これにより、メッセージ応答 E "イベントが実現できます。 "://イベントメッセージを送信します
(!string.IsNullOrWhiteSpace(requestXML.イベント名) && requestxml.eventName.toString()。trim()。equals( "subscribe"))
else if (!string.IsNullOrWhiteSpace(requestXML.EventName) && requestxml.eventname.toString()。trim()。equals( "click"))}}

///


ML Requestxml)
{
String KeyStr = Requestxml.eventKey.tostring ();
Switch (keystr) {
case "myPay":
Sendpaydetails (requestxml); // 給与請求書を送信します。ブレーク;「TianQiyubao」:sendweathmessage(requestxml);Responsecontent = formattextxml(requestxml.fromusername、requestxml.tousername、「この機能はまだ利用できません!」)。 Void SendwelComemsg 1, 1, 8, 0, 0)); TotalSeconds.tostring (); string PUrlfileName = "http://www.deqiaohr.com.cn/weixin/welcome.jpg";
responseContent = string.Format( Message_News_Main, requestXML.FromUserName, requestXML.ToUserName, newdate, "1",
string.Format (Message_News_Item, "徳橋従業員サービス センターへようこそ", "蘇州徳橋人事は 2002 年に設立されました...", PUrlfileName, "http ://www.deqiaohr.com.cn/weixin/WxGsjianjie.aspx") ); ponseContent);
HttpContext.Current.Response.End ();
}

Message_News_Main と Message_News_Item はグラフィックおよびテキスト メッセージ形式です

///


/// 戻り图文メッセージ本体
///

public static string Message_News_Main
{
get
{
return @"


{2}

{3}

{4}

";
}
}
///
/// 戻る息项
///

public static string Message_News_Item
{
get
{
return @"

説明>


";
}
}

️ RequestXML request se.ContentType = "text/xml"; End();

}






Webページの画像化の問題については、クリックすると全文が表示され、作成したWebページに直接ジャンプします。 、画像の幅を 100% に設定します。Web ページを画面に合わせたい場合は、必ず Web ページに画像を追加してください。


以上がasp.net WeChat開発メッセージ応答方法の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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