위챗 애플릿 위챗 개발 asp.net WeChat에서 메시지 응답 개발을 위한 팁

asp.net WeChat에서 메시지 응답 개발을 위한 팁

Mar 10, 2017 pm 02:45 PM
asp.net 위챗 개발

이 글은 asp.net WeChat 개발 시 메시지 응답 관련 내용을 주로 소개합니다. 필요한 친구가 참고할 수 있습니다.

일반 WeChat 사용자가 공개 계정에 메시지를 보내면 WeChat 서버가 해당 메시지를 게시합니다. 개발자가 입력한 URL에 메시지 XML 데이터 패키지를 추가합니다.
참고:

  • 1. 재시도 메시지 중복 제거의 경우 msgid 중복 제거를 사용하는 것이 좋습니다.

  • 2. WeChat 서버가 5초 이내에 응답을 받지 못하면 요청 연결을 끊고 다시 시작하여 총 3번을 다시 시도합니다. 서버가 5초 이내에 처리 및 응답을 보장할 수 없는 경우 빈 문자열로 직접 응답할 수 있습니다. WeChat 서버는 이에 대해 아무 작업도 수행하지 않으며 재시도를 시작하지 않습니다. 자세한 내용은 "메시지 보내기 - 메시지에 수동 응답"을 참조하세요.

  • 3. 개발자는 더 높은 보안을 보장하기 위해 공개 플랫폼 공식 웹사이트의 개발자 센터에서 메시지 암호화를 설정할 수 있습니다. 암호화가 활성화된 후에는 사용자가 보낸 메시지가 암호화되며, 공식 계정에서 사용자에게 수동적으로 답장한 메시지도 암호화되어야 합니다. (단, 고객 서비스 인터페이스와 같은 API 호출을 통해 사용자에게 메시지를 보내는 개발자는 영향을 받지 않습니다.) 메시지 암호화 및 암호 해독에 대한 자세한 지침은 "메시지 암호화 및 암호 해독 지침"을 참조하세요.

메시지 유형별 푸시 XML 패킷 구조는 다음과 같습니다.
문자 메시지

아아아아

asp.net WeChat에서 메시지 응답 개발을 위한 팁

사진 메시지

아아아아

asp.net WeChat에서 메시지 응답 개발을 위한 팁

음성메시지

 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName> 
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>
로그인 후 복사

asp.net WeChat에서 메시지 응답 개발을 위한 팁

음성 인식을 활성화한 후 사용자가 음성을 보낼 때마다 공식 계정에서 WeChat은 푸시된 음성 메시지 XML 패킷에 인식 필드를 추가합니다. (참고: 클라이언트 캐싱으로 인해 개발자는 음성 인식 기능을 활성화 또는 비활성화합니다. 이 기능은 새로운 팔로워에게는 즉시 적용되고 이미 팔로우한 사용자에게는 24시간이 소요됩니다. . 개발 사용자는 테스트를 위해 이 계정을 다시 팔로우할 수 있습니다. 음성 인식을 활성화한 후의 음성 XML 데이터 패킷은 다음과 같습니다.

<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[image]]></MsgType>
 <PicUrl><![CDATA[this is a url]]></PicUrl>
 <MediaId><![CDATA[media_id]]></MediaId>
 <MsgId>1234567890123456</MsgId>
 </xml>
로그인 후 복사

추가 필드에서 Format은 음성 형식(일반적으로 amr)이며 인식은 음성 인식 결과가 UTF8을 사용하여 인코딩됩니다.
영상편지

아아앙

asp.net WeChat에서 메시지 응답 개발을 위한 팁

작은 영상 메시지

아아앙

asp.net WeChat에서 메시지 응답 개발을 위한 팁

위치 메시지

rreee

asp.net WeChat에서 메시지 응답 개발을 위한 팁

링크 메시지

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<Format><![CDATA[Format]]></Format>
<MsgId>1234567890123456</MsgId>
</xml>
로그인 후 복사

asp.net WeChat에서 메시지 응답 개발을 위한 팁

asp.net WeChat에서 메시지 응답 개발을 위한 팁

이전 글에 이어 ResponseXML(postString)을 참고하세요.


rreee

음성인식 기능은 다음과 같이 켜집니다.

asp.net WeChat에서 메시지 응답 개발을 위한 팁

requestXML是我单独创建的一个类,该类声明了消息中常用的属性字段,如下:


 /// <summary>
 /// 接收消息的实体类
 /// </summary>
 public class RequestXML
 {
 private String toUserName = String.Empty;

 /// <summary>
 /// 本公众号
 /// </summary>
 public String ToUserName{get;set;}

 /// <summary>
 /// 用户微信号
 /// </summary>
 public String FromUserName{get;set;}

 /// <summary>
 /// 创建时间
 /// </summary>
 public String CreateTime{get;set;}

 /// <summary>
 /// 信息类型 
 /// </summary>
 public String MsgType{get;set;}

 /// <summary>
 /// 信息内容
 /// </summary>
 public String Content{get;set;}

 

 /*以下为事件类型的消息特有的属性*/
 /// <summary>
 /// 事件名称
 /// </summary>
 public String EventName{get;set;}
 /// <summary>
 /// 事件值
 /// </summary>
 public string EventKey { get; set; }

 


 /*以下为图文类型的消息特有的属性*/
 /// <summary>
 /// 图文消息的个数
 /// </summary>
 public int ArticleCount { get; set; }
 /// <summary>
 /// 图文消息的标题
 /// </summary>
 public string Title { get; set; }
 /// <summary>
 /// 图文消息的简介
 /// </summary>
 public string Description { get; set; }
 /// <summary>
 /// 图文消息图片的链接地址
 /// </summary>
 public string PicUrl { get; set; }
 /// <summary>
 /// 图文消息详情链接地址
 /// </summary>
 public string Url { get; set; }
 /// <summary>
 /// 图文消息集合
 /// </summary>
 public List<RequestXML> Articles { get; set;}

 

 /*以下为地理位置类型的消息特有的属性*/
 /// <summary>
 /// 地理位置纬度
 /// </summary>
 public String Location_X { get; set; }

 /// <summary>
 /// 地理位置经度
 /// </summary>
 public String Location_Y { get; set; }

 /// <summary>
 /// 地图缩放比例
 /// </summary>
 public String Scale { get; set; }

 /// <summary>
 /// 地图位置说明
 /// </summary>
 public String Label { get; set; }

   /// <summary>
 /// 语音消息特有字段
 /// </summary>
 public String Recognition { get; set; }


 
 }
로그인 후 복사

继续关注 ResponseMsg(requestXML);方法如下


 private void ResponseMsg(RequestXML requestXML)
 {
 string MsgType = requestXML.MsgType;

 try
 {
 //根据消息类型判断发送何种类型消息
 switch (MsgType)
 {
  case "text":
  SendTextCase(requestXML);//发送文本消息
  break;
  case "event"://发送事件消息
  if (!string.IsNullOrWhiteSpace(requestXML.EventName) && requestXML.EventName.ToString().Trim().Equals("subscribe"))
  {
  SendWelComeMsg(requestXML);//关注时返回的图文消息
  }
  else if (!string.IsNullOrWhiteSpace(requestXML.EventName) && requestXML.EventName.ToString().Trim().Equals("CLICK"))
  {
  SendEventMsg(requestXML);//发送事件消息
  }
  break;

         case "voice":
  SendVoiceMsg(requestXML);//发送语音消息
  break;
  case "location"://发送位置消息
  SendMapMsg(requestXML);
  break;
  default:
  break;

 }
 }
 catch (Exception ex)
 {
 HttpContext.Current.Response.Write(ex.ToString());
 }
 }
로그인 후 복사

先来关注发送文本消息,SendTextCase(requestXML);//发送文本消息

 /// <summary>
 /// 发送文本
 /// </summary>
 /// <param name="requestXML"></param>
 private void SendTextCase(RequestXML requestXML)
 {
  string responseContent = FormatTextXML(requestXML.FromUserName, requestXML.ToUserName, requestXML.Content);

  HttpContext.Current.Response.ContentType = "text/xml";
  HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
  HttpContext.Current.Response.Write(responseContent);
  HttpContext.Current.Response.End();
 }
로그인 후 복사

