.net WeChat 공개 계정 개발

迷茫
풀어 주다: 2017-03-25 13:47:23
원래의
1942명이 탐색했습니다.

저자: 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 메소드는 다음과 같이 정의됩니다.


        /// <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)
로그인 후 복사

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