위챗 공중번호 설정 token 검증 실패 해결 방안 총결산

문제를 조사할 때 나는 아래의 몇 가지 절차에서 진행할 것이다
  • 자신이 작성한 검증 인터페이스의 문제
  • 서버 구성 문제
  • 위챗에서 발생한 문제

  • 하나.검증 인터페이스 자체 작성 문제


    가능한 상황 1.1은 위챗 공식의 요구에 따라 엄격하게 진행되지 않았다token 검증.해결 방안 건의: 공식 문서를 몇 번 더 자세히 읽고 이해할 수 있도록 한다.여기서 나는 문서의 중점 위치를 발췌하여 주의를 환기시켰다. 메시지 검증은 확실히 위챗 서버 개발자가 정보를 제출한 것이다(더 이상 군더더기 없이 설정하는 방법은 공식 문서 참조). 위챗 서버는 작성된 서버 주소 URL에 GET 요청을 보낼 것이다. GET는 파라미터를 휴대해 주십시오.
    매개 변수
    묘사
    signature
    위챗 암호화 서명,signature는 개발자가 작성한 token 매개 변수와 요청 중인timestamp 매개 변수,nonce 매개 변수를 결합시켰다.
    timestamp
    타임 스탬프
    nonce
    무작위 수
    echostr
    임의 문자열
    검사signature를 통해 요청을 검사합니다. (아래 검사 방식이 있습니다.)이번 GET 요청이 위챗 서버에서 온 것을 확인하면 echostr 매개 변수 내용을 그대로 되돌려 주십시오. 접속이 효력이 발생하고 개발자가 됩니다. 그렇지 않으면 접속이 실패합니다.암호화/검증 절차: 1) token,timestamp,nonce 세 개의 매개 변수를 사전 순서대로 정렬합니다.2) 세 개의 매개 변수 문자열을 하나의 문자열로 연결하여 sha1 암호화 3) 개발자가 암호화한 문자열은 SIGNATURE와 비교할 수 있으며, 이 요청이 위챗에서 유래했음을 표시한다
    1.2 비정상적으로 파일(기사본, 온라인 편집)을 편집하여utf8의bom 서명 솔루션을 추가했습니다. 다기능 편집기를 사용하여bom을 제거합니다.
    1.3 인터페이스 파일(php) 끝 문자에 줄 바꾸기 또는 다른 문자 포함
    
    // 
    ?>
    
    // 
    

    해결 방안: 여분의 문자를 제거합니다.
    자체 코드가 아닌 문제를 해결하는 방법:
    위챗 공중 플랫폼 인터페이스 테스트 계정 신청:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login자신이 쓴 인터페이스로 테스트 계정의 토큰을 검증하고 검증이 통과되면 기본적으로 자신의 코드 문제를 배제할 수 있다.다음은 자신의 서버 설정 문제를 의심하기 시작해서 위챗 서버에 수신된 응답이 인터페이스에 정상적으로 전달되지 않아 처리할 수 없게 된다.

    2.서버 구성 문제


    2.1 서버 캐시로 인해 설정이 제때에 업데이트되지 않아 효력이 발생한다.솔루션: 검증 전에 캐시 지우기
    # php
    ob_clean();
    

    2.2 프로그램 gzip 암호화 이상, token 검증 실효 해결 방안: 프로그램 gzip 기능 검사 테스트를 임시로 취소할 수 있습니다.
    2.3 서비스에 안전한 개나 구름방패가 설치되어 텐센트 서버의 요청을 차단할 수 있습니다(아리운esc).해결 방안: 안전한 개를 제거하거나 구름방패 설정 화이트리스트를 알려줍니다.어떻게 처리하는지 여기에서 참고할 수 있다.https://www.feiniaomy.com/post/155.html
    2.4 가상 호스트는 임시 도메인 이름을 사용하여 시스템 차단 (네트워크 전체에 적용되는 가상 호스트) 해결 방안을 검증합니다. 등록된 정식 도메인 이름을 사용하여 검증 작업을 수행합니다.
    설명: 만약에 위의 상황을 모두 배제하고 아직 해결되지 않았다면 여기에 서버의 설정 문제를 배제하는 방향이 하나 더 있습니다. 그것은 바로 위챗 서버가 우리 자신의 서버에 요청을 보냈는지 확인하는 것입니다.설정을 수정할 때 위챗 서버가 우리 서버에 요청을 보내지 않았는지 확인하면 위챗 서버의 문제임을 확인할 수 있습니다.
    위챗 서비스가 우리 서버에 요청을 보냈는지 확인하는 방법은 두 가지가 있습니다. 1.로그 보기, 참조https://www.cnblogs.com/kenshinobiy/p/5433705.html, 로그를 쓰는 방법에 대해 설명합니다.2. 데이터 클러치 진행, 참조https://blog.csdn.net/u012322855/article/details/52080071.
    마지막 클러치를 통해 저는 위챗 서버가 제 개발 서버에 응답하지 않은 것을 확인했습니다. 저는 운이 좋으면 복권을 사러 갈 수 있습니다. 위챗 서버가 고장나서 T_에 부딪혔습니다.T, 위챗 서버가 개발 서버에 요청이 없는 것으로 확인된 이상 위챗 고객센터와 소통해야 합니다.

    셋.만약 위챗 서버에 문제가 생기면 어떻게 해야 합니까?

  • 급하지 않으면 위챗 개발자 포럼에서https://developers.weixin.qq.com/community/develop/mixflow질문을 하거나 주동적으로 포럼에서 공식 고객센터를 찾아 상담을 받거나..
  • 급하면 위챗 플랫폼의 고객센터로 직접 전화하세요..

  • 텐센트의 사업 부문과 제품이 매우 많기 때문에 반드시 문의할 곳을 찾아야 하며 쌍방의 시간을 낭비하지 않아야 한다.텐센트의 서로 다른 제품 고객지원 장소를 찾아라.http://kf.qq.com/product/weixinmp.html
    주: 위챗 공중플랫폼 고객서비스와 개발자 커뮤니티에서 질문한 댓글:https://developers.weixin.qq.com/community/develop/doc/000e4208ad8670b2bbd8c0e2e53400?jumpto=reply&parent_commentid=00028266b1835097c3d87e8605ac&commentid=000a2c9bd3ccb02ac4d84aed6564
    참조:
  • https://help.aliyun.com/knowledge_detail/42508.html?spm=5176.2000002.0.0.60061073MSFZvK
  • https://bbs.csdn.net/topics/390991193

  • 나는 이미 나의 개인 사이트를 개통했으니, 방문을 환영합니다!

    좋은 웹페이지 즐겨찾기