FormatTextXML方法制定格式

 /// <summary>
 /// 返回格式化的Xml格式内容
 /// </summary>
 /// <param name="p1">公众号</param>
 /// <param name="p2">用户号</param>
 /// <param name="p3">回复内容</param>
 /// <returns></returns>
 private string FormatTextXML(string p1, string p2, string p3)
 {
 return "<xml><ToUserName><![CDATA[" + p1 + "]]></ToUserName><FromUserName><![CDATA[" + p2 + "]]></FromUserName><CreateTime>" + DateTime.Now.Subtract(new DateTime(1970, 1, 1, 8, 0, 0)).TotalSeconds.ToString() + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + p3 + "]]></Content><FuncFlag>1</FuncFlag></xml>";
 }
로그인 후 복사

这样就能实现消息的应答,如果用户点击的按钮,如下代码:


 case "event"://发送事件消息
  if (!string.IsNullOrWhiteSpace(requestXML.EventName) && requestXML.EventName.ToString().Trim().Equals("subscribe"))
  {
  SendWelComeMsg(requestXML);//关注时返回的图文消息
  }
  else if (!string.IsNullOrWhiteSpace(requestXML.EventName) && requestXML.EventName.ToString().Trim().Equals("CLICK"))
  {
  SendEventMsg(requestXML);//发送事件消息
  }
  break;

 /// <summary>
 /// 发送响应事件消息
 /// </summary>
 /// <param name="requestXML"></param>
 private void SendEventMsg(RequestXML requestXML)
 {
 string keyStr = requestXML.EventKey.ToString();

 switch (keyStr)
 {
 case "mypay":
  SendPayDetails(requestXML);//发送薪资账单
  break;
 case "tianqiyubao":
  SendWeaterMessage(requestXML);//发送天气预报
  break;
 case "kaixinyixiao":
  SendKaiXinMessage(requestXML);//发送开心一笑结果集
  break;
 case "updateMessage":
  SendUpdateMessage(requestXML);//发送修改信息链接
  break;
 case "yuangonghuodong":
  SendYuanGongHuoDong(requestXML);//发送学生活动
  break;
 case "yuangongtongzhi":
  SendYuanGongTongZhi(requestXML);//发送员工通知
  break;
 case "youwenbida":
  SendWenti(requestXML);//发送员工提交问题链接
  break;
 case "mywen":
  SendWentiList(requestXML);//发送问题列表链接
  break;
 case "PhoneSerices":
  SendKeFuMessage(requestXML);//接入客服
  break;
 default:
  String responseContent = String.Empty;
  responseContent = FormatTextXML(requestXML.FromUserName, requestXML.ToUserName,"此功能暂未开放!敬请期待!");
  HttpContext.Current.Response.ContentType = "text/xml";
  HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
  HttpContext.Current.Response.Write(responseContent);
  HttpContext.Current.Response.End();
  break;
 }
 }
로그인 후 복사

