이 글에서는 주로 asp.net의 사용법을 소개합니다. WeChat 공개 플랫폼을 개발하여 사용자 메시지를 얻고 이를 처리하는 방법에 대한 관련 정보는 도움이 필요한 친구가
사용자 메시지 받기
사용자가 보낸 메시지를 참조할 수 있습니다. WeChat 서버에 전송된 HTTP POST 요청에 포함되어 있으며, 사용자가 보낸 메시지를 얻으려면 POST 요청
의 데이터 스트림에서 가져와야 합니다. WeChat 서버가 메시지를 서버로 푸시합니다
POST /cgi-bin/wxpush?msg_signature=477715d11cdb4164915debcba66cb864d751f3e6×tamp=1409659813&nonce=1372623149 HTTP/1. 1
호스트: qy .weixin.qq.com
POST 요청에서 데이터 가져오기
이런 방식으로 얻은 사용자 메시지는 두 가지 상황에 있을 수 있습니다. : 암호화된 메시지 또는 암호화되지 않은 메시지. 이는 WeChat 공개 플랫폼에서 웹사이트를 구성할 때 메시지 암호화 및 암호 해독 모드 선택과 관련됩니다. 일반 텍스트 모드를 선택하면 암호화되지 않습니다. , 암호 텍스트와 일반 텍스트가 모두 존재하게 됩니다. 안전 모드 를 선택하면 사용자 메시지가 암호화되므로 추가 처리 전에 암호를 해독해야 합니다
2. 사용자 메시지에 답장
WeChat 공개 플랫폼 개발 문서 참조
•문자 메시지
<xml> <ToUserName><![CDATA[{0}]]></ToUserName> <FromUserName><![CDATA[{1}]]></FromUserName> <CreateTime>{2}</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[{3}]]></Content> </xml>
•사진메시지
<xml> <ToUserName><![CDATA[{0}]]></ToUserName> <FromUserName><![CDATA[{1}]]></FromUserName> <CreateTime>{2}</CreateTime> <MsgType><![CDATA[image]]></MsgType> <Image> <MediaId><![CDATA[{3}]]></MediaId> </Image> </xml>
메시지 형식이 이미 있으므로 해당 매개변수만 설정하면 됩니다.
responseContent = string.Format(ReplyType.Message_Text, FromUserName.InnerText, ToUserName.InnerText, DateTime.Now.Ticks, String.IsNullOrEmpty(reply)?"Sorry,I can not follow you." :reply);
3. 사용자 메시지 및 서버 메시지의 암호화 및 복호화
WeChat 공개 플랫폼 개발자 문서는 다음에서 암호화 및 복호화 예제를 제공합니다. C++, C#, java 등 다양한 언어를 사용합니다. C#을 사용하며 프로젝트에 두 개의 파일만 추가하면 됩니다. Sample.cs는 WeChat 팀에서 제공하는 샘플 코드입니다. 을 참조할 필요가 없습니다.
WXBizMsgCrypt.cs 및 Cryptography.cs 파일에 대한 참조를 추가하면 됩니다. WeChatSecurityHelper
클래스와 각각 두 가지 메소드를 정의했습니다. 암호화(EncryptMsg)와 복호화(DecryptMsg)를 수행하려면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!