asp.net は WeChat パブリック プラットフォームを開発 (4) イベント、ユーザー レコードを追跡し、テキスト メッセージに返信する

高洛峰
リリース: 2017-02-23 14:13:32
オリジナル
2135 人が閲覧しました

前の記事では、すべてのメッセージをカプセル化し、独自の方法で処理しました。この記事では、最初のステップであるフォローから始まり、メッセージが記録され、同時にテキスト メッセージがユーザーに返信されます。次のメソッド: DoSub、および新規ユーザーの場合は、メソッド DoCodeNotSub に従ってパラメーターを含む QR コードをスキャンします。

1. ユーザーは公式アカウントをフォローし、テキスト メッセージとユーザー レコードを返します。

解析された XML リフレクションに基づいてメッセージ モデルに値を割り当てます。

tb_User mUser =DALWei.InfoEntities<tb_user>(dbHome,u=>u.OpenId==mSub.FromUserName);
            if (mUser != null)
            {
                  //说明此用户以前关注过后来取消了
            }
            else
            {
                 //全新的用户,添加
            }</tb_user>
ログイン後にコピー

完全なメソッドです。コードは次のとおりです:

tb_User mUser =DALWei.InfoEntities<tb_user>(dbHome,u=>u.OpenId==mSub.FromUserName);
            if (mUser != null)
            {

                if (mUser.State == 0)
                {
                    SText mStxt = new SText();
                    mStxt.ToUserName = mSub.FromUserName;
                    mStxt.FromUserName = mSub.ToUserName;
                    mStxt.CreateTime = mSub.CreateTime;
                    mStxt.Content = "很抱歉,您已经被系统拒绝服务,若有疑问请联系我们";
                    DALWei.SendText(mStxt);
                    return;
                }
                else
                {
                    mUser.SubTime = DateTime.Now;
                    DALWei.UpdateEntity(dbHome, mUser);
                }
            }
            else
            {
                mUser = new tb_User();
                mUser.InId = 0;
                mUser.OpenId = mSub.FromUserName;
                mUser.GroupId = 0;
                mUser.NickName = "";
                mUser.CreateTime = System.DateTime.Now;
                mUser.State = 1;
                mUser.PreFirst = "";
                mUser.SubTime = DateTime.Now;
                DALWei.AddEntity(dbHome,mUser);
            
            }</tb_user>
ログイン後にコピー

既に存在する場合 ユーザーの最終アテンション時間を変更し、存在しない場合は新しいユーザーを追加します。ユーザーが既に存在する場合は、ユーザー状態 = 0 を考慮する必要があります。 、ユーザーは無効になっており、ユーザーが無効であることを示すテキスト メッセージを直接返します。

2. テキスト メッセージへの返信

カプセル化された送信テキスト メッセージ モデル SText を割り当てて出力できます:

SText mStxtA = new SText();
            mStxtA.ToUserName = mSub.FromUserName;
            mStxtA.FromUserName = mSub.ToUserName;
            mStxtA.CreateTime = mSub.CreateTime;
            mStxtA.Content =ReadXml.Menu();
            Often.ResponseToEnd(DALWei.SendText(mStxtA));
ログイン後にコピー

その中で、ReadXml.Menu() メソッドは、次のようにデフォルトの文字セグメントを返します。通常のテキストメニューの場合(後でカスタムメニューがあります)。

テキストは次のとおりです:

public static string  Menu()
        {
            string Content = "";
            Content += "欢迎使用/微笑\n\n";
            Content += "输入以下序号开始获取最新信息:\n";
            Content += "1,企业快报\ue102\n";
            Content += "2,行业要览\n";
            Content += "3,行情动态\n";
            Content += "4,焦点访谈\n";
            Content += "5,下游资讯\n";
            Content += "6,资讯中心\ue135\n";
            Content += "7,采购\ue42f\n";
            Content += "8,市场报告--VIP\ue035专属\n\n";
            Content += "输入其他关键字可以搜索\ue114\n";
            Content += "输入序号@关键字可以在指定类别下搜索,比如 1@马航\n";
            Content += "输入?或帮助 可以显示此菜单";
            return Content;
        }
ログイン後にコピー

効果:

asp.net は WeChat パブリック プラットフォームを開発 (4) イベント、ユーザー レコードを追跡し、テキスト メッセージに返信する


さらなるasp.net開発 WeChatパブリックプラットフォーム (4) イベント、ユーザー記録のフォロー、テキストメッセージへの返信 関連記事については、お支払いくださいPHP中国語サイトに注意!



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート