收藏
回答

msgSecCheck 接口返回41001

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug msgSecCheck 客户端 6.7 2.3.0

- 当前 Bug 的表现(可附上截图)


- 预期表现


- 复现路径


- 提供一个最简复现 Demo

本地使用java开发语言,获取到token后请求msgSecCheck,收到如下回复,将代码部署到服务器上,同时将服务器地址添加到开发配置中,还是依然报41001错误码,另外msgSecCheck这个接口现在只接收POST请求,为什么API文档上面没有更新?

{

  "msg": "操作成功",

  "code": 0,

  "data": {

    "access_token": "14_j1KrK-AJRlrDypp2_G7dW0mn6t6XYNFM56-tsZJN1sQrfQ0jn1yqCVADnOV5P-xUJZP1qw4lhLWUbiVL4H2YGQAqr_yjzBh4_dIe4vZknEo_i8m4hY0c8mtzvbDLSjats_EY9VCBtqTzSdpGHBFhAJADXB",

    "response": {

      "errcode": 41001,

      "errmsg": "access_token missing hint: [Nq03590724]"

    },

    "content": "我爱中国"

  }

}


回答关注问题邀请回答
收藏

4 个回答

  • Band
    Band
    2018-10-22

    提供的json并不是原始的HTTP请求包 是否有可能把access_token放在了http request payload的json里面了?

    按照文档access_token需要放置在url参数内。

    请自查,建议通过抓包确认。 文档感谢指出错误,msgSecCheck接口是POST请求。以调用示例为准

    2018-10-22
    有用 1
    回复 1
    • Cookie
      Cookie
      2018-10-23

      可以了,java对curl的支持比较少,感谢官方对码农的不离不弃QAQ

      附上我用Java调用msgSecCheck的代码,希望可以帮助后来的人:)


      Maven依赖:

      httpcomponents版本低于4.4会报错: java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy

      <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>
      <version>4.4.3</version>
      </dependency>
      <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.1</version>

      </dependency>

      <dependency>
      <groupId>org.toile-libre.libe</groupId>
      <artifactId>curl</artifactId>
      <version>0.0.21</version>
      </dependency>


      Java代码:

      String access_token = "已经成功获取的access_token";
      String url = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=" + access_token;
      JSONObject jsonContent = new JSONObject();
      jsonContent.put("content", "我爱中国");
      String strContent = jsonContent.toJSONString();
      // ↓↓↓注意这里的单引号一定要加,不然微信会报data format error 的错误↓↓↓
      String res = $("curl -d '"+strContent+"' " +url);
      // ↑↑↑注意这里的单引号一定要加,不然微信会报data format error 的错误↑↑↑
      JSONObject response = JSONObject.parseObject(res);
      Integer code = response.getInteger("errcode");
      String errmsg = response.getString("errmsg");
      System.out.println("API: msgSecCheck返回错误码: " + code);
      System.out.println("API: msgSecCheck返回错误信息: " + errmsg);


      这个接口依然有问题的同学可以加我QQ: 1852372658

      2018-10-23
      回复
  • 木子
    木子
    2019-01-14

    $ 是什么方法?


    2019-01-14
    有用
    回复
  • 是小白啊
    是小白啊
    2018-10-15

    access_token missing提示了access_token有问题,建议确认下

    2018-10-15
    有用
    回复 7
    • Cookie
      Cookie
      2018-10-17

      access_token missing

      那么请问是access_token这个参数没有post过去,导致了missing

      还是access_token这个参数错误,你们直接报missing?

      我从早上试到晚上,用了N种语言,N种方法,没有一次成功,甚至用你们的调试工具获取到access_token,再拿去请求msgSecCheck 这个API还是一样的错误,

      你们这个接口到底行不行,行的话能不能放出一个可行的java demo代码片段?

      官方文档不明不白,让我们怎么做评论功能?这就是你们微信做小程序的态度?

      2018-10-17
      回复
    • Cookie
      Cookie
      2018-10-18

      呵呵,关闭我评论,厉害了

      2018-10-18
      回复
    • 是小白啊
      是小白啊
      2018-10-18回复Cookie

      没有这限制,评论不了吗?

      2018-10-18
      回复
    • Cookie
      Cookie
      2018-10-18回复是小白啊

      贴上我服务端用java请求msgSecCheck这个API的代码

      AccessTokenModel accessTokenModel = AccessTokenUtil.getAccessToken();

      String access_token = accessTokenModel.getAccess_token();
      if (access_token == null) {
      return resultError("服务端acctoken已失效");
      }

      String content = "love";
      if (request.getParameter("content") != null) {
      content = request.getParameter("content");
      }
      JSONObject jsonParam = new JSONObject();
      jsonParam.put("access_token", access_token);
      jsonParam.put("token", access_token);
      jsonParam.put("accessToken", access_token);
      jsonParam.put("AccessToken", access_token);
      jsonParam.put("access", access_token);
      jsonParam.put("Accesstoken", access_token);
      jsonParam.put("accesstoken", access_token);
      jsonParam.put("content", content);
      JSONObject resData = Utils.doPost(Constant.MSG_CHECK_URL, jsonParam);

      Map<String, Object> cutMap = new HashMap<String, Object>();
      cutMap.put("access_token", access_token);
      cutMap.put("content", content);
      cutMap.put("response", resData);
      return resultSuccess(cutMap);


      2018-10-18
      回复
    • Cookie
      Cookie
      2018-10-18回复是小白啊

      请问代码有什么问题,收到的回复是

      "errcode": 41001,

      "errmsg": "access_token missing hint: [MYb_rA02964557]"


      2018-10-18
      回复
    查看更多(2)
  • Cookie
    Cookie
    2018-10-15

    就这么沉了?官方在哪里?

    2018-10-15
    有用
    回复
登录 后发表内容