저자: Wang Xianrong
이 기사에서는 다음을 포함하여 WeChat 공개 계정의 템플릿 메시지를 소개합니다. (1) TemplateMessage 클래스 소개 (3) 업계 설정; 템플릿 ID (4) 템플릿 메시지 보내기 (5) 푸시 템플릿 메시지 전송 결과 이벤트 수신.
1 TemplateMessage 클래스 소개
TemplateMessage 정적 클래스는 템플릿 메시지와 관련된 메서드를 캡슐화합니다. 아래 표를 참조하세요.
方法名 | 功能 |
SetIndustry | 设置行业 |
GetId | 获取模板id |
Send | 发送模板消息 |
2 업종 설정
TemplateMessage 클래스의 SetIndustry 메소드는 공식 계정이 속한 업종을 설정하는 데 사용됩니다.
/// <summary> /// 设置行业 /// </summary> /// <param name="userName">公众号</param> /// <param name="code1">行业代码1</param> /// <param name="code2">行业代码2</param> /// <returns>返回设置是否成功</returns> public static ErrorMessage SetIndustry(string userName, string code1, string code2) //或者 /// <summary> /// 设置行业 /// </summary> /// <param name="userName">公众号</param> /// <param name="industry1">行业1</param> /// <param name="industry2">行业2</param> /// <returns>返回设置是否成功</returns> public static ErrorMessage SetIndustry(string userName, Industry industry1, Industry industry2)
그중 Industry는 산업 클래스이고 클래스의 정적 멤버에는 알려진 모든 산업이 포함됩니다. 예: Industry.OnlineGame은 온라인 게임 산업을 나타냅니다. 세 가지 속성이 있습니다. 코드——산업 코드, 이름——산업 이름, 1차 산업——주요 산업.
업종 설정 예시 :
/// <summary> /// 设置所属行业 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSetIndustry_Click(object sender, EventArgs e) { string userName = lbPublicAccount.SelectedValue; string industryCode1 = "", industryCode2 = ""; int count = 0; foreach (ListItem item in cblIndustry.Items) { if (item.Selected) { count++; if (count == 1) industryCode1 = item.Value; else if (count == 2) { industryCode2 = item.Value; break; } } } if (count != 2) ltrMessage.Text = "请选择两个行业。"; else { ErrorMessage errorMessage = TemplateMessage.SetIndustry(userName, industryCode1, industryCode2); ltrMessage.Text = string.Format("设置所属行业{0}。{1}", errorMessage.IsSuccess ? "成功" : "失败", errorMessage.IsSuccess ? "" : errorMessage.ToString()); } } 设置所属行业示例
업종 설정 예시
3 템플릿 ID 가져오기
TemplateMessage 클래스의 GetId 메서드는 템플릿 ID를 얻는 데 사용됩니다. 이 메서드는 다음과 같이 정의됩니다.
/// <summary> /// 获取模板ID /// </summary> /// <param name="userName">公众号</param> /// <param name="shortTemplateId">模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式</param> /// <param name="errorMessage">返回获取是否成功</param> /// <returns>返回模板ID;如果获取失败,返回空字符串。</returns> public static string GetId(string userName, string shortTemplateId, out ErrorMessage errorMessage)
참고: (1) 템플릿이 아직 추가되지 않은 경우 이 메서드는 먼저 템플릿을 추가한 다음 템플릿 ID를 반환합니다. (2) 템플릿이 추가된 경우 이 메서드를 다시 호출하면 마지막으로 얻은 템플릿 ID와 다른 새 템플릿 ID가 반환됩니다.
템플릿 ID 가져오기 예:
/// <summary> /// 添加并模板id /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnGetTemplateId_Click(object sender, EventArgs e) { string userName = lbPublicAccount.SelectedValue; ErrorMessage errorMessage; string templateId = TemplateMessage.GetId(userName, txtTemplateIdShort.Text, out errorMessage); if (errorMessage.IsSuccess) ltrMessage.Text = string.Format("添加并获取模板id成功。模板id:{0}", templateId); else ltrMessage.Text = string.Format("添加并获取模板id失败。{0}", errorMessage.ToString()); }
템플릿 ID 가져오기 예
4 보내기 template Message
TemplateMessage 클래스의 Send 메소드는 다음과 같이 정의됩니다.
/// 631fb227578dfffda61e1fa4d04b7d25 /// 发送模板消息 /// 039f3e95db2a684c7b74365531eb6044 /// 20e42ef3279b479672c1207a13c1abab公众号8bb7487ae6a16a43571bc14c7fcf93c2 /// b34a78e356dd5e42f9d330d79f145693接收消息的账号8bb7487ae6a16a43571bc14c7fcf93c2 /// f0116b851bf4413f5bf75b2a2aeb1058模板id8bb7487ae6a16a43571bc14c7fcf93c2 /// cbabe74617639c1c27560c98af959168详情地址8bb7487ae6a16a43571bc14c7fcf93c2 /// 657cc48a9fcdf82a27a82fe3fa9f4e77顶端颜色8bb7487ae6a16a43571bc14c7fcf93c2 /// c8a98340aded2d5f70b63a18be4bcac7数据8bb7487ae6a16a43571bc14c7fcf93c2 /// 2e8f4f2a373a35ec512cab8bc7c1425a返回发送是否成功8bb7487ae6a16a43571bc14c7fcf93c2 /// 2363942ed0d6cd3e85bae1dffa568116返回消息id;如果发送失败,返回-1。f7735d9f6a7af371769ab5c16d23b2f3 public static long Send(string userName, string touser, string templateId, string detailUrl, Color topColor, Tuple72ca0ee74ca7edd147f17f5da5225be9[] data, out ErrorMessage errorMessage)
, data 매개변수는 튜플 유형이며 템플릿에서 사용하는 데이터를 포함합니다. data.Item1은 데이터 키, data.Item2는 데이터 값, data.Item3은 표시된 데이터의 색상입니다.
템플릿 메시지 전송 예시:
/// <summary> /// 发送模板消息 /// </summary> /// <param name="userName">公众号</param> /// <param name="touser">接收消息的账号</param> /// <param name="templateId">模板id</param> /// <param name="detailUrl">详情地址</param> /// <param name="topColor">顶端颜色</param> /// <param name="data">数据</param> /// <param name="errorMessage">返回发送是否成功</param> /// <returns>返回消息id;如果发送失败,返回-1。</returns> public static long Send(string userName, string touser, string templateId, string detailUrl, Color topColor, Tuple<string, string, Color>[] data, out ErrorMessage errorMessage)
템플릿 메시지 전송 예시
5 푸시 템플릿 메시지 전송 수신 결과 이벤트
위챗 서버는 템플릿 메시지를 보낸 후 지정된 공식 계정 URL로 결과를 푸시하고, 공식 계정 서버는 RequestTemplateSendJobFinishMessage 유형의 요청 메시지를 받게 됩니다.
RequestTemplateSendJobFinishMessage 클래스에는 다음과 같은 읽기 전용 속성이 있습니다.
/// <summary> /// 获取消息id /// </summary> public long MsgID { get; private set; } /// <summary> /// 获取群发消息的结果 /// </summary> public string Status { get; private set; } /// <summary> /// 获取消息是否群发成功 /// </summary> public TemplateMessageSendStatusEnum SendStatus { get { TemplateMessageSendStatusEnum status; if (Status == sendFailedUserBlock) status = TemplateMessageSendStatusEnum.UserBlock; else if (Status == sendFailedSystemFailed) status = TemplateMessageSendStatusEnum.SystemFailed; else status = TemplateMessageSendStatusEnum.Success; return status; } }
위 내용은 .net WeChat 공개 계정 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!