国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java】微信小程序二維碼(后臺,附獲取accessToken)

這篇具有很好參考價值的文章主要介紹了【Java】微信小程序二維碼(后臺,附獲取accessToken)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

????????調(diào)用方式

????????主要的請求參數(shù)

????????工具類

????????二維碼轉(zhuǎn)圖片

????????獲取accessToken

????????HTTPS 調(diào)用:

????????請求參數(shù)

????????代碼

????????實現(xiàn)類


調(diào)用方式

POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

主要的請求參數(shù)

屬性

類型

必填

說明

access_token

string

接口調(diào)用憑證

scene

string

最大32個可見字符,只支持?jǐn)?shù)字,大小寫英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~

page

string

默認(rèn)是主頁,例如 pages/index/index,根路徑前不要填加 /,不能攜帶參數(shù)

env_version

string

要打開的小程序版本。正式版為 "release",體驗版為 "trial",開發(fā)版為 "develop"。默認(rèn)是正式版。

is_hyaline

bool

默認(rèn)是false,是否需要透明底色,為 true 時,生成透明底色的小程序

工具類

二維碼轉(zhuǎn)圖片

import java.io.*;

public class WxaQrCodeUtil {
    /**
     * 二維碼保存到本地
     * @param bytes
     * @param path 保存到本地的路徑
     */
    public static void saveQrCodeToLocal(byte[] bytes, String path) {
        try {
            InputStream inputStream = new ByteArrayInputStream(bytes);
            //文件夾不存在則自動創(chuàng)建
            File tempFile = new File(path);
            if (!tempFile.getParentFile().exists()) {
                tempFile.getParentFile().mkdirs();
            }
            FileOutputStream out = new FileOutputStream(path);
            byte[] buffer = new byte[8192];
            int bytesRead = 0;
            while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) {
                out.write(buffer, 0, bytesRead);
            }
            out.flush();
            inputStream.close();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
 

獲取accessToken

HTTPS 調(diào)用:

GET https://api.weixin.qq.com/cgi-bin/token

請求參數(shù)

屬性

類型

必填

說明

grant_type

string

填寫 client_credential

appid

string

小程序唯一憑證,可在「微信公眾平臺 - 設(shè)置 - 開發(fā)設(shè)置」頁中獲得。

secret

string

小程序唯一憑證密鑰,即 AppSecret,獲取方式同 appid

代碼

private static final Map<String, Object> objects = new HashMap<>();
 

public JSONObject getToken(){
    JSONObject accessTokenRes = new JSONObject();
    String accessToken = null;
    try {
        String token_url = String.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", APPID, SECRET);
        HttpResponse execute = HttpRequest.get(token_url).execute();
        String responseBody = execute.body();
        if (responseBody == null) {
            logger.info(messageUtil.getMessage("msg.get.token.fail"));
            return null;
        }
        JSONObject token = JSON.parseObject(responseBody);
        accessToken = token.getString("access_token");
        if (StringUtils.isEmpty(accessToken)) {
            logger.info(messageUtil.getMessage("msg.get.token.fail"));
            return null;
        }
        accessTokenRes.put("access_token",accessToken);
        accessTokenRes.put("date_time",new Date().getTime());
    } catch (Exception e) {
        logger.error(messageUtil.getMessage("msg.get.token.fail"));
        logger.error(e.getMessage());
    }
   return accessTokenRes;
}

access_token 的有效期目前為 2 個小時,需定時刷新。

實現(xiàn)類

@ApiOperation(value = "生成二維碼", httpMethod = "GET")
@RequestMapping(value = "/api/qrcode", method = RequestMethod.GET)
@Transactional
public WxaQrCodeUrlResponse getQrCode(HttpServletRequest request) throws Exception {
    WxaQrCodeUrlResponse res = new WxaQrCodeUrlResponse();
    
    Date now = new Date();
    // 獲取accessToken
    String accessToken = null;
    if(null != objects.get("date_time")){
        accessToken = String.valueOf(objects.get("access_token"));
    }
    Long date = 0L;
    if(null != objects.get("date_time")) {
        date = Long.valueOf(String.valueOf(objects.get("date_time")));
    }
    if(null == accessToken || now.getTime()-date >= 2*60*60*1000){
        JSONObject accessTokenRes = getToken();
        objects.put("access_token",accessTokenRes.get("access_token"));
        objects.put("date_time",now.getTime());
        accessToken = String.valueOf(objects.get("access_token"));
    }

    if (StringUtils.isEmpty(accessToken)) {
        res.setMessage("獲取token失敗");
        res.setCode(Constants.SC_MSG);
        return res;
    }

    String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken;

    // 請求參數(shù)
    Map<String,Object> body = new HashMap<>();
    body.put("scene", "自定義參數(shù)");
    body.put("env_version", "release");
    // 默認(rèn)是false,是否需要透明底色,為 true 時,生成透明底色的小程序
    body.put("is_hyaline", false);

    byte[] bytes = HttpClientUtils.getWechatQrcodeByHttpClient(url, body);
    String fileName = "wxqrcode.png";
    String path = "文件夾路徑" + File.separator + fileName;
    WxaCodeUtil.saveQrCodeToLocal(bytes, path);

    // TODO 圖片處理,返回圖片

    // 刪除本地文件
    new File(path).delete();

    res.setCode(Constants.SC_OK);
    return res;
}

實際遇到的問題:采用透明底色生成的二維碼,在微信中按壓圖片,不能識別小程序文章來源地址http://www.zghlxwxcb.cn/news/detail-761822.html

到了這里,關(guān)于【Java】微信小程序二維碼(后臺,附獲取accessToken)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 微信小程序后臺:解決微信掃普通鏈接地址無法跳轉(zhuǎn)到體驗版微信的問題,配置普通鏈接二維碼規(guī)則解釋和理解

    微信小程序后臺:解決微信掃普通鏈接地址無法跳轉(zhuǎn)到體驗版微信的問題,配置普通鏈接二維碼規(guī)則解釋和理解

    一、現(xiàn)象與原因 最近突然發(fā)現(xiàn)微信管理平臺中,設(shè)置好的普通二維碼連接跳轉(zhuǎn)到體驗版小程序的功能,沒有區(qū)分體驗版和生產(chǎn)版,全部到生產(chǎn)環(huán)境的小程序了。 這現(xiàn)象,跟我以前理解的可不一樣,可能會出生產(chǎn)的事故,馬上仔細(xì)研究了研究。 研究發(fā)現(xiàn),“掃普通鏈接二維碼

    2024年02月15日
    瀏覽(48)
  • Java集成微信小程序生成二維碼傳回前端,提供下載按鈕

    然后就大功告成了?。。。。?/p>

    2024年03月24日
    瀏覽(24)
  • Java生成微信小程序二維碼,5種實現(xiàn)方式,一個比一個簡單

    Java生成微信小程序二維碼,5種實現(xiàn)方式,一個比一個簡單

    先介紹一下 項目場景 ,主要是通過微信小程序二維碼 裂變分享 ,每個賬號有專屬邀請二維碼,分享出去,有新人掃碼入駐,就可以得到現(xiàn)金獎勵或紅包獎勵。當(dāng)然,產(chǎn)品設(shè)計會更豐富,不止有裂變模式,還有渠道推廣模式,還有各種獎勵規(guī)則,但核心實現(xiàn)都是生成二維碼。

    2024年02月03日
    瀏覽(96)
  • 微信小程序怎樣生成體驗版二維碼?微信小程序怎么轉(zhuǎn)化為二維碼?

    微信小程序怎樣生成體驗版二維碼?微信小程序怎么轉(zhuǎn)化為二維碼?

    方法:在微信開發(fā)者工具界面,右上角,點擊上傳,如果提示成功,說明已經(jīng)上傳成功。 ? ? 網(wǎng)址: 微信公眾平臺 微信公眾平臺,給個人、企業(yè)和組織提供業(yè)務(wù)服務(wù)與用戶管理能力的全新服務(wù)平臺。 https://mp.weixin.qq.com/ 在微信公眾號平臺登錄,選擇需要生成二維碼的小程序

    2024年02月10日
    瀏覽(106)
  • 如何生成微信小程序二維碼,小程序內(nèi)頁二維碼

    如何生成微信小程序二維碼,小程序內(nèi)頁二維碼

    你自己得有個微信公眾號,只需要知道小程序的名字就可以了 生成小程序二維碼 第一步編輯素材 第二步搜索小程序名字,然后回車,下一步 第三步選小程序碼 小程序內(nèi)頁二維碼 第一步編輯素材 第二步搜索小程序名字,然后回車,下一步 第三步點擊‘獲取更多路徑’ 第四

    2024年02月15日
    瀏覽(31)
  • 小程序獲取企業(yè)微信二維碼,使用聯(lián)系我插件配置企業(yè)微信二維碼

    小程序獲取企業(yè)微信二維碼,使用聯(lián)系我插件配置企業(yè)微信二維碼

    通過配置獲取企業(yè)微信二維碼總共分為五步: 第一步:登錄企業(yè)微信管理后臺,查詢企業(yè)微信的企業(yè)ID(corpid)和Secret(corpsecret); 第二步:獲取access_token; 第三步:通過員工ID配置生成config_id(即企業(yè)微信聯(lián)系我plugid); 第四步:通過config_id獲取企業(yè)已配置的「聯(lián)系我」方式;

    2024年02月09日
    瀏覽(20)
  • 【微信小程序二維碼配置】微信公眾平臺配置二維碼,小程序測試二維碼,小程序動態(tài)二維碼,然后掃碼打開對應(yīng)頁面進(jìn)行操作

    【微信小程序二維碼配置】微信公眾平臺配置二維碼,小程序測試二維碼,小程序動態(tài)二維碼,然后掃碼打開對應(yīng)頁面進(jìn)行操作

    微信公眾平臺地址:微信公眾平臺 選擇 開發(fā)管理 – 開發(fā)設(shè)置 – 掃普通鏈接二維碼打開小程序 配置項 二維碼規(guī)則: URL 為內(nèi)含下載校驗文件的服務(wù)器 URL , 可以加二級,比如我的 https://*** /preview , 二級隨便寫什么都可以 測試鏈接(選填): 匹配二維碼規(guī)則地址,后加 *** 參數(shù), 因

    2024年01月19日
    瀏覽(36)
  • 微信小程序顯示二維碼

    在請求接口的success下面寫入這段代碼。 在他的上一個請求數(shù)據(jù)的打他下面創(chuàng)建一個空的用于存放數(shù)據(jù)的東西比如obj:\\\" \\\"用于存放數(shù)據(jù)。 將它放到一個一個點擊事件中,通過觸發(fā)點擊事件執(zhí)行代碼 如果窒息看代碼的話const tupian 這個變量讓他等有一張網(wǎng)絡(luò)圖片。 這段代碼是使

    2024年02月11日
    瀏覽(32)
  • 微信小程序——二維碼推廣海報

    微信小程序——二維碼推廣海報

    ??博主:小貓娃來啦 ??本文核心: 本地圖片和接口返回二維碼制作一體化canvas海報 在微信小程序中,我們使用 canvas 標(biāo)簽來創(chuàng)建一個畫布 wxml 文件: 確立基本樣式 wxss文件: 我們先使用 wx.createCanvasContext 創(chuàng)建一個 canvas 的上下文對象,然后通過調(diào)用 drawImage 方法分別繪制背

    2024年02月16日
    瀏覽(33)
  • 微信小程序之生成二維碼

    微信小程序之生成二維碼

    ?var context = wx.createCanvasContext(\\\'mycanvas\\\');?// 獲取畫布 CanvasContext.fillText string text 在畫布上輸出的文本 number x 繪制文本的左上角 x 坐標(biāo)位置 number y 繪制文本的左上角 y 坐標(biāo)位置 number maxWidth 需要繪制的最大寬度,可選 CanvasContext.drawImage string imageResource 所要繪制的圖片資源(網(wǎng)絡(luò)

    2024年02月10日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包