【微信小程序】 java如何生成小程序码,并跳转到指定落地页 demo

前言:
需求场景,用户通过扫描小程序码,到指定的页码,希望能帮到大家,切记,要等到小程序发版测能测试。

1、微信官网

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html 官网中给出了几个接口:
在这里插入图片描述
我们用接口b,wxacode.getUnlimited
在这里插入图片描述
看到官网说明:page会跳用到某一个界面,如果页面有参数,放在scene里,这里有一掉我们要注意,小程序必须要发版,才能进行测试。

2、代码

	import cn.hutool.core.io.FileUtil;
	import cn.hutool.core.io.IoUtil;
	import cn.hutool.http.HttpRequest;
	import cn.hutool.http.HttpUtil;
	import com.alibaba.fastjson.JSON;
	import com.alibaba.fastjson.JSONObject;

    @Value("${wx.miniapp.url.getTokenUrl}")
    private String GET_TOKEN_URL;
    @Value("${wx.miniapp.configs[2].appid}")
    private String appId;
    @Value("${wx.miniapp.configs[2].secret}")
    private String secret;
    @Value("${wx.miniapp.url.getQrCodeUrl}")
    private String GET_QR_CODE_URL;
    @Value("${tmp.save.url}")
    private String SAVE_IMG_URL;


    /**
     * 获得小程序accessToken
     *
     * @return
     */
    public String getAccessToken() {
        String fullUrl = String.format(GET_TOKEN_URL, appId, secret);
        String result = HttpUtil.get(fullUrl);
        if (StringUtils.isBlank(result)) {
            log.info(QR_CODE_APPID_SECRET_FAIL.getMessage());
            throw new ServiceException(MbUserResultEnum.QR_CODE_APPID_SECRET_FAIL);
        }
        log.info("getAccessToken(),result:{}", result);
        JSONObject jsonObject = JSON.parseObject(result);
        String accessToken = (String) jsonObject.get("access_token");
        if (StringUtils.isBlank(accessToken)) {
            log.info(QR_CODE_APPID_SECRET_FAIL.getMessage());
            throw new ServiceException(MbUserResultEnum.QR_CODE_APPID_SECRET_FAIL);
        }
        return accessToken;
    }

    /**
     * 从小程序获得二维码图片
     *
     * @param req
     * @return
     */
    private byte[] getImgByWX(QrCodeMappingReq req) {
        String accessToken = getAccessToken();
        String fullUrl = String.format(GET_QR_CODE_URL, accessToken);
        JsonObject scene = new JsonObject();
        scene.addProperty("scene", req.getQrCode());
        if(null != req.getPage()){
            scene.addProperty("page",req.getPage());
        }
        if(null != req.getCheck_path()){
            scene.addProperty("check_path",req.getCheck_path());
        }
        if(null != req.getEnv_version()){
            scene.addProperty("env_version",req.getEnv_version());
        }
        if(null != req.getWidth()){
            scene.addProperty("width",req.getWidth());
        }
        if(null != req.getAuto_color()){
            scene.addProperty("auto_color",req.getAuto_color());
        }
        if(null != req.getLine_color()){
            scene.addProperty("line_color",req.getLine_color());
        }
        if(null != req.getIs_hyaline()){
            scene.addProperty("is_hyaline",req.getIs_hyaline());
        }
        log.info("scene:,{}",scene.toString());
        byte[] bytes = HttpRequest.post(fullUrl).body(scene.toString()).execute().bodyBytes();
        if (null == bytes) {
            log.info(MbUserResultEnum.WX_CREATR_IMG_FAIL.getMessage());
            throw new ServiceException(MbUserResultEnum.WX_CREATR_IMG_FAIL);
        }
        return bytes;
    }

调用getImgByWX方法:生成二维码:

然后微信扫二维码生成 page下配置的页面:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要用Java获取微信小程序,首先需要使用微信提供的API接口来实现。以下是一种实现方法: 1. 首先,需要引入相关的依赖包和类库,例如使用HttpClient库来发送HTTP请求,使用JSON库来处理返回的JSON数据。 2. 在代中构建请求URL,将appid和appsecret等参数拼接到URL中,例如: String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=YOUR_APPID&secret=YOUR_SECRET"; 3. 使用HttpClient库发送GET请求,并获取返回的JSON数据,例如: HttpClient httpClient = new HttpClient(); GetMethod getMethod = new GetMethod(url); int statusCode = httpClient.executeMethod(getMethod); if (statusCode == HttpStatus.SC_OK) { String response = getMethod.getResponseBodyAsString(); JSONObject json = new JSONObject(response); String accessToken = json.optString("access_token"); // 这里获取到的accessToken是后续获取小程序时需要用到的凭证 } 4. 构建获取小程序的请求URL,将需要的参数拼接到URL中,例如: String codeUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN"; JSONObject requestData = new JSONObject(); requestData.put("scene", "YOUR_SCENE"); requestData.put("page", "YOUR_PAGE"); // 这里的YOUR_SCENE和YOUR_PAGE是你自定义的场景值和小程序页面路径值 5. 使用HttpClient库发送POST请求,并将requestData转换为JSON字符串作为请求的内容,获取小程序的二进制数据,例如: HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod(codeUrl); postMethod.setRequestEntity(new StringRequestEntity(requestData.toString(), "application/json", "UTF-8")); int statusCode = httpClient.executeMethod(postMethod); if (statusCode == HttpStatus.SC_OK) { // 获取小程序的二进制数据 byte[] responseBody = postMethod.getResponseBody(); // 这里可以将responseBody保存为图片或其他适合的格式 } 以上是使用Java获取微信小程序的一个简单示例,具体操作还可能受微信官方接口的限制,因此在实际应用中还需要根据接口文档进行适当的调整和处理。 ### 回答2: 要通过Java获取微信小程序,需要使用微信官方提供的开发工具包和API接口。 首先,你需要在微信开放平台上注册一个小程序并获得小程序的唯一标识AppID。 然后,在Java项目中引入相关的开发工具包,例如微信官方提供的Java SDK或第三方封装的SDK。 接下来,通过SDK提供的接口调用微信的API来获取小程序。你可以使用微信官方提供的CreateWXAQRCode接口,该接口可以生成小程序的图片或base64编,并保存在指定的路径。 具体的步骤如下: 1. 创建一个HttpClient对象,并通过HttpPost请求访问微信的API接口。 2. 设置请求的URL为微信的API地址,例如https://api.weixin.qq.com/wxa/getwxacodeunlimit。 3. 设置请求的参数,包括小程序的AppID、Access Token(获取方法见微信开放平台文档)、参数scene(小程序的参数,根据不同的需求进行设置)等。 4. 设置请求的Header信息,包括Content-Type等。 5. 发送请求并获取响应结果。 6. 解析响应结果,判断请求是否成功,如果成功,则从响应结果中提取出小程序的图片或base64编,并保存或处理。 需要注意的是,微信小程序生成是有一定限制的,例如小程序的有效期等,你需要根据需要在代中进行相应的处理。 总结起来,通过上述步骤,你就可以使用Java来获取微信小程序了。当然,具体的实现细节还需要参考微信开放平台的开发文档和SDK的使用说明。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值