code: protected function parseMessageFromRequest($content)
      {
          $content = strval($content);
  
          $dataSet = json_decode($content, true);
          if ($dataSet && (JSON_ERROR_NONE === json_last_error())) {
              // For mini-program JSON formats.
              // Convert to XML if the given string can be decode into a data array.
              $content = XML::build($dataSet);
          }
  
          if ($this->isSafeMode()) {
              if (!$this->encryptor) {
                  throw new RuntimeException('Safe mode Encryptor is necessary, please use Guard::setEncryptor(Encryptor $encryptor) set the encryptor instance.');
              }
  
              $message = $this->encryptor->decryptMsg(
                  $this->request->get('msg_signature'),
                  $this->request->get('nonce'),
                  $this->request->get('timestamp'),
                  $content
              );
          } else {
              $message = XML::parse($content);
          }
  
          return $message;
      }
docs: Parse message array from raw php input.
  
  @param string|resource $content
  
  @throws \EasyWeChat\Core\Exceptions\RuntimeException
  @throws \EasyWeChat\Encryption\EncryptionException
  
  @return array