收藏
回答

PHP调用内容安全接口imgSecCheck图片校验,一直报"errcode":47001怎么解决?

接口地址: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.imgSecCheck.html

开发环境: PHP7.1 + Nginx + 宝塔面板 (尝试了百度的各种办法,都是出现一样的问题 47001错误)

以下是百度找的代码 不知道哪里有问题 就是不可以

$token = (new Dynamic)->getAccessToken();
$url = 'https://api.weixin.qq.com/wxa/msg_sec_check?access_token='.$token;

$path = '/www/wwwroot/Forum/public/uploads/20200503/61b05148d3d8b83ea47602056cb44c85.png';
$data = new \CURLFile(realpath($path));
$data->setMimeType("image/png");
$postdata['media'] = $data;

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl);
dump($output);

请求返回的错误: "{"errcode":47001,"errmsg":"data format error hint: [ZGkDJlnre-eQn1.a] rid: 5f3f6f27-1779411b-5cdb3907"}"

请问这个问题如何解决呢?  是哪里没写对吗?
如果方便,希望能把代码贴出来,非常感谢
回答关注问题邀请回答
收藏

3 个回答

  • จุ๊บ
    จุ๊บ
    2020-08-21

    代码应该没问题,但是为何检测图片 你要用检测内容的接口呢?

    2020-08-21
    有用 1
    回复 3
    • Ants
      Ants
      2020-08-21
      社区类小程序   发布内容的时候 有带图片,微信审核的要求需要图片也要调用接口校验一下   但是我这边一直不成功  实在不知道是什么问题了
      2020-08-21
      回复
    • จุ๊บ
      จุ๊บ
      2020-08-21回复Ants
      我告诉你了啊,你检测图片 用检测图片接口啊,检测文本内容用检测文本内容的啊。你为啥检测图片 用的是检测文本内容的接口呢?
      2020-08-21
      1
      回复
    • Ants
      Ants
      2020-08-21回复จุ๊บ
      非常感谢   犯了一个非常低级的错误
      2020-08-21
      回复
  • Jiu_Teng
    Jiu_Teng
    2021-08-23

    一直返回空呀

    2021-08-23
    有用
    回复 1
    • Jiu_Teng
      Jiu_Teng
      2021-08-23
      $accessToken = $this->getAccessToken();
              $url = "https://api.weixin.qq.com/wxa/img_sec_check?access_token={$accessToken}";
              $curl = curl_init();
              if (class_exists('\CURLFile')) {
                  curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
                  $data = array('media' => new \CURLFile($imgUrl));//
              } else {
                  curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
                  $data = array('media' => '@' . $imgUrl);
              }
              curl_setopt($curl, CURLOPT_URL, $url);
              curl_setopt($curl, CURLOPT_POST, 1);
              curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
              curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
              curl_setopt($curl, CURLOPT_USERAGENT, "TEST");
              $result = curl_exec($curl);
              if ($result === false) {
                  echo "error:" . curl_errno($curl);
                  exit;
              }
              dd($result);
      2021-08-23
      回复
  • 皓
    2020-12-21

    我按照这么写。直接没有返回。你可以用正常返回吗?

    2020-12-21
    有用
    回复 1
    • Jiu_Teng
      Jiu_Teng
      2021-08-23
      解决了没,我也是一直返回空字符串
      2021-08-23
      回复
登录 后发表内容
问题标签