JAVA获取小程码

微信官方文档地址:获取小程序码 | 微信开放文档

获取小程序二维码首先我们先要获取AccessToken

请求地址

GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

请求参数

属性类型默认值必填说明
grant_typestring填写 client_credential
appidstring小程序唯一凭证,即 AppID,可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)
secretstring小程序唯一凭证密钥,即 AppSecret,获取方式同 appid

 java代码

/**
 * 获取小程序号的ACCESS_TOKEN
 * @return ACCESS_TOKEN
 */
public String getAccessToken() {
        RestTemplate restTemplate = new RestTemplate();
        Map<String, String> params = new HashMap<>();
        params.put("APPID", "appID");         //替换成自己的appId
        params.put("APPSECRET", "appSecret"); //替换成自己的appSecret
        ResponseEntity<String> responseEntity = restTemplate.getForEntity(
                "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={APPSECRET}",
                String.class, params);
        String body = responseEntity.getBody();
        JSONObject object = JSON.parseObject(body);
        String accessToken = object.getString("access_token");
        if (accessToken==null){
            logger.info(String.valueOf("获取accessToken失败"));
        }
        return accessToken;
}

 获取小程序码

请求地址

POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

 请求参数

属性类型默认值必填说明
access_token / cloudbase_access_tokenstring接口调用凭证
scenestring最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)
pagestring主页页面 page,例如 pages/index/index,根路径前不要填加 /,不能携带参数(参数请放在 scene 字段里),如果不填写这个字段,默认跳主页面
check_pathbooleantrue检查 page 是否存在,为 true 时 page 必须是已经发布的小程序存在的页面(否则报错);为 false 时允许小程序未发布或者 page 不存在, 但 page 有数量上限(60000个)请勿滥用
env_versionstring"release"要打开的小程序版本。正式版为 release,体验版为 trial,开发版为 develop
widthnumber430二维码的宽度,单位 px,最小 280px,最大 1280px
auto_colorbooleanfalse自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false
line_colorObject{"r":0,"g":0,"b":0}auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
is_hyalinebooleanfalse是否需要透明底色,为 true 时,生成透明底色的小程序

 返回值

        图片Buffer

java代码

    /**
     * 获取二维码
     * @return 二维码字符串
     */
    public String getQRCode() {
        Map map = new HashMap();
        String accessToken = getCustomerAccessToken();
        String postUrl ="https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken;
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("scene", "1");                       //可以用作传参,必填,内容随意
        jsonObject.put("page", "pages/weChat_login/weChat_login"); //扫码后跳转页面,选填
        jsonObject.put("check_path", false); //是否检查跳转页面存不存在
        jsonObject.put("env_version", "develop"); //版本
        byte[] string = null;
        try {
            string = sendPostJsonImge(postUrl, jsonObject.toJSONString());
        } catch (IOException e) {
            logger.info(String.valueOf("获取二维码时出现异常"));
        }
        String base64Str = Base64.getEncoder().encodeToString(string);
        return base64Str ;
    }

前端画面显示

<img style="width: 50%;" :src="dataBuffer" />

//将返回的字符串拼上"data:image/png;base64,"
this.dataBuffer = "data:image/png;base64," + response.data;

注意:

        1.scene:是必填值

        2.page:需要填项目真实地址,若地址不存在会报错。

        3.check_path:如果想跳项目中不存在页面,将此值设置为false

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值