먼저 위챗 위챗 공식 계정이 개발자 모델을 사용하고 인터페이스가 올바르게 설정되어 일반 메시지를 정상적으로 송수신할 수 있는지 확인합니다.
먼저 "위챗 공식 계정은 당분간 서비스를 제공할 수 없습니다. 나중에 다시 시도해 주십시오" 라는 메시지의 이유를 말씀드리겠습니다.
먼저 그림 (개발자 모델) 과 같은 위챗 워크플로우를 살펴보겠습니다. 사용자가 메시지를 보내면 먼저 텐센트의 위챗 플랫폼으로 가서 인터페이스를 통해 서버로 전달한다. 너의 서버가 메시지를 처리한 후, 그는 위챗 플랫폼으로 돌아와서 플랫폼을 사용자에게 전달했다.
네트워크와 서버가 모두 정상이고 서버가 제대로 처리된 메시지를 받으면 사용자는 관련 정보를 받게 됩니다. 그러나 서버가 정보 처리 중 네트워크 원인, 서버 장애 또는 프로그램 문제로 인해 정보 반환에 실패하는 경우 텐센트 위챗 플랫폼은 사용자에게 "위챗 공식 계정은 일시적으로 서비스를 제공할 수 없습니다. 나중에 다시 시도하십시오" 라는 힌트를 반환합니다.
네트워크 및 장치 문제가 제외된 경우에도 사용자는 여전히 이 오류 메시지를 수신하여 사용자가 보낸 메시지인지 확인할 수 있습니다. 인터페이스 프로그램이 이 메시지를 처리하지 못했습니다. 위챗 서버가 5 초 이내에 응답을 받지 못하면 접속이 끊어져 요청을 다시 시작하고 항상 세 번 재시도합니다. 즉, 5 초 이내에 응답하지 않으면 다시 시도되고 세 번 응답하지 않으면 사용자에게 오류 메시지가 반환됩니다.
이 문제를 어떻게 해결합니까? 사실, 당국은 서버가 5 초 이내에 처리 및 회신을 보장할 수 없는 경우 빈 문자열에 직접 응답할 수 있으며 위챗 서버는 이에 대해 어떠한 처리도 하지 않으며 재시도도 시작하지 않을 것이라고 설명했습니다. 뜻이 매우 명확하다. 프로그램이 5 초 이내에 플랫폼을 처리하고 반환할 수 없는 경우 플랫폼에 빈 문자열을 직접 보내면 됩니다. 플랫폼 판단에 응답이 있으면 사용자에게 오류 프롬프트가 전송되지 않습니다.
그러나 이 빈 문자열이 무슨 뜻인지 모르는 친구도 있다. 공식 해석은 XML 구조의 내용 필드가 비어 있는 것이 아니라 바이트 길이가 0 인 빈 문자열을 가리킨다.
여기 PHP 코드로 설명할게요. 그림과 같이 회신에 echo 를 더하면 이렇습니다.
그러나 이는 플랫폼이 수신되었음을 나타내는 것일 뿐 사용자에게 오류 메시지가 표시되지 않습니다. 고객이 어떤 메시지에도 응답하지 않았습니다. 그래도 사용자에게 보내려면 고객 서비스 메시지 인터페이스를 사용하여 비동기 응답을 해야 합니다.