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

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

迷茫
リリース: 2017-03-25 13:47:23
オリジナル
2013 人が閲覧しました

著者: 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 メソッドを使用します。メソッドは次のように定義されます。

        /// <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パラメータは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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート