亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

微信小程序實現獲取小程序碼和二維碼java接口開發

2019-11-19 11:55:05
字體:
來源:轉載
供稿:網友

前言:目前小程序推出了自己的識別碼,小程序碼,這個圓形的碼看起來比二維碼好看。本文總結微信小程序的獲取小程序碼和二維碼并生成二維碼圖片的接口開發。主要內容摘抄自微信小程序的API文檔,java接口開發是自己總結開發。

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

一、簡介

通過后臺接口可以獲取小程序任意頁面的二維碼,掃描該二維碼可以直接進入小程序對應的頁面。目前微信支持兩種二維碼,小程序碼(左),小程序二維碼(右),如下所示:

二、獲取小程序碼

目前有兩個接口可以生成小程序碼,開發者可以根據自己的需要選擇合適的接口。

1 不帶參數有限個數小程序碼接口

適用于需要的碼數量較少的業務場景

接口地址:https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN

注:獲取accesstoken的方法跟微信公眾獲取accesstoken方法一致,不過小程序獲取accesstoken需要小程序的appid和appsercet。登錄 https://mp.weixin.qq.com ,就可以在網站的“設置”-“開發者設置”中,查看到微信小程序的 AppID 了,注意不可直接使用服務號或訂閱號的 AppID 。

 

獲取微信小程序的 AppID文章地址:小程序簡易教程

(1)POST 參數說明

參數 類型 默認值 說明
path String 不能為空,最大長度 128 字節
width Int 430 二維碼的寬度
auto_color Bool false 自動配置線條顏色,如果顏色依然是黑色,則說明不建議配置主色調
line_color Object {“r”:”0”,”g”:”0”,”b”:”0”} auth_color 為 false 時生效,使用 rgb 設置顏色 例如 {“r”:”xxx”,”g”:”xxx”,”b”:”xxx”}

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

(2)請求接口測試

使用http請求插件postman或者RESTClient請求測試。


請求測試結果返回一個小程序碼圖片,與微信公眾平臺生成二維碼不同,小程序碼直接返回文件流,不是微信公眾平臺的url和ticket。

(3)java接口開發

注:此接口是基于Spring RestTemplate進行http請求,進行http請求有很多方法和工具類,可自行百度或參考下面的參考文章。接口只是提供一個解決方法的思路。

 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 != null){    try {     inputStream.close();    } catch (IOException e) {     e.printStackTrace();    }   }   if(outputStream != null){    try {     outputStream.close();    } catch (IOException e) {     e.printStackTrace();    }   }  }  return null;  }

說明:accessToken的獲取方法就不多說,因為小程序二維碼很坑爹的返回文件流,導致我們必須對流進行處理轉換成圖片保存到本地,這樣還有一個嚴重的后果就是無法將二維碼保存到數據庫中,每次想獲取二維碼必須請求接口,此接口最多生成不超過100000個,請大家謹慎使用。

2 帶參數無限個數小程序碼接口

適用于需要的碼數量極多,或僅臨時使用的業務場景

接口地址:https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

獲取accessToken的方法跟接口1一致。

(1)POST 參數說明

參數 類型 默認值 說明
scene String 最大32個可見字符,只支持數字,大小寫英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符請自行編碼為合法字符(因不支持%,中文無法使用 urlencode 處理,請使用其他編碼方式)
page String 必須是已經發布的小程序頁面,例如 “pages/index/index” ,如果不填寫這個字段,默認跳主頁面
width Int 430 二維碼的寬度
auto_color Bool false 自動配置線條顏色,如果顏色依然是黑色,則說明不建議配置主色調
line_color Object {“r”:”0”,”g”:”0”,”b”:”0”} auto_color 為 false 時生效,使用 rgb 設置顏色 例如 {“r”:”xxx”,”g”:”xxx”,”b”:”xxx”}

注意:通過該接口生成的小程序碼,永久有效,數量暫無限制。用戶掃描該碼進入小程序后,開發者需在對應頁面獲取的碼中 scene 字段的值,再做處理邏輯。使用如下代碼可以獲取到二維碼中的 scene 字段的值。調試階段可以使用開發工具的條件編譯自定義參數 scene=xxxx 進行模擬,開發工具模擬時的 scene 的參數值需要進行 urlencode。同時需要注意,此接口的page參數中不能帶任何參數,參數都在scene 參數中處理,切記?。?!

