>위챗 애플릿 >위챗 개발 >.net WeChat 공개 계정 개발

.net WeChat 공개 계정 개발

迷茫
迷茫원래의
2017-03-25 13:47:231979검색

저자: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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