ホームページ  >  記事  >  WeChat アプレット  >  .net WeChat パブリック アカウントの開発

.net WeChat パブリック アカウントの開発

迷茫
迷茫オリジナル
2017-03-25 13:47:231937ブラウズ

著者: Wang Xianrong
この記事では、次の内容を含む WeChat パブリック アカウントのテンプレート メッセージを紹介します。(1) TemplateMessage クラスの概要 (2) テンプレート ID を取得します。 4) テンプレート メッセージを送信します。 ( 5) プッシュ テンプレート メッセージ送信結果イベントを受信します。

1 TemplateMessage クラスの概要
TemplateMessage 静的クラスは、テンプレート メッセージに関連するメソッドをカプセル化します。以下の表を参照してください。

IDを取得送信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 はオンライン ゲーム業界を表します。には、それぞれ 3 つの
テンプレートidを取得
テンプレートメッセージを送信
属性

があります: Code—業種コード、Name—業種名、PrimaryIndustry—主な業種。 業種の設定例:

/// <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の取得 テンプレートIDの取得には、TemplateMessageクラスのGetIdメソッドを使用します。次のように定義されます:

        /// <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 テンプレート メッセージの送信

テンプレート メッセージの送信には、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パラメータはTuple型で、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 プッシュテンプレートメッセージを受信し、結果イベントを送信します

テンプレートメッセージを送信した後、WeChatサーバーは結果を公式アカウントの指定された 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。