// 這是首頁的 jsPage({ onLoad: function(options) { // options 中的 scene 需要使用 decodeURIComponent 才能獲取到生成二維碼時傳入的 scene var scene = decodeURIComponent(options.scene) }})

(2)請求接口測試

(3)java接口開發

 public Map getminiqrQr(String sceneStr, String accessToken) {  RestTemplate rest = new RestTemplate();  InputStream inputStream = null;  OutputStream outputStream = null;  try {   String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken;   Map<String,Object> param = new HashMap<>();   param.put("scene", sceneStr);   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 != null){    try {     inputStream.close();    } catch (IOException e) {     e.printStackTrace();    }   }   if(outputStream != null){    try {     outputStream.close();    } catch (IOException e) {     e.printStackTrace();    }   }  }  return null;  }

3 獲取小程序二維碼

適用于需要的碼數量較少的業務場景

接口地址:https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

(1)POST 參數說明

參數 類型 默認值 說明
path String 不能為空,最大長度 128 字節
width Int 430 二維碼的寬度

注意:通過該接口生成的小程序二維碼,永久有效,數量限制見文末說明,請謹慎使用。用戶掃描該碼進入小程序后,將直接進入 path 對應的頁面。

示例:

{"path": "pages/index?query=1", "width": 430}

注:pages/index 需要在 app.json 的 pages 中定義

(2)請求接口測試

(3)java接口開發

 public Map getminiqrQr(String accessToken) {  RestTemplate rest = new RestTemplate();  InputStream inputStream = null;  OutputStream outputStream = null;  try {   String url = "https://api.weixin.qq.com/wxaapp/createwxaqrcode?access_token="+accessToken;   Map<String,Object> param = new HashMap<>();   param.put("page", "pages/index/index");   param.put("width", 430);   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 != null){    try {     inputStream.close();    } catch (IOException e) {     e.printStackTrace();    }   }   if(outputStream != null){    try {     outputStream.close();    } catch (IOException e) {     e.printStackTrace();    }   }  }  return null;  }

三、說明

