微信小程序生成二维码


   

       

           

               

JAVA笔记 | 小程序外部调用/生成小程序二维码


           

           
       

   

    
       

           

               

                   
                   

                        13 篇文章
                        1 订阅
                   

                   

                            订阅专栏
                   

               

           

       

   

       

       
       
               

                   

目录

 

目录

 

auth.getAccessToken获取接口调用凭证

 

官方文档

 

官方描述

 

实际运用

 

 

wxacode.get生成小程序二维码

 

官方文档

 

官方描述

 

请求地址

 

实际运用

 

urlscheme.generate生成小程序scheme,用于外部拉起小程序

 

官方文档

 

官方描述

 

 请求地址

 

实际运用

 

 

 

 

 

auth.getAccessToken获取接口调用凭证

 

官方文档

 

auth.getAccessToken | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html

 

官方描述

 
 
 

获取小程序全局唯一后台接口调用凭据(access_token)。调用绝大多数后台接口时都需使用 access_token,开发者需要进行妥善保存。

 
 

实际运用

 
  1. //入参分别为小程序的 appId 与 appSecret
  2. public static String postToken(String appId,String secret) throws Exception {
  3.        String requestUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + secret;
  4.        URL url = new URL(requestUrl);
  5.        // 打开和URL之间的连接
  6.        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  7.        connection.setRequestMethod("POST");
  8.        // 设置通用的请求属性
  9.        connection.setRequestProperty("Content-Type", "application/json");
  10.        connection.setRequestProperty("Connection", "Keep-Alive");
  11.        connection.setUseCaches(false);
  12.        connection.setDoOutput(true);
  13.        connection.setDoInput(true);
  14.        // 得到请求的输出流对象
  15.        DataOutputStream out = new DataOutputStream(connection.getOutputStream());
  16.        out.writeBytes("");
  17.        out.flush();
  18.        out.close();
  19.        // 建立实际的连接
  20.        connection.connect();
  21.        // 定义 BufferedReader输入流来读取URL的响应
  22.        BufferedReader in = null;
  23.        if (requestUrl.contains("nlp")) {
  24.            in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "GBK"));
  25.        } else {
  26.            in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
  27.        }
  28.        String result = "";
  29.        String getLine;
  30.        while ((getLine = in.readLine()) != null) {
  31.            result += getLine;
  32.        }
  33.        in.close();
  34.        JSONObject jsonObject = JSON.parseObject(result);
  35.        String accesstoken = jsonObject.getString("access_token");
  36.        return accesstoken;
  37.    }
 

 

wxacode.get生成小程序二维码

 

官方文档

 

wxacode.get | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.get.html

 

官方描述

 
 
 

获取小程序码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制

 
 

请求地址

 
 
 

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

 
 

实际运用

 
  1. //strId 业务用到的参数,用于小程序跳转页面对应要传给前端的参数
  2. public String getAppletCode(String strId, String accessToken) {
  3.        try {
  4.            //获取小程序码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制
  5.            URL url = new URL("https://api.weixin.qq.com/wxa/getwxacode?access_token=" + accessToken);
  6.            //获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制。
  7.            //URL url = new URL("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken);
  8.            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
  9.            httpURLConnection.setRequestMethod("POST");// 提交模式
  10.            // 发送POST请求必须设置如下两行
  11.            httpURLConnection.setDoOutput(true);
  12.            httpURLConnection.setDoInput(true);
  13.            // 获取URLConnection对象对应的输出流
  14.            PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
  15.            // 发送请求参数
  16.            JSONObject paramJson = new JSONObject();
  17.            paramJson.put("path", "/pages/match/index?id=" + strId);
  18.            paramJson.put("width", 430);
  19.            paramJson.put("auto_color", true);
  20.            //设置小程序码版本
  21.            //paramJson.put("env_version","release"); 默认正式
  22.            //paramJson.put("env_version","trial"); 体验版
  23.            //paramJson.put("env_version","develop"); 开发版
  24.            printWriter.write(paramJson.toString());
  25.            // flush输出流的缓冲
  26.            printWriter.flush();
  27.            String contentType = httpURLConnection.getContentType();
  28.            if (contentType.contains("json")) {
  29.                log.info("调用微信小程序生成接口出错,token失效");
  30.                throw new IllegalArgumentException("调用微信小程序生成接口出错,token失效");
  31.            } else {
  32.                //开始获取数据
  33.                InputStream is = httpURLConnection.getInputStream();
  34.                //此处根据具体需要返回的值 return对应给前端
  35.            }
  36.        } catch (Exception e) {
  37.            e.printStackTrace();
  38.        }
  39.        return null;
  40.    }
 

 

urlscheme.generate生成小程序scheme,用于外部拉起小程序

 

官方文档

 

urlscheme.generate | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-scheme/urlscheme.generate.html#method-http

 

官方描述

 
 
 

获取小程序 scheme 码,适用于短信、邮件、外部网页、微信内等拉起小程序的业务场景。通过该接口,可以选择生成到期失效和永久有效的小程序码,有数量限制。

 
 

 请求地址

 
 
 

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

 
 

实际运用

 
  1. //strId 业务用到的参数,用于小程序跳转页面对应要传给前端的参数
  2. public String getUrlScheme(String strId, String accessToken){
  3.        try {
  4.            //获取小程序码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制
  5.            URL url = new URL("https://api.weixin.qq.com/wxa/generatescheme?access_token=" + accessToken);
  6.            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
  7.            httpURLConnection.setRequestMethod("POST");// 提交模式
  8.            // 发送POST请求必须设置如下两行
  9.            httpURLConnection.setDoOutput(true);
  10.            httpURLConnection.setDoInput(true);
  11.            // 获取URLConnection对象对应的输出流
  12.            PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
  13.            // 发送请求参数
  14.            JSONObject innerParamJson = new JSONObject();
  15.            innerParamJson.put("path","/pages/match/index");
  16.            innerParamJson.put("query","id=" + strId);
  17.            JSONObject paramJson = new JSONObject();
  18.            paramJson.put("jump_wxa",innerParamJson);
  19.            paramJson.put("is_expire",false);
  20.            printWriter.write(paramJson.toString());
  21.            // flush输出流的缓冲
  22.            printWriter.flush();
  23.            String contentType = httpURLConnection.getContentType();
  24.            if(httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK){
  25.                BufferedReader br = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
  26.                String letter;
  27.                StringBuilder str = new StringBuilder();
  28.                while ((letter = br.readLine()) != null){
  29.                    str.append(letter);
  30.                }
  31.                br.close();
  32.                httpURLConnection.disconnect();
  33.                String sr = str.toString();
  34.                JSONObject jsonObject = (JSONObject) JSON.parse(sr);
  35.                return (String) jsonObject.get("openlink");
  36.            }
  37.        }catch (Exception e){
  38.            e.printStackTrace();
  39.        }
  40.        return null;
  41.    }
 


               

       

       
文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览132949 人正在系统学习中

   


你可能感兴趣的:(java,前端,html)