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

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

高洛峰
高洛峰원래의
2017-02-23 14:23:101665검색

여기에 제공된 데모는 전반적인 프레임워크를 갖춘 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 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.