1:通過該接口,僅能生成已發布的小程序的二維碼。
2:可以在開發者工具預覽時生成開發版的帶參二維碼。
3:接口1加上接口2,總共生成的碼數量限制為100,000,請謹慎調用。
4 : POST 參數需要轉成 json 字符串,不支持 form 表單提交。
5 : auto_color line_color 參數僅對小程序碼生效。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产91精品在线观看| 国产亚洲免费的视频看| 国产成人一区二| 狠狠操狠狠色综合网| 亚洲精品自产拍| 国产日韩欧美日韩| 久久久久久亚洲| 欧美精品做受xxx性少妇| 亚洲毛片在线免费观看| 国产亚洲欧美aaaa| 亚洲一区中文字幕| 精品国产自在精品国产浪潮| 成人h视频在线观看播放| 国产精品69久久| 国产乱人伦真实精品视频| 精品女同一区二区三区在线播放| 一本色道久久88亚洲综合88| 国产欧美韩国高清| 亚洲日本成人女熟在线观看| 欧美另类极品videosbestfree| 日韩av中文字幕在线播放| 国产精品日韩欧美大师| 国产成人一区二区| 国产精品99免视看9| 欧美一级视频在线观看| 综合国产在线观看| 精品久久久久久久大神国产| 91日本在线观看| www.日本久久久久com.| 欧美精品国产精品日韩精品| 欧美综合国产精品久久丁香| 欧美国产乱视频| 国产成人精品久久久| 亚洲精品videossex少妇| 日韩欧美国产网站| 俺去亚洲欧洲欧美日韩| 国产成人福利视频| 久久国产一区二区三区| 国产视频在线一区二区| 国产精品视频一区国模私拍| 欧美午夜视频在线观看| 日韩在线视频播放| 在线观看视频99| 日韩中文字幕亚洲| 成人做爽爽免费视频| 久久久久亚洲精品国产| 91国偷自产一区二区三区的观看方式| 欧美精品久久久久久久| 国产精品女人网站| 亚洲午夜未删减在线观看| 两个人的视频www国产精品| 精品亚洲一区二区三区在线观看| 久久av红桃一区二区小说| 亚洲国产精彩中文乱码av| 国产精品www色诱视频| 国产不卡视频在线| 97视频在线观看免费高清完整版在线观看| 日韩av影视综合网| 精品亚洲va在线va天堂资源站| 亚洲人成电影网站色xx| 亚洲欧美制服丝袜| 欧美极品少妇xxxxⅹ免费视频| 精品久久久久久中文字幕| 欧美成人免费在线观看| 日本高清+成人网在线观看| 欧美成人精品在线视频| 日韩av网站电影| 欧美又大粗又爽又黄大片视频| 久久精品91久久久久久再现| 一区二区亚洲精品国产| 国产视频精品免费播放| 国产精品露脸av在线| 欧美日韩在线视频一区二区| 日韩动漫免费观看电视剧高清| 中文字幕免费精品一区高清| 久久久久久久久亚洲| 91综合免费在线| 国产在线观看一区二区三区| 午夜精品久久久久久久99热| 少妇高潮 亚洲精品| 欧美大片在线看免费观看| 日本久久精品视频| 亚洲自拍另类欧美丝袜| 欧洲成人免费视频| 日韩欧美中文字幕在线观看| 国产日韩欧美视频| 疯狂做受xxxx欧美肥白少妇| xxav国产精品美女主播| 欧美肥老太性生活视频| 日本三级韩国三级久久| 狠狠色狠狠色综合日日五| 国产亚洲精品91在线| 韩国美女主播一区| 国产成人啪精品视频免费网| 青青久久av北条麻妃黑人| 精品国产91乱高清在线观看| 国产成人精品日本亚洲专区61| 欧美激情极品视频| 欧美日韩国产综合视频在线观看中文| 久久精品国产成人精品| 欧美日本高清视频| 亚洲精品乱码久久久久久金桔影视| 亚洲人成在线观看网站高清| 国产脚交av在线一区二区| 在线观看欧美视频| 黄色精品一区二区| 亚洲伊人第一页| 亚洲欧美国产va在线影院| 欧美日韩人人澡狠狠躁视频| 日韩视频免费在线观看| 欧美性高跟鞋xxxxhd| 国产精品久久久久aaaa九色| 欧美一级大胆视频| 国产欧美精品一区二区三区介绍| 蜜臀久久99精品久久久久久宅男| 欧美激情免费观看| 欧美在线视频一二三| 国产精品91久久| 91香蕉电影院| 一区二区中文字幕| 精品一区二区三区四区在线| 成人av资源在线播放| 日韩综合视频在线观看| 久久精品中文字幕| 日韩中文字幕网站| 久久精品国产96久久久香蕉| 国产精品久久久久久超碰| 欧美肥老太性生活视频| 久久精品91久久久久久再现| 国产欧美最新羞羞视频在线观看| 亚洲精品国产综合区久久久久久久| 亲爱的老师9免费观看全集电视剧| 午夜欧美大片免费观看| 色综合久久88色综合天天看泰| 伊人av综合网| 高跟丝袜一区二区三区| 国产精品精品久久久久久| 最近2019中文字幕第三页视频| 538国产精品视频一区二区| 国产欧美一区二区三区久久| 最近更新的2019中文字幕| 91久久久久久久久久久久久| 韩曰欧美视频免费观看| 91精品国产自产在线老师啪| 亚洲欧美国产视频| 亚洲美女av在线| 亚洲999一在线观看www| 97超级碰碰碰| 国产精品视频免费在线观看| 久久久国产91| 亚洲а∨天堂久久精品喷水| 亚洲人成在线一二| 欧美日韩日本国产| 日韩美女写真福利在线观看| 亚洲精品中文字幕有码专区| 韩国欧美亚洲国产| 久久久最新网址| 国产一区香蕉久久| 国产亚洲精品久久久优势| 日韩中文娱乐网| 欧美成人精品一区| 国产精品自在线| 中文字幕久久久av一区| 日韩精品中文在线观看|