Java获取小程序带参二维码(太阳码)
生活随笔
收集整理的這篇文章主要介紹了
Java获取小程序带参二维码(太阳码)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
獲取小程序碼
官方API地址 :?https://developers.weixin.qq.com/miniprogram/dev/api/qrcode.html
首先使用官方提供的?接口B:適用于需要的碼數(shù)量極多的業(yè)務(wù)場(chǎng)景
https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKENPOST 參數(shù)說明(官方)
注意:通過該接口生成的小程序碼,永久有效,數(shù)量暫無限制。用戶掃描該碼進(jìn)入小程序后,開發(fā)者需在對(duì)應(yīng)頁面獲取的碼中 scene 字段的值,再做處理邏輯。使用如下代碼可以獲取到二維碼中的 scene 字段的值。調(diào)試階段可以使用開發(fā)工具的條件編譯自定義參數(shù) scene=xxxx 進(jìn)行模擬,開發(fā)工具模擬時(shí)的 scene 的參數(shù)值需要進(jìn)行 urlencode
以上都是官方文檔所示,如使用A接口或C接口可參考官方API,一下開始切入正題java獲取access_token以及接口調(diào)用
獲取access_token:
public static void GetUrlS() throws ClientProtocolException, IOException {HttpGet httpGet = new HttpGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ appid + "&secret=" + secret );HttpClient httpClient = HttpClients.createDefault();HttpResponse res = httpClient.execute(httpGet);HttpEntity entity = res.getEntity();String result = EntityUtils.toString(entity, "UTF-8");JSONObject jsons = JSONObject.fromObject(result);String expires_in = jsons.getString("expires_in");//緩存if(Integer.parseInt(expires_in)==7200){//okString access_token = jsons.getString("access_token");System.out.println("access_token:"+access_token);cont=access_token;}else{System.out.println("出錯(cuò)獲取token失敗!");}} 開始調(diào)研接口B生成二維碼: public static void main(String[] args){try{GetUrlS();URL url = new URL("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+access_token);HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();httpURLConnection.setRequestMethod("POST");// 提交模式// conn.setConnectTimeout(10000);//連接超時(shí) 單位毫秒// conn.setReadTimeout(2000);//讀取超時(shí) 單位毫秒// 發(fā)送POST請(qǐng)求必須設(shè)置如下兩行httpURLConnection.setDoOutput(true);httpURLConnection.setDoInput(true);// 獲取URLConnection對(duì)象對(duì)應(yīng)的輸出流PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());// 發(fā)送請(qǐng)求參數(shù)JSONObject paramJson = new JSONObject();paramJson.put("scene", "a=1234567890");paramJson.put("page", "pages/index/index");paramJson.put("width", 430);paramJson.put("auto_color", true);/*** line_color生效* paramJson.put("auto_color", false);* JSONObject lineColor = new JSONObject();* lineColor.put("r", 0);* lineColor.put("g", 0);* lineColor.put("b", 0);* paramJson.put("line_color", lineColor);* */printWriter.write(paramJson.toString());// flush輸出流的緩沖printWriter.flush();//開始獲取數(shù)據(jù)BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());OutputStream os = new FileOutputStream(new File("C:/Users/Waitforyou/Desktop/abc.png"));int len;byte[] arr = new byte[1024];while ((len = bis.read(arr)) != -1){os.write(arr, 0, len);os.flush();}os.close();}catch (Exception e){e.printStackTrace();}}轉(zhuǎn)載于:https://my.oschina.net/waitforyou/blog/3025393
總結(jié)
以上是生活随笔為你收集整理的Java获取小程序带参二维码(太阳码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构【图】—022邻接矩阵的深度和广
- 下一篇: linux三剑客之awk (用于个人学习