ホームページ  >  記事  >  WeChat アプレット  >  WeChat パブリック プラットフォームの asp.net 開発の最初の 6 つの記事の全体的なフレームワーク デモ ソース コード (7)

WeChat パブリック プラットフォームの asp.net 開発の最初の 6 つの記事の全体的なフレームワーク デモ ソース コード (7)

高洛峰
高洛峰オリジナル
2017-02-23 14:23:101665ブラウズ

ここで提供されるデモは、全体的なフレームワークを備えた WeChat パブリック プラットフォームのソース コードです。もちろん、ビジネス レベルに固有の詳細なものは含まれません。これをベースに、最初の 6 つの記事を読んでいただければ、必ず独自の開発を行うことができます。

デモはシンプルで分かりやすく、誰でも理解できます。デモと実際のプロジェクトの違いは次のとおりです。

1. デモはデータベースに接続されていません。 デモのダウンロードは直接使用できますが、データベースへの接続は誰にとっても便利ではありません。最初の記事では、設計時のビジュアル インターフェイスを含む完全なデータベースがオープンソースになっています。データベースに接続したい場合は、EF を追加します。データベースを作成したら、接続するだけです。接続方法はパート 2

2 にあります。デモでは、受信した WeChat メッセージ モデルはカプセル化されません。 受信メッセージをカプセル化する目的は、メッセージを記録してデータベースに追加することであるため、メッセージ カプセル化のパート 3 は書き込まれません。

3。デモ入口にて。 デモは持ち帰って誰でも使用できるため、暗号化署名の検証が追加されると、多くの人が調整できない可能性があります。ローカル テストの場合、検証用の暗号化署名がまったくありません (実際、ローカル テストでは調整できます)。理解した後、検証メソッドを削除しました。デモには IOC インジェクションやキャッシュ関連はありません。すべてのビジネス要件にキャッシュと IOC インジェクションが必要なわけではありません。また、誰もがこれらにさらされているわけではありません。一般性を考慮して、これらは削除されています。他のプロジェクトで IOC インジェクションとキャッシュ処理に関連する問題が発生した場合は、私に質問してください。喜んでお答えします

概要: このデモは、WeChat パブリック プラットフォームの完全かつシンプルなフレームワークであり、あらゆる開発者に適しています。 ; 実際のプロジェクト 使用する必要のあるデータベースに関連する以前の記事には、すべてコードと操作方法が記載されています

デモに基づいて、誰でも非常に迅速に独自の WeChat パブリック プラットフォームを作成できます。

最も重要なことは全体的なアイデアを共有することです~ WeChat のパブリック プラットフォームは実際には非常に単純です。これらのさまざまなケースを例に挙げると、メッセージの受信と処理の詳細がわかりません。多くの開発者にとっては長い時間がかかるかもしれませんが、私がそれを理解できた場合にのみ、このデモのソース コードを誰でも共有できるようにすることができます (技術的な能力とは関係ありません。主に、一度に理解できない人もいるからです)。始めることができます

public void LookMsgType(string msgType)
        {

            #region 判断消息类型
            switch (msgType)
            {
                case "text":
                    RText mText = new RText();
                    mText = ReadXml.GetModel<RText>(mText, xmlModel);
                    BLLWei.DoText(dbHome, mText);//文本消息
                    break;
                case "image":
                    RImg mImg = new RImg();
                    mImg = ReadXml.GetModel<RImg>(mImg, xmlModel);
                    BLLWei.DoImg(dbHome,mImg);//图片
                    break;
                case "voice": //声音
                    RVoice mVoice = new RVoice();
                    mVoice = ReadXml.GetModel<RVoice>(mVoice, xmlModel);
                    BLLWei.DoVoice(dbHome,mVoice);
                    break;

                case "video"://视频
                    RVideo mVideo = new RVideo();
                    mVideo = ReadXml.GetModel<RVideo>(mVideo, xmlModel);
                    BLLWei.DoVideo(dbHome, mVideo);
                    break;

                case "location"://地理位置
                    RLocation mLocation = new RLocation();
                    mLocation = ReadXml.GetModel<RLocation>(mLocation, xmlModel);
                    BLLWei.DoLocation(dbHome,mLocation);
                    break;
                case "link"://链接
                    RLink mLink = new RLink();
                    mLink = ReadXml.GetModel<RLink>(mLink, xmlModel);
                    BLLWei.DoLink(dbHome,mLink);
                    break;
                #region 事件
                case "event":

                    switch (ReadXml.ReadModel("Event", xmlModel))
                    {
                        case "subscribe":

                            if (ReadXml.ReadModel("EventKey", xmlModel).IndexOf("qrscene_") >= 0)
                            {
                                RCodeNotSub mNotSub = new RCodeNotSub();
                                mNotSub = ReadXml.GetModel<RCodeNotSub>(mNotSub, xmlModel);
                                BLLWei.DoCodeNotSub(dbHome,mNotSub);//未关注的新用户,扫描带参数的二维码关注
                            }
                            else
                            {
                                RSub mSub = new RSub();
                                mSub = ReadXml.GetModel<RSub>(mSub, xmlModel);
                                BLLWei.DoSub(dbHome,mSub);//普通关注
                            }
                            break;
                        case "unsubscribe":
                            RUnsub mUnSub = new RUnsub ();
                            mUnSub = ReadXml.GetModel<RUnsub>(mUnSub, xmlModel);
                            BLLWei.DoUnSub(dbHome,mUnSub);//取消关注
                            break;

                        case "SCAN":
                            RCodeSub mCodeSub = new RCodeSub();
                            mCodeSub = ReadXml.GetModel<RCodeSub>(mCodeSub, xmlModel);
                            BLLWei.DoCodeSub(dbHome,mCodeSub);//已经关注的用户扫描带参数的二维码
                            break;
                        case "LOCATION"://用户上报地理位置

                            RSubLocation mSubLoc = new RSubLocation();
                            mSubLoc = ReadXml.GetModel<RSubLocation>(mSubLoc, xmlModel);

                            BLLWei.DoSubLocation(dbHome, mSubLoc);
                            break;
                        case "CLICK"://自定义菜单点击

                            RMenuClick mMenuClk = new RMenuClick();
                            mMenuClk = ReadXml.GetModel<RMenuClick>(mMenuClk, xmlModel);
                            BLLWei.DoMenuClick(dbHome, mMenuClk);
                            break;
                        case "VIEW"://自定义菜单跳转事件

                            RMenuView mMenuVw = new RMenuView();
                            mMenuVw = ReadXml.GetModel<RMenuView>(mMenuVw, xmlModel);
                            BLLWei.DoMenuView(dbHome, mMenuVw);
                            break;
                    };
                    break;
                #endregion
            }
            #endregion
        }

また、開発プロセスを共有するために、将来記事を書いてプロセスを共有するつもりです。私のこれらの記事のすべてのスクリーンショットが WeChat ID、名前などを削除していることがわかりますが、記事を書いているとき、ユーザーの一般アカウントを使用せずにスクリーンショットもテストされました。


asp.net 開発の詳細については、WeChat パブリック プラットフォーム (7) 全体的なフレームワーク デモ ソース コードに関連する最初の 6 つの記事については、PHP 中国語 Web サイトに注目してください。

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