亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

微信小程序碼生成及可能存在的坑

546669204 / 1493人閱讀

摘要:換句話說,同一用戶,對同一個微信開放平臺下的不同應(yīng)用,是相同的對于,微信程序碼在同一時間用來掉用小程序碼生成接口使用以及調(diào)用生成一個應(yīng)用只有一個秘鑰,只有一個有效,且有效期是分鐘。

小程序二維碼的生成有三個不同的接口,針對不同的場景需求
下文介紹的是第二種,也是用的最多的一種:適用于需要的碼數(shù)量極多,或僅臨時使用的業(yè)務(wù)場景
接口地址:https://api.weixin.qq.com/wxa...

注意:通過該接口生成的小程序碼,永久有效,數(shù)量暫無限制。用戶掃描該碼進入小程序后,開發(fā)者需在對應(yīng)頁面獲取的碼中 scene 字段的值,再做處理邏輯。使用如下代碼可以獲取到二維碼中的 scene 字段的值。調(diào)試階段可以使用開發(fā)工具的條件編譯自定義參數(shù) scene=xxxx 進行模擬,開發(fā)工具模擬時的 scene 的參數(shù)值需要進行 urlencode

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

如下內(nèi)容為調(diào)用微信小程序二維碼接口,生成小程序二維碼圖片的Java實現(xiàn)【構(gòu)造post請求,調(diào)用微信接口】

import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
//參數(shù)說明,QRCreateBean對象中傳入自個需要的值。最主要的包括微信的accessToken以及小程序碼要存儲的內(nèi)容
//要存儲的內(nèi)容放到了scene參數(shù)中,掃碼后小程序要跳轉(zhuǎn)的頁面路徑page參數(shù)對應(yīng)

public static String createPoster(QRCreateBean qrCreateBean) throws Exception {
    log.info("======生成微信小程序碼開始=====");
    String qrcodeName = "qr_" + qrCreateBean.getSerialNo();
    long nowTime = System.currentTimeMillis();
    //二維碼圖片
    URL getCodeUrl = new URL("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + qrCreateBean.getAccessToken());
    HttpURLConnection httpURLConnection = (HttpURLConnection) getCodeUrl.openConnection();
    httpURLConnection.setRequestMethod("POST");// 提交模式
    httpURLConnection.setDoOutput(true);
    httpURLConnection.setDoInput(true);
    PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
    JSONObject paramJson = new JSONObject();
    //在上線之前測試的版本中,頁面不能跳轉(zhuǎn),跳轉(zhuǎn)頁面的參數(shù)名定義為path,可在模擬器上進行測試
    //paramJson.accumulate("scene", qrCreateBean.getSerialNo()).accumulate("path", "pages/goods/goods");
    //上線后,跳轉(zhuǎn)頁面的參數(shù)需定義為page,否則會找不到跳轉(zhuǎn)頁面
    paramJson.accumulate("scene", qrCreateBean.getSerialNo()).accumulate("page", "pages/goods/goods");
    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());
    printWriter.flush();
    String contentType = httpURLConnection.getContentType();
    if (contentType.contains("json")) {
       log.info("調(diào)用微信小程序生成接口出錯,token失效");
        return "1";
    } else {
        BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
        //小程序碼圖片寫出存儲的路徑
        File file = new File("srcmain
esourcesimage" + qrcodeName + ".png");
        OutputStream ost = new FileOutputStream(file);
        int len;
        byte[] arr = new byte[1024];
        while ((len = bis.read(arr)) != -1) {
            ost.write(arr, 0, len);
            ost.flush();
        }
        ost.close();
        log.info("========生成微信小程序碼結(jié)束===========");

}

注意:
對于accessToken有一個坑
openId:是表示用戶在你的當(dāng)前應(yīng)用中的唯一標示,比如小程序,微信公眾號等,這些都算是一個應(yīng)用,如果你有多個應(yīng)用,同一個用戶的openId可能并不相同
unionid:借用微信官方文檔中的話來說,如果開發(fā)者擁有多個移動應(yīng)用、網(wǎng)站應(yīng)用、和公眾帳號(包括小程序),可通過 UnionID 來區(qū)分用戶的唯一性,因為只要是同一個微信開放平臺帳號下的移動應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(包括小程序),用戶的 UnionID 是唯一的。換句話說,同一用戶,對同一個微信開放平臺下的不同應(yīng)用,unionid是相同的

對于accessToken,微信程序碼openId在同一時間用來掉用小程序碼生成接口【使用appid以及secret調(diào)用生成(一個應(yīng)用只有一個秘鑰secret)】,只有一個有效,且有效期是5分鐘。當(dāng)有其他操作再獲取accessToken時,之前的token會失效。所以每次在生成小程序二維碼之前都要重新獲取一下token。
如果用失效的accessToken去調(diào)用小程序碼生成接口,返回內(nèi)容為json格式的一個錯誤提示。若正常返回小程序碼圖片,返回內(nèi)容的type為image/jepg。如在上文的代碼中,需要對調(diào)用接口后返回的內(nèi)容進行判斷!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/75755.html

相關(guān)文章

  • 從零開始:信小程序新手入門寶典《一》

    摘要:為了方便大家了解并入門微信小程序,我將一些可能會需要的知識,列在這里,讓大家方便的從零開始學(xué)習(xí)一微信小程序的特點張小龍張小龍全面闡述小程序,推薦通讀此文小程序是一種不需要下載安裝即可使用的應(yīng)用,它出現(xiàn)了觸手可及的夢想,用戶掃一掃或者搜一下即 為了方便大家了解并入門微信小程序,我將一些可能會需要的知識,列在這里,讓大家方便的從零開始學(xué)習(xí); 一:微信小程序的特點 張小龍:張小龍全面闡述小程...

    whataa 評論0 收藏0
  • 從零開始:信小程序新手入門寶典《一》

    摘要:為了方便大家了解并入門微信小程序,我將一些可能會需要的知識,列在這里,讓大家方便的從零開始學(xué)習(xí)一微信小程序的特點張小龍張小龍全面闡述小程序,推薦通讀此文小程序是一種不需要下載安裝即可使用的應(yīng)用,它出現(xiàn)了觸手可及的夢想,用戶掃一掃或者搜一下即 為了方便大家了解并入門微信小程序,我將一些可能會需要的知識,列在這里,讓大家方便的從零開始學(xué)習(xí); 一:微信小程序的特點 張小龍:張小龍全面闡述小程...

    mdluo 評論0 收藏0
  • 從零開始:信小程序新手入門寶典《一》

    摘要:為了方便大家了解并入門微信小程序,我將一些可能會需要的知識,列在這里,讓大家方便的從零開始學(xué)習(xí)一微信小程序的特點張小龍張小龍全面闡述小程序,推薦通讀此文小程序是一種不需要下載安裝即可使用的應(yīng)用,它出現(xiàn)了觸手可及的夢想,用戶掃一掃或者搜一下即 為了方便大家了解并入門微信小程序,我將一些可能會需要的知識,列在這里,讓大家方便的從零開始學(xué)習(xí); 一:微信小程序的特點 張小龍:張小龍全面闡述小程...

    LdhAndroid 評論0 收藏0
  • 吃貨福利get-今日美食food信小程序

    摘要:微信小程序仿今日美食初學(xué)微信小程序,嗯,還不錯嘛,挺有趣的于是自己動手擼了一個。開發(fā)工具下載開發(fā)者工具微信小程序官網(wǎng),下載好后就可以進行開發(fā)了喲。 wechat-todayFood 微信小程序仿今日美食food 初學(xué)微信小程序,嗯,還不錯嘛,挺有趣的! 于是自己動手擼了一個?。你別說一看標題就知道我是吃貨呀,我是不想這么快就被揭穿的,但是這個小程序就是這么有意思呀。好了我要進入正題了,...

    loostudy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<