三年中文在线观看免费大全_三年大片免费高清哔哩哔哩_三年在线观看免费大全哔哩_三年大全免费大片三年大片_三年在线观看免费大全_三年大片观看免费大全哔哩哔哩_三年中文在线观看免费高清第4版_三年中文免费视频大全_三年大片大全免费观看大全_三年大片在线观看哔哩哔哩_三年在线观看中文免费观看_三年成都中文在线观看免费版

Java 生(shēng)成微(wēi)信小(xiǎo)程序二維碼(可(kě)✘✔∏以指定小(xiǎo)程序頁面 與 動态參數(shù)) - 新聞資訊 - 雲南(" nán)小(xiǎo)程序開(kāi)發|雲南(nán)軟件(jiàn)開(kāi↕∏)發|雲南(nán)網站(zhàn)建設-雲南維串信息科技有限公司

159-8711-8523

雲南(nán)網建設/小(xiǎo)程序開(kāi)發/軟件(jiàn)開(kāi)發©÷

知(zhī)識

不(bù)管是(shì)網站(zhàn),軟件(jiàn)還(hái)是(shì)小(xiǎ€Ωδ≠o)程序,都(dōu)要(yào)直接或間(jiān)接能(néng)為(wα₩ε♠èi)您産生(shēng)價值,我們在追求其視(shì)覺表現(xiàn)的(de)同✔♥φγ時(shí),更側重于功能(néng)的(de)便捷,營銷的(de)便利,運營的(de)高β‍(gāo)效,讓網站(zhàn)成為(wèi)營銷工(gōng)具,讓軟件(jiàn)能(néng↕≈)切實提升企業(yè)內(nèi)部管理(lǐ)水(shuǐ)平和(hé)效率。優秀的(de)‌≈程序為(wèi)後期升級提供便捷的(de)支持!

Java 生(shēng)成微(wēi)信小(xiǎo)程序二維碼(可(kě)以指定小(xiǎ§←♣©o)程序頁面 與 動态參數(shù))

發表時(shí)間(jiān):2020-11-20

發布人(rén):葵宇科(kē)技(jì)

浏覽次數(shù):125

一(yī)、準備工(gōng)作(zuò)

  1. 微(wēi)信公衆平台接口調試工(gōng)具
  2. 小(xiǎo)程序的(de)唯一(yī)标識(appid)
  3. 小(xiǎo)程序的(de)密鑰(secret)

二、獲取access_token

打開(kāi)微(wēi)信公衆平台接口調試工(gōng)具,在參數(β↕shù)列表中輸入小(xiǎo)程序的(de)appid和(​∑hé)secret,點擊檢查問(wèn)題&#x ±©<ff0c;如(rú)果appid和(hé)secret正确,則可(kě)以返回正确£​的(de)access_token結果(圖中下(xià)方的(de)紅(&™™$hóng)框)

獲取access_token

三、生(shēng)成微(wēi)信小(xiǎo)程序二維碼™•™

生(shēng)成小(xiǎo)程序二維碼官方文(wén)檔

https://developers.weixin.qq.com‌ /miniprogram/dev/api-backend/open-api/qr-cσ≤ ↓ode/wxacode.getUnlimited.html

一(yī)共有(yǒu)三種生(shēng)成二維碼的(de)方式,可(kě)以根δ↔✔‍據使用(yòng)場(chǎng)景去(qù)選擇,這(zσ¥δhè)裡(lǐ)我使用(yòng)的(de)是(shì)第三種生(shēng)成方式 wxa∞♣₩code.getUnlimited

wxacode.createQRCode
獲取小(x™₩©&iǎo)程序二維碼,适用(yòng)于需要(yào)的(de)碼數(shù)量較λλ少(shǎo)的(de)業(yè)務場(chǎng)景。通(t∞γōng)過該接口生(shēng)成的(de)小(xiǎo)程序ε 碼,永久有(yǒu)效,有(yǒu ‌©)數(shù)量限制(zhì),詳見(jiàn)獲取二維碼。
POST‌¥≥ https://api.weixin.qq.com/cgi-bin/↕γ≈<wxaapp/createwxaqrcode?access_token&#≤φφ61;ACCESS_TOKEN


wxacode.get 
獲取小(xiǎo)程序碼≤©≈ f0c;适用(yòng)于需要(yào)的(de)碼數(shù)量較少←≤(shǎo)的(de)業(yè)務場(chǎng)景。通(tōng)過該接口生(sh£δφēng)成的(de)小(xiǎo)程序碼,永久有(yǒu)效&#α×πλxff0c;有(yǒu)數(shù)量限制(zhì),詳見(jiànδΩ®)獲取二維碼。
POST https://api.weixin.qq.com≤​π↔/wxa/getwxacode?access_token=ACCESS_TOKEN


$ββwxacode.getUnlimited     
獲取小(≈ <xiǎo)程序碼,适用(yòng)于需要(yào)的(de)碼數(shùβ€)量極多(duō)的(de)業(yè)務場(chǎng)景。通(t↓≠δβōng)過該接口生(shēng)成的(de)小(xiǎ" o)程序碼,永久有(yǒu)效,數(shù)量 ₹↕↓暫無限制(zhì)。 更多(duō)用(yòng)法詳見(jiàn) 獲取二維碼。
POβ&↔ST https://api.weixin.qq.c™φ≥om/wxa/getwxacodeunlimit?acc→δ★₹ess_token=ACCESS_TOKENλ≥"

使用(yòng)wxacode.getUnlimit©←★ed生(shēng)成小(xiǎo)程序二維碼

獲取小(xiǎo)程序碼,适用(yòng)♠♣于需要(yào)的(de)碼數(shù)量極多(duō)的(d∞‍₽‌e)業(yè)務場(chǎng)景。通(tōng)過該接口生(shēng)成的(de)$∞≥↓小(xiǎo)程序碼,永久有(yǒu)效™₽‌f0c;數(shù)量暫無限制(zhì)。 更多(duō)用(yòδγng)法詳見(jiàn) 獲取二維碼。
POST https://api.weixin.qq.coβσ→m/wxa/getwxacodeunlimit?access_tokeβ€✔✘n=ACCESS_TOKEN

  

說(shuō)明(míng)

通(tōng)過該接口生(shēng)成的(de)小(xi≠≈ǎo)程序碼,永久有(yǒu)效ÿφ≠0c;數(shù)量暫無限制(zhì)。用(yòng)戶掃描該碼進入小(xiǎo)程序後ÿ₩‌÷0c;開(kāi)發者需在對(duì)應頁面獲取的(de)碼中 scene♦ε•字段的(de)值,再做(zuò)處理(lǐ)邏→↓輯。
使用(yòng)如(rú)下(xià)代碼可(kě)以獲取到(dào)二維碼中的(de) ∏↔€scene 字段的(de)值。
調試階段可(kě)以使用(yòng)開(kāi)發工(gōng ↔δ)具的(de)條件(jiàn)編譯自(zì)定義參數(shù) scene=♦¥σπ;xxxx 進行(xíng)模拟,開(kāi)發工(gōng)具模拟時(shí)的(✘™•de) scene 的(de)參數(shù)值需要(y≥§ào)進行(xíng) urlencode
// 這(zhè)是(shì)首頁的(de) js
Page({∑↕↕¥
 > 1     /**
 2      * 接口調用(yòn®★☆g)憑證 access_token
 3      */
 4     ♠✘ε✔public static String postToken(String appδ≠™Id, String appKey) throws Exc•δ€≠eption {
 5 
 6         String reques "≤₩tUrl = "https://api.weixin.qq.co↓♥"‍m/cgi-bin/token?grant_type=clien ☆✘t_credential&appid=" + ♣ ₽appId + "&secret&#Ω₩±¶61;" + appKey;
 7         URL u≈♠&rl = new URL(requestUrl);
 8         //  ↔打開(kāi)和(hé)URL之間(jiān)的(de)連接
 9         Http∑€>®URLConnection connection = (HttpURLConnecti₹‌♥on) url.openConnection();
10         connection'→.setRequestMethod("POST" "β);
11         // 設置通(tōng)用(yòng)的(de)請®♥(qǐng)求屬性
12         connection.setR>÷equestProperty("Content-↔≈Type", "applicatio<↓n/json");
13         connection.setRequestP ‌‍roperty("Connection"®×​, "Keep-Alive");
14       ✘↔↑  connection.setUseCaches(false);
15  ≈©↔λ       connection.setDoOutput(true);
16 λ'×÷        connection.setDoInpu≠✔♥t(true);
17 
18         // £δ"δ得(de)到(dào)請(qǐng)求的(de)輸出流對(duì)象
1β&≤9         DataOutputStream out≤∏×↑ = new DataOutputStream(c≥¶¥onnection.getOutputStream());
20         out.wδ₽riteBytes("");
21      ↓£÷♥   out.flush();
22         out.clos≠☆‌e();
23 
24         // 建立實際的(de)連接
25         c >↑onnection.connect();
26         // 定義 BufferedRe'↔Ω∑ader輸入流來(lái)讀(dú)取URL的(de)響應
27         Buffe÷≈redReader in;
28         if (requestUrl.containsσ↕©("nlp"))
29        ↓≤→π     in = new BufferedReader(n≥σ∑ew InputStreamReader(conne§ε↓ction.getInputStream(), "GBK&#≤₩'34;));
30         else
31      ∞↔       in = new BufferedReader(new InputStrea✘♣"mReader(connection.getInpuπφ tStream(), "UTF-8"));
32         String↕₽σ←Builder result = new StringΩ‌≥Builder();
33         String geαΩ∑ΩtLine;
34         while ((getLine&Ω = in.readLine()) != null) {
35        φ↓     result.append(getLine);
3∑≠λ6         }
37         in.σ★close();
38         JSONObject jsonObject =↔"↕λ JSONObject.parseObject(result.toString());
3  ™δ9         return jsonObject.getString("a®≠ccess_token");
40     }

調用(yòng)微(wēi)信接口生(shēng)成微(wēiσ₹♥)信小(xiǎo)程序二維碼

 1     /**
 2      * 生(shēng)成微(wēi)信小(xiǎo)程序二↓¶↔"維碼
 3      *
 4      * @$₩;param filePath
 5      *         本地(dì)生(shēng)成&★π←二維碼路(lù)徑
 6      * @param page
 •↔7      *         當前小(xiǎo)程序相(xiàng)對(duì)頁面 必★₽​÷須是(shì)已經發布的(de)小(xiǎo)程序存λα♦在的(de)頁面(否則報(bào)錯(cuò)),例如(rú)™φ‌> pages/index/index, 根路(lù)徑前不(bù)要(yào)填加→¶ /,不(bù)能(néng)攜帶參數(shù)(參數(shù)請(qǐng)放(fàng)在sc¥π£©ene字段裡(lǐ)),如(rú)果不(bù)填寫這(zhè)個↑<↑(gè)字段,默認跳(tiào)主頁面
 8  ✔™    * @param scene
 9      *         最大(dà★ )32個(gè)可(kě)見(jiàn)字符ÿ≈→₩0c;隻支持數(shù)字,大(dà)小(xiǎo)寫英文✘'≈∑(wén)以及部分(fēn)特殊字符:!#$&'()*+∑≈;,/:;=?@-._~,其它字符請(qǐng)自(zì)行(x∞→✘£íng)編碼為(wèi)合法字符(因不(bù)支持%,中文¶↕(wén)無法使用(yòng) urlencode 處理(lǐ)&#∏​xff0c;請(qǐng)使用(yòng)其他(tā)編碼方式)
10      *πγ♠ @param accessToken
11      *      ≠ ♠£   接口調用(yòng)憑證
12      */
13     pu≤✔blic static void generateQr→↓Code(String filePath, String page, String sce $→&ne, String accessToken) {
14 
15         try { ¥☆
16 
17             //調用(yò€↑ng)微(wēi)信接口生(shēng)成二維碼
18       δ™      URL url = new URL(λ₩"https://api.weixin.qq.com/wxa/getwxac​±¶odeunlimit?access_token=" + accessT©≤γoken);
19             HttpURLConnection h​≠™ ttpURLConnection = (HttpURLConnection) ★÷url.openConnection();
20     ✘         httpURLConnection.set§π‌RequestMethod("POST"↓<∏;);// 提交模式
21             // conn.setC¥∏↕γonnectTimeout(10000);//連接超時(shí) 單位毫秒(miǎo)
22 ₩€            // conn.setReadTimeout(20₹✘♠00);//讀(dú)取超時(shí) 單位毫秒(miǎo)
23      ♦©€       // 發送POST請(qǐng)求必須設置如(rúβ>$)下(xià)兩行(xíng)
24             httpURLCo∞λ≠ nnection.setDoOutput(true)↕♠₽φ;
25             httpURLConne•∏✔ction.setDoInput(true);
26             // 獲取URγ∏•LConnection對(duì)象對(duì)應的(de)輸出γ↓≥∞流
27             PrintWriter printWriter &®♦#61; new PrintWriter(httpURLConne'♥ction.getOutputStream());
28     ☆™÷        // 發送請(qǐng)求參數(shù)
29             J♠≥β SONObject paramJson = new JSONObjectγ₩∞§();
30             //這(zhè)就(jiù)±≈↕"是(shì)你(nǐ)二維碼裡(lǐ)攜帶的(de)參數(shù) String型  名稱不÷>£(bù)可(kě)變
31             paramJson.put("≥✔¥scene", scene);
32         ₽♣    //注意該接口傳入的(de)是(shì)page而不(bù)是(ε≈shì)path
33             paramJson<₩.put("page", page);
34             //這(z♥☆∞hè)是(shì)設置掃描二維碼後跳(tiào)轉的(de)頁面
35           ≥↑  paramJson.put("width", 200)₩©÷;
36             paramJson$®©•.put("is_hyaline", true);
α≠37             paramJson.put("auto_color"α<♣, true);
38             printWriter.write(paramJ£<son.toString());
39             // fσ'×‍lush輸出流的(de)緩沖
40             printWrite€αγr.flush();
41 
42             //開(kāi)始獲✔♥取數(shù)據
43             Buffered• InputStream bis = new Buffe<β☆≈redInputStream(httpURLConnection.getInputStream(™♦∏α));
44             OutputStream ₹↓os = new FileOutputStream(new File(filePα✔ath));
45             int len;
46             ↓>≥byte[] arr = new byte[1024];
47             w♣γγεhile ((len = bis.read(arr)) != -1) {
48  ♥™ ₩               os.write(arr, 0, len);
49         ∏≈€÷        os.flush();
50             }
5♦×€↓1             os.close();
52   '‌      } catch (Exception e) {
53 β•♦            e.printStackTrace(↑& ₩);
54         }
55 
56         ♠$¶System.out.println("打開(kāiε‍)地(dì)址查看(kàn)生(shēng)成的(de)≈>®二維碼:" + filePath)≈≥$;
57 
58     }

測試類

 1     public static void main(String[] arg÷→₩s) throws Exception {
 2 
σ☆♣ 3         //獲取接口調用(yòng)憑證access_tok'$en
 4         String appId &#§•61; "小(xiǎo)程序id";//小(xiǎo)程序±λ ☆id
 5         String appKey = "小(xiǎo)'β↑÷程序密鑰";//小(xiǎo)程序密鑰
 6  ↔✔≥♥       String token = postToken(aδ•Ω♣ppId, appKey);
 7 
 8         //生(✘£shēng)成二維碼
 9         generateQrCode("E:\\too§≠££ls\\qrCode\\test.png", "pages/index/in'✘÷dex", "aa=108&bb=2&α♠↕•amp;cc=3", token);
10 
11   λ× λ  }

注意

1      1.獲取小(xiǎo)程序appId 與appKey
2 ‍®≠     2.生(shēng)成小(xiǎo)程序二維碼頁面參數(shù>≈)傳入的(de)是(shì)page而不(bù)是(shì)path,其他(tā)的(∑¶de)接口是(shì)path。
3      pageΩ®π↓後面不(bù)允許加參數(shù),參數(shù)需要(yào♣> ¶)通(tōng)過scene傳入。而小(xiǎo)程序也(yě)需要(yào)通(tōn$©☆εg)過scene獲取參數(shù)。
4      ✘★♠∑3.生(shēng)成小(xiǎo)程序二維碼可(kě)将二維碼寫入本地(××≈dì),也(yě)可(kě)上(shàng)傳至↓™<¥服務器(qì)。自(zì)行(xíng)選擇
5      


參考地(dì)址:
https://www.cnblogs.com/daipianpia§↔↓n/p/9239452.html
http://www.what21.com/u/10004/67562♣α00547748968305.htm
生(shēng)成小(xiǎo)程序二維碼官方文(wén)檔
https://developers.weixin.qq.com/miniprogram/dev♠​∏/api-backend/open-api/qr-code/wxπ‍acode.getUnlimited.html

相(xiàng)關案例查看(kàn)更多(duō)

相(xiàng)關閱讀(dú)

三年中文在线观看免费大全_三年大片免费高清哔哩哔哩_三年在线观看免费大全哔哩_三年大全免费大片三年大片_三年在线观看免费大全_三年大片观看免费大全哔哩哔哩_三年中文在线观看免费高清第4版_三年中文免费视频大全_三年大片大全免费观看大全_三年大片在线观看哔哩哔哩_三年在线观看中文免费观看_三年成都中文在线观看免费版