WeChat 공개 플랫폼의 asp.net 개발에 대한 처음 6개 기사의 전체 프레임워크 데모 소스 코드(7)

高洛峰
풀어 주다: 2017-02-23 14:23:10
원래의
1717명이 탐색했습니다.

여기에 제공된 데모는 전반적인 프레임워크를 갖춘 WeChat 공개 플랫폼의 소스 코드입니다. 소위 데모는 직접 시연하고 사용할 수 있는 것입니다. 물론 비즈니스에 특정한 세부 사항이 포함되어 있지는 않습니다. 레벨과 데이터 레벨 모두 이를 기반으로 자유롭게 개발할 수 있습니다. 처음 6개의 기사만 읽어도 분명 자신만의 무언가를 개발할 수 있을 것입니다.

데모는 간단하고 이해하기 쉽습니다. 데모와 실제 프로젝트의 차이점은 다음과 같습니다.

1. 데모는 데이터베이스에 연결되지 않습니다. 데모 다운로드를 직접 사용할 수 있습니다. 데이터베이스에 연결하는 것은 모든 사람에게 편리한 것은 아닙니다. 첫 번째 기사에서는 디자인 중 시각적 인터페이스를 포함하여 전체 데이터베이스가 오픈 소스로 제공되었습니다. 데이터베이스 생성 후 연결만 하면 연결 방법은 2부

2. 데모에서는 수신된 WeChat 메시지 모델을 캡슐화하지 않습니다. 받은 메시지를 캡슐화하는 목적은 메시지를 기록하고 데이터베이스에 추가하는 것이기 때문에 1이 없기 때문에 메시지 캡슐화의 세 번째 부분이 작성되었습니다. 데모 입구에서는 암호화 서명이 확인되지 않습니다. 데모는 다시 가져간 후 누구나 사용할 수 있기 때문에 암호화된 서명 검증을 추가하면 많은 사람들이 이를 조정하지 못할 수도 있습니다. 로컬 테스트의 경우 검증을 위한 암호화된 서명이 전혀 없습니다(실제로 로컬 테스트에서는 직접 true를 반환), 모두가 이해할 수 있도록 검증 방법의 코드를 두 번째 기사에서 한 마디로 삭제했습니다.

4. 캐싱 관련. 모든 비즈니스 요구 사항에 캐싱 및 IOC 주입이 필요한 것은 아니며, 일반화를 위해 모든 사람이 이에 노출된 것은 아닙니다. 다른 프로젝트에서 IOC 주입 및 캐시 처리와 관련된 문제가 발생하면 저에게 문의하시면 기꺼이 답변해 드리겠습니다.

요약: 데모는 완전한 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 중국어 웹사이트를 주목하세요!

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