SendWelComeMsg(requestXML);//关注时返回的图文消息

 /// <summary>
 /// 发送关注时的图文消息
 /// </summary>
 /// <param name="requestXML"></param>
 private void SendWelComeMsg(RequestXML requestXML)
 {
 String responseContent = String.Empty;

 string newdate = DateTime.Now.Subtract(new DateTime(1970, 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"));


 HttpContext.Current.Response.ContentType = "text/xml";
 HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
 HttpContext.Current.Response.Write(responseContent);
 HttpContext.Current.Response.End();
 }
로그인 후 복사

Message_News_Main 和Message_News_Item是图文消息格式化

 /// <summary>
 /// 返回图文消息主体
 /// </summary>
 public static string Message_News_Main
 {
 get
 {
 return @"<xml>
  <ToUserName><![CDATA[{0}]]></ToUserName>
  <FromUserName><![CDATA[{1}]]></FromUserName>
  <CreateTime>{2}</CreateTime>
  <MsgType><![CDATA[news]]></MsgType>
  <ArticleCount>{3}</ArticleCount>
  <Articles>
  {4}
  </Articles>
  </xml> ";
 }
 }
 /// <summary>
 /// 返回图文消息项
 /// </summary>
 public static string Message_News_Item
 {
 get
 {
 return @"<item>
  <Title><![CDATA[{0}]]></Title> 
  <Description><![CDATA[{1}]]></Description>
  <PicUrl><![CDATA[{2}]]></PicUrl>
  <Url><![CDATA[{3}]]></Url>
  </item>";
 }
 }

 /// <summary>
 /// 发送响应语音识别结果
 /// </summary>
 /// <param name="requestXML"></param>
 private void SendVoiceMsg(RequestXML requestXML)
 {
 string responseContent = FormatTextXML(requestXML.FromUserName, requestXML.ToUserName, "您刚才说的语音消息识别结果为:" + requestXML.Recognition.ToString());
 HttpContext.Current.Response.ContentType = "text/xml";
 HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
 HttpContext.Current.Response.Write(responseContent);
 HttpContext.Current.Response.End();
 }
로그인 후 복사

asp.net WeChat에서 메시지 응답 개발을 위한 팁

asp.net WeChat에서 메시지 응답 개발을 위한 팁


위 내용은 asp.net WeChat에서 메시지 응답 개발을 위한 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP WeChat 개발: 메시지 암호화 및 암호 해독 구현 방법 PHP WeChat 개발: 메시지 암호화 및 암호 해독 구현 방법 May 13, 2023 am 11:40 AM

PHP는 웹 개발 및 서버 측 프로그래밍, 특히 WeChat 개발에 널리 사용되는 오픈 소스 스크립팅 언어입니다. 오늘날 점점 더 많은 회사와 개발자가 WeChat 개발에 PHP를 사용하기 시작하고 있습니다. PHP는 배우기 쉽고 사용하기 쉬운 개발 언어이기 때문입니다. WeChat 개발에서 메시지 암호화 및 복호화는 데이터 보안과 관련되어 있기 때문에 매우 중요한 문제입니다. 암호화 및 복호화 방법이 없는 메시지의 경우 해커가 쉽게 데이터를 획득할 수 있어 사용자에게 위협이 될 수 있습니다.

PHP를 사용하여 WeChat 대량 메시징 도구 개발 PHP를 사용하여 WeChat 대량 메시징 도구 개발 May 13, 2023 pm 05:00 PM

WeChat의 인기로 인해 점점 더 많은 기업이 WeChat을 마케팅 도구로 사용하기 시작했습니다. WeChat 그룹 메시징 기능은 기업이 WeChat 마케팅을 수행하는 중요한 수단 중 하나입니다. 그러나 수동 전송에만 의존한다면 마케팅 담당자에게는 매우 시간이 많이 걸리고 힘든 작업입니다. 따라서 WeChat 대량 메시징 도구를 개발하는 것이 특히 중요합니다. 이 기사에서는 PHP를 사용하여 WeChat 대량 메시징 도구를 개발하는 방법을 소개합니다. 1. 준비 작업 WeChat 대량 메시징 도구를 개발하려면 다음 기술 사항을 숙지해야 합니다. PHP WeChat 공개 플랫폼 개발에 대한 기본 지식 개발 도구: Sub

PHP WeChat 개발: 사용자 태그 관리 구현 방법 PHP WeChat 개발: 사용자 태그 관리 구현 방법 May 13, 2023 pm 04:31 PM

WeChat 공개 계정 개발에서 사용자 태그 관리는 개발자가 사용자를 더 잘 이해하고 관리할 수 있도록 하는 매우 중요한 기능입니다. 이 기사에서는 PHP를 사용하여 WeChat 사용자 태그 관리 기능을 구현하는 방법을 소개합니다. 1. WeChat 사용자의 openid를 획득합니다. WeChat 사용자 태그 관리 기능을 사용하기 전에 먼저 사용자의 openid를 획득해야 합니다. WeChat 공개 계정을 개발할 때 사용자 인증을 통해 openid를 얻는 것이 일반적인 관행입니다. 사용자 인증이 완료되면 다음 코드를 통해 사용자를 얻을 수 있습니다.

PHP WeChat 개발: 그룹 메시지 전송 기록을 구현하는 방법 PHP WeChat 개발: 그룹 메시지 전송 기록을 구현하는 방법 May 13, 2023 pm 04:31 PM

WeChat이 사람들의 삶에서 점점 더 중요한 커뮤니케이션 도구가 되면서, WeChat의 민첩한 메시징 기능은 많은 기업과 개인의 선호를 빠르게 받고 있습니다. 기업의 경우 WeChat을 마케팅 플랫폼으로 개발하는 것이 하나의 추세가 되었으며 WeChat 개발의 중요성은 점차 더욱 부각되고 있습니다. 그 중 그룹 전송 기능이 더욱 널리 사용됩니다. 그렇다면 PHP 프로그래머로서 그룹 메시지 전송 기록을 어떻게 구현해야 할까요? 다음은 간략한 소개입니다. 1. WeChat 공개 계정과 관련된 개발 지식을 이해합니다. 그룹 메시지 전송 기록을 구현하는 방법을 이해합니다.

PHP WeChat 개발: 고객 서비스 채팅 창 관리 구현 방법 PHP WeChat 개발: 고객 서비스 채팅 창 관리 구현 방법 May 13, 2023 pm 05:51 PM

WeChat은 현재 세계에서 가장 큰 사용자 기반을 보유한 소셜 플랫폼 중 하나입니다. 모바일 인터넷의 인기로 인해 점점 더 많은 기업들이 WeChat 마케팅의 중요성을 깨닫기 시작했습니다. WeChat 마케팅을 수행할 때 고객 서비스는 중요한 부분입니다. 고객 서비스 채팅 창을 더 잘 관리하기 위해 WeChat 개발에 PHP 언어를 사용할 수 있습니다. 1. PHP 소개 WeChat 개발 PHP는 웹 개발 분야에서 널리 사용되는 오픈 소스 서버 측 스크립팅 언어입니다. WeChat 공개 플랫폼에서 제공하는 개발 인터페이스와 결합하여 PHP 언어를 사용하여 WeChat을 수행할 수 있습니다.

PHP WeChat 개발: 투표 기능 구현 방법 PHP WeChat 개발: 투표 기능 구현 방법 May 14, 2023 am 11:21 AM

WeChat 공개 계정을 개발할 때 투표 기능이 자주 사용됩니다. 투표 기능은 사용자들이 상호 작용에 빠르게 참여할 수 있는 좋은 방법이며, 이벤트 개최 및 의견 조사를 위한 중요한 도구이기도 합니다. 이 기사에서는 PHP를 사용하여 WeChat 투표 기능을 구현하는 방법을 소개합니다. WeChat 공식 계정 승인을 받으려면 먼저 WeChat 공식 계정 승인을 받아야 합니다. WeChat 공개 플랫폼에서는 WeChat 공개 계정, 공식 계정 및 공개 계정에 해당하는 토큰의 API 주소를 구성해야 합니다. PHP 언어를 사용하여 개발하는 과정에서 WeChat에서 공식적으로 제공하는 PH를 사용해야 합니다.

WeChat 개발에 PHP를 사용하는 방법은 무엇입니까? WeChat 개발에 PHP를 사용하는 방법은 무엇입니까? May 21, 2023 am 08:37 AM

인터넷과 모바일 스마트 기기의 발전으로 WeChat은 소셜 및 마케팅 분야에서 없어서는 안될 부분이 되었습니다. 점점 더 디지털화되는 시대에 WeChat 개발에 PHP를 사용하는 방법은 많은 개발자의 초점이 되었습니다. 이 기사에서는 주로 WeChat 개발에 PHP를 사용하는 방법에 대한 관련 지식 포인트와 일부 팁 및 주의 사항을 소개합니다. 1. 개발 환경 준비 WeChat을 개발하기 전에 먼저 해당 개발 환경을 준비해야 합니다. 특히, PHP 운영 환경과 WeChat 공개 플랫폼을 설치해야 합니다.

PHP WeChat 개발: 음성 인식 구현 방법 PHP WeChat 개발: 음성 인식 구현 방법 May 13, 2023 pm 09:31 PM

모바일 인터넷의 인기로 인해 점점 더 많은 사람들이 WeChat을 소셜 소프트웨어로 사용하고 있으며 WeChat 개방형 플랫폼은 개발자에게도 많은 기회를 제공합니다. 최근 인공지능 기술의 발전과 함께 음성인식 기술은 점차 모바일 단말기 개발에 있어서 대중적인 기술 중 하나로 자리잡고 있다. WeChat 개발에서 음성 인식을 구현하는 방법은 많은 개발자의 관심사가 되었습니다. 이 기사에서는 PHP를 사용하여 음성 인식 기능을 구현하는 WeChat 애플리케이션을 개발하는 방법을 소개합니다. 1. 음성인식의 원리 음성인식 구현 방법을 소개하기 전에 먼저 언어에 대한 이해를 해보자.

See all articles