微信小程序--java接口開發獲取小程序碼和(hé)二維碼 - 新聞資(zī)訊 - 雲南小程序開發|雲南軟件開發|雲南網站(zhàn)建設-西山區知普網絡科技工作室

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不管是網站(zhàn),軟件還是小程序,都要直接或間接能為您産生價值,我們在追求其視覺表現的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站(zhàn)成為營銷工具,讓軟件能切實提升企業(yè)内部管理水平和(hé)效率。優秀的程序為後期升級提供便捷的支持!

微信小程序--java接口開發獲取小程序碼和(hé)二維碼

發表時間:2021-5-11

發布人:葵宇科技

浏覽次數:38

前言:目前小程序推出了自己的識别碼,小程序碼,這個(gè)圓形的碼看起來比二維碼好看。本文(wén)總結微信小程序的獲取小程序碼和(hé)二維碼并生成二維碼圖片的接口開發。主要内容摘抄自微信小程序的API文(wén)檔,Java接口開發是自己總結開發。

微信小程序API文(wén)檔:獲取二維碼

一、簡介

通(tōng)過後台接口可(kě)以獲取小程序任意頁面的二維碼,掃描該二維碼可(kě)以直接進入小程序對應的頁面。目前微信支持兩種二維碼,小程序碼(左),小程序二維碼(右),如(rú)下(xià)所示: 
這裡寫圖片描述

二、獲取小程序碼

目前有兩個(gè)接口可(kě)以生成小程序碼,開發者可(kě)以根據自己的需要選擇合适的接口。

1 不帶參數有限個(gè)數小程序碼接口

适用于需要的碼數量較少(shǎo)的業(yè)務場景

接口地址:

https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN
  • 1
  • 1

注:獲取accesstoken的方法跟微信公衆獲取accesstoken方法一緻,不過小程序獲取accesstoken需要小程序的appid和(hé)appsercet。登錄https://mp.weixin.qq.com ,就可(kě)以在網站(zhàn)的“設置”-“開發者設置”中(zhōng),查看到微信小程序的 AppID 了,注意不可(kě)直接使用服務号或訂閱号的 AppID 。 
這裡寫圖片描述 
獲取微信小程序的 AppID文(wén)章地址:小程序簡易教程

(1)POST 參數說明

參數類型默認值說明
pathString不能為空,最大長度 128 字節
widthInt430二維碼的寬度
auto_colorBoolfalse自動(dòng)配置線條顔色,如(rú)果顔色依然是黑色,則說明不建議配置主色調
line_colorObject{“r”:”0”,”g”:”0”,”b”:”0”}auth_color 為 false 時生效,使用 rgb 設置顔色 例如(rú) {“r”:”xxx”,”g”:”xxx”,”b”:”xxx”}

注意:通(tōng)過該接口生成的小程序碼,永久有效,但數量有效,請謹慎使用。用戶掃描該碼進入小程序後,将直接進入 path 對應的頁面。

(2)請求接口測試

使用http請求插件postman或者RESTClient請求測試。 
這裡寫圖片描述 
請求測試結果返回一個(gè)小程序碼圖片,與微信公衆平台生成二維碼不同,小程序碼直接返回文(wén)件流,不是微信公衆平台的url和(hé)ticket。

(3)java接口開發

注:此接口是基于spring RestTemplate進行http請求,進行http請求有很多方法和(hé)工具類,可(kě)自行百度或參考下(xià)面的參考文(wén)章。接口隻是提供一個(gè)解決方法的思路(lù)。

    public Map getminiqrQr(String accessToken) {
        RestTemplate rest = new RestTemplate();
        InputStream inputStream = null;
        OutputStream outputStream = null;
        try {
            String url = "https://api.weixin.qq.com/wxa/getwxacode?access_token="+accessToken;
            Map<String,Object> param = new HashMap<>();
            param.put("page", "pages/index/index");
            param.put("width", 430);
            param.put("auto_color", false);
            Map<String,Object> line_color = new HashMap<>();
            line_color.put("r", 0);
            line_color.put("g", 0);
            line_color.put("b", 0);
            param.put("line_color", line_color);
            LOG.info("調用生成微信URL接口傳參:" + param);
            MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
            HttpEntity requestEntity = new HttpEntity(param, headers);
            ResponseEntity<byte[]> entity = rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
            LOG.info("調用小程序生成微信永久小程序碼URL接口返回結果:" + entity.getBody());
            byte[] result = entity.getBody();
            LOG.info(Base64.encodeBase64String(result));
            inputStream = new ByteArrayInputStream(result);

            File file = new File("C:/Users/wangqiulin/Desktop/1.png");
            if (!file.exists()){
                file.createNewFile();
            }
            outputStream = new FileOutputStream(file);
            int len = 0;
            byte[] buf = new byte[1024];
            while ((len = inputStream.read(buf, 0, 1024)) != -1) {
                outputStream.write(buf, 0, len);
            }
            outputStream.flush();
        } catch (Exception e) {
            LOG.error("調用小程序生成微信永久小程序碼URL接口異常",e);
        } finally {
            if(inputStream !=       

相關(guān)案例查看更多