收藏
回答

通过新增素材接口生成的网络图片url,如何获取这个图片的mediaId?

@Override
    public String getShareQrCode(String weChatId) throws Exception {
        String url = String.format(WeChatConstant.GET_PARAM_QR_CODE_URL, getAuthToken());
        String params = String.format(WeChatConstant.GET_QR_CODE_BODY, weChatId);
        String response = HttpUtil.post(url, params);
        String authToken = getAuthToken();
        if (StrUtil.isNotEmpty(response)){
            /**
             * 返回结果示例
             {
             "ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm3sUw==",
             "expire_seconds":60,
             "url":"http://weixin.qq.com/q/kZgfwMTm72WWPkovabbI"
             }
             */
            JSONObject jsonObject = JSONUtil.parseObj(response);
            String ticket = Convert.toStr(jsonObject.get("ticket"));
            // 下载二维码
            File qrCodeFile = downloadQRCode(String.format(WeChatConstant.GET_PARAM_QR_CODE_TICKET_URL, ticket), "qrcode.jpg");
            // 2. 将二维码图片上传到微信服务器
            if (qrCodeFile != null) {
                String uploadUrl = String.format(WeChatConstant.UPLOAD_IMAGE_URL, authToken);
                String result = uploadImageToWeChat(uploadUrl, qrCodeFile);
                JSONObject urlObj = JSONUtil.parseObj(result);
                // 输出上传结果
                System.out.println("WeChat API Response: " + result);
                String replaceUrl = urlObj.get("url", String.class).replaceAll("\\\\", "");
                // http://mmbiz.qpic.cn/mmbiz_jpg/xR11zX9p5iahJUrgHAMWzO7GuN1dKOpb5vD3qfULnmuS8rCVfkXXkuh1aMrcibcXaDiboV01Gh3K7ztadeG9kqa1g/0?from=appmsg
                return replaceUrl;
            }
        }
        return null;
    }

上述result 返回的数据只有url,  replaceUrl 为图片的网络地址, 如何通过replaceUrl换取mediaId,  因为我需要将上述图片回复图片消息:
<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTime>12345678</CreateTime>
  <MsgType><![CDATA[image]]></MsgType>
  <Image>
    <MediaId><![CDATA[media_id]]></MediaId>
  </Image>
</xml>
这里我需要传入mediaId
回答关注问题邀请回答
收藏

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2天前

    发postman调用截图,不想看你代码

    2天前
    有用
    回复
登录 后发表内容