위 챗 공중 번호 제3자 설정 및 인터페이스

위 챗 공식 개발 문서 의 Start Up 부분:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5
구체 적 인 실현 은 참고 할 수 있다.https://github.com/ThssSE/WeChatTicket/blob/master/wechat
아래 도 상술 한 공사 중의 일부 코드 로 설명 할 것 이다.
인터페이스 테스트 공중 번호
신청 주소:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
위 에 URL, token, 도 메 인 이름 등 정 보 를 설정 하면 테스트 를 시작 할 수 있 습 니 다.
그 중에서 token 은 자신 이 마음대로 쓴 것 으로 서버 쪽 과 일치 하면 됩 니 다.
위 챗 과 상호작용 하 는 정보 형식
백 엔 드 와 위 챗 공식 번호 가 상호작용 할 때 사용 하 는 메시지 형식 은 XML 형식 입 니 다. 다음 과 같 습 니 다.

 
 
 1460537339
 
 
 6272960105994287618
 

그림 등의 내용 을 사용 하려 면 그 MediaId 를 사용 해 야 합 니 다.이때 MsgType 은 Image 태그 에 포 함 된 내용 입 니 다.

,MediaId https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID 다운로드.
사용자 정의 메뉴
서버 를 통 해 사이트 https://api.weixin.qq.com/cgi-bin/menu/create?access_token=XXXX 에 POST 작업 을 하여 메뉴 를 만 듭 니 다. 매개 변 수 는 다음 과 같은 형식의 문자열 입 니 다.

    postJson = """
    {
        "button":
        [
            {
                "type": "click",
                "name": "    ",
                "key":  "mpGuide"
            },
            {
                "name": "    ",
                "sub_button":
                [
                    {
                        "type": "view",
                        "name": "    ",
                        "url": "http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1418702138&token=&lang=zh_CN"
                    },
                    {
                        "type": "view",
                        "name": "      ",
                        "url": "http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1418702138&token=&lang=zh_CN"
                    },
                    {
                        "type": "view",
                        "name": "     ",
                        "url": "http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433747234&token=&lang=zh_CN"
                    }
                ]
            },
            {
                "type": "media_id",
                "name": "  ",
                "media_id": "z2zOokJvlzCXXNhSjF46gdx6rSghwX2xOD5GUV9nbX4"
            }
          ]
    }
    """

이후 백 스테이지 에서 POST 데 이 터 를 받 아 대응 처리 할 수 있다.
코드 구현
특별한 설명 이 없 으 면 아래 에 가리 키 는 코드 는 모두 TssSE / WeChatTicket / wechat 아래 에 있 습 니 다.
access token 관련:wrapper.py 파일 의 WeChatLib 클래스 함수 get_wechat_access_token 를 사용 하여 시간 초과 여 부 를 확인 하고 필요 할 때https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential & appid = xxx & secret = xxx 는 access token 을 가 져 오고 클래스 함수 와 클래스 변 수 를 통 해 access token 관 리 를 합 니 다.
인증:wrapper.pyWeChatLib 류 의 check_signature 함 수 를 통 해 이 루어 지고 정렬 후 해시 처리 하면 됩 니 다.
menu 처리
get 만 나 기wechat_menu 와 setwechat_menu 이 두 함수
서명 인증
클래스 중 WeChatView 함수 참조
사용자 이벤트 응답_check_signaturedo_dispatch 함 수 를 보고 위 챗 에서 보 내 온 POST 사건 을 분석 하고 인증 한 후 해당 하 는 handler 목록 에 직접 보 내 검 사 를 하여 이 데이터 에 대응 하도록 합 니 다.
예 를 들 어 parse_msg_xml 파일 에 적 힌 내용, check 함 수 는 먼저 메 시 지 를 보 내 는 유형 과 표 지 를 통 해 판단 (텍스트 내용 에 대해 텍스트 데이터 가 요구 에 부합 되 는 지 직접 검사 하고 이 벤트 를 클릭 하면 자신 이 메뉴 를 설정 할 때 설정 한 handlers.py 과 비교 하여 확인) 한 다음 에 해당 하 는 데 이 터 를 직접 되 돌려 주 고 event_key 파일 에서 wrapper.py 함 수 를 거 친다.do_dispatch XML 형식 으로 패 키 징 하여 위 챗 서버 로 돌아 갑 니 다.HttpResponse

좋은 웹페이지 즐겨찾기