php WeChat 로그인 41001 오류에 대한 해결 방법: 1. 로그를 확인합니다. 2. 스트립슬래시를 통해 백슬래시를 제거합니다. 3. json_decode를 통해 디코딩합니다.
이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
php WeChat 로그인 41001 오류 문제를 해결하는 방법은 무엇입니까?
암호화된 사용자 데이터를 해독하기 위한 미니 프로그램 로그인Data -41001: 인코딩AesKey는 불법입니다.
미니 프로그램 WeChat 인증 로그인을 할 때 겪게 되는 함정이 마침내 해결되었습니다
이제 문제 해결을 위한 몇 가지 아이디어를 공유하고 싶습니다.
질문:
WeChat 미니 프로그램에 로그인 권한을 부여하려면 먼저 코드를 가져온 다음 session_key 및 open_id를 가져온 다음 암호화된 데이터를 가져온 다음 서버로 보내 암호를 해독하고 사용자 정보를 가져옵니다. 때로는 성공하고 때로는 -41001을 반환합니다. 오류 및 관찰 로그에 session_key가 획득된 것으로 표시됩니다. 이 문제의 원인은 무엇이며 해결 방법은 무엇입니까?
해결책:
처음에 고려한 방향은 session_key의 만료를 몰랐기 때문에 여러 번 테스트한 결과 그것이 원인이 아니라는 것을 알게 되었습니다.
그래서 시작했습니다. 여러 관련 블로그를 찾아보며 검색해봐도 관련 문제에 대한 해결책을 찾을 수 없었습니다. 이 문제는 너무 부적절해서 이 분야에는 문제가 많지 않을 수도 있습니다
드디어 복호화된 SDK 소스를 살펴보기 시작했습니다. 코드를 찾아보니 -41001의 이유가 session_key의 길이를 확인하기 위함이라는 것을 알게 되었습니다
if (strlen($this->sessionKey) != 24) { return ErrorCode::$IllegalAesKey; } //public static $IllegalAesKey = -41001; //>-41001: encodingAesKey 非法
드디어 로그를 자세히 살펴봤습니다. 일부는 성공하고 일부는 실패했다는 것을 알았고 전혀 패턴을 찾을 수 없었습니다.) session_key의 길이에 주의하면 트릭을 볼 수 있습니다. in it
PHP의 json 문자열은 때때로 백슬래시 ""로 이스케이프됩니다. PHP에서 처리할 때 먼저 백슬래시를 제거한 다음 json_decode
$str = stripslashes($json); $arr = json_decode($str,true);
스트립슬래시() 함수를 사용하면 문제가 해결됩니다!
*이것은 작은 질문입니다. 녹음하여 추억을 만드세요
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP WeChat 로그인 41001 오류 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!