微信小程序获取小程序码并在前端显示(考虑其中没有数量限制的小程序码)

获取access_token
public static String getAccessToken(String appId, String appSecret) {
        String urlStr = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret;
        String result = HttpUtil.sendHttpRequestGet(urlStr);
        System.out.println(result);
        JSONObject jsonObject = JSONObject.parseObject(result);
        System.out.println(jsonObject.getString("access_token"));
        return jsonObject.getString("access_token");
    }
调用微信的接口获取小程序码
@ResponseBody
    @RequestMapping("/getWXACode")
    public ResponseData getWXACode(Long userId) {
        RestTemplate rest = new RestTemplate();

        String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + WxContactUtil.getAccessToken(WxUtil.APP_ID_MAP.get("audition"), WxUtil.APP_SECRET_MAP.get("audition"));
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("scene", userId.toString());
        jsonObject.put("width", 300);
        jsonObject.put("auto_color", true);
        jsonObject.put("is_hyaline", true);
        MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
        HttpEntity requestEntity = new HttpEntity(jsonObject, headers);
        ResponseEntity<byte[]> entity = rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class);
        byte[] result = entity.getBody();

        Base64.encodeBase64String(result); //进行base64格式转换

        return new ResponseData(result);
    }
前端js
wx.request({
      url: "http://192.168.3.11:8089/api/activity/getWXACode",
      data:{
        userId:"1111111"
      },
      success:function(res){
        console.log(res);
        var imgUrl = res.data.data;
        // wx.arrayBufferToBase64(res.data);
        that.setData({
          imgUrl:imgUrl
        })
        console.log(that.data.imgUrl)
      }
    })
wxml显示
<image src="https://img-blog.csdnimg.cn/2022010622154012129.png"></image>

小程序接口调用成功返回的数据是二进制格式,需要进行以下base64转化,本文只是留作备份,供以后使用参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值