微信小程序--java接口開發獲取小程序碼和(hé / huò)二維碼 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

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

知識

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

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

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

發表時(shí)間:2021-5-11

發布人(rén):融晨科技

浏覽次數:54

前言:目前小程序推出(chū)了(le/liǎo)自己的(de)識别碼,小程序碼,這(zhè)個(gè)圓形的(de)碼看起來(lái)比二維碼好看。本文總結微信小程序的(de)獲取小程序碼和(hé / huò)二維碼并生成二維碼圖片的(de)接口開發。主要(yào / yāo)内容摘抄自微信小程序的(de)API文檔,Java接口開發是(shì)自己總結開發。

微信小程序API文檔:獲取二維碼

一、簡介

通過後台接口可以(yǐ)獲取小程序任意頁面的(de)二維碼,掃描該二維碼可以(yǐ)直接進入小程序對應的(de)頁面。目前微信支持兩種二維碼,小程序碼(左),小程序二維碼(右),如下所示: 
這(zhè)裏寫圖片描述

二、獲取小程序碼

目前有兩個(gè)接口可以(yǐ)生成小程序碼,開發者可以(yǐ)根據自己的(de)需要(yào / yāo)選擇合适的(de)接口。

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

适用于(yú)需要(yào / yāo)的(de)碼數量較少的(de)業務場景

接口地(dì / de)址:

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

注:獲取accesstoken的(de)方法跟微信公衆獲取accesstoken方法一緻,不(bù)過小程序獲取accesstoken需要(yào / yāo)小程序的(de)appid和(hé / huò)appsercet。登錄https://mp.weixin.qq.com ,就(jiù)可以(yǐ)在(zài)網站的(de)“設置”-“開發者設置”中,查看到(dào)微信小程序的(de) AppID 了(le/liǎo),注意不(bù)可直接使用服務号或訂閱号的(de) AppID 。 
這(zhè)裏寫圖片描述 
獲取微信小程序的(de) AppID文章地(dì / de)址:小程序簡易教程

(1)POST 參數說(shuō)明

參數類型默認值說(shuō)明
pathString不(bù)能爲(wéi / wèi)空,最大(dà)長度 128 字節
widthInt430二維碼的(de)寬度
auto_colorBoolfalse自動配置線條顔色,如果顔色依然是(shì)黑色,則說(shuō)明不(bù)建議配置主色調
line_colorObject{“r”:”0”,”g”:”0”,”b”:”0”}auth_color 爲(wéi / wèi) false 時(shí)生效,使用 rgb 設置顔色 例如 {“r”:”xxx”,”g”:”xxx”,”b”:”xxx”}

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

(2)請求接口測試

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

(3)java接口開發

注:此接口是(shì)基于(yú)spring RestTemplate進行http請求,進行http請求有很多方法和(hé / huò)工具類,可自行百度或參考下面的(de)參考文章。接口隻是(shì)提供一個(gè)解決方法的(de)思路。

    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 !=       

相關案例查看更多