1. 程式人生 > >微信公眾號獲取臨時二維碼

微信公眾號獲取臨時二維碼

  我們做微信公眾號開發時為了推廣,可能需要服務端去生成公眾號的臨時二維碼,然後再進行一定的圖片合成操作,製作一張漂亮的推廣海報。別人掃一下二維碼進入關注公眾號介面,點選關注我們可以拿到二維碼裡面的資訊官網地址

  記錄一下獲取臨時二維碼操作過程。

  1.獲取access_token 上一篇部落格寫了 就不贅述了;

  2.根據access_token獲取二維碼ticket,獲取到了二維碼ticket就基本山是成功了;

  3.通過ticket換取二維碼,其實就是拼接url和ticket。

public class WeChatQRCodeTest {
    public static void main(String[] args) {

        String qrcodeUrl = "";
        try {
            String accessToken = "15_Yws71Wr-Fk9DW5acDWvyn3YWTfp_jkuBxCl8Hue5hRrB064FVrYSPZgNqdxpw1WKVbp0c7DIerwzGa2iuJDI2er3q7ntf" +
                    "WNteHZbpSXwCLnUh0p16UQvUhisKKqTrPAMQQdHXklTywmQ6L8MVKNiAJAAPS";
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("expire_seconds", 2592000);
            jsonObject.put("action_name", "QR_STR_SCENE");

            JSONObject actionInfo = new JSONObject();
            JSONObject scene = new JSONObject();
            scene.put("scene_str", "二維碼中攜帶的資訊");
            actionInfo.put("scene", scene);
            jsonObject.put("action_info", actionInfo);

            String url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + accessToken;
            String result = HttpClientUtil.doPostJson(url, jsonObject.toJSONString());
            JSONObject resultJson = JSONObject.parseObject(result);
            String ticket = resultJson.getString("ticket");

            /**
             * 實際應用中可以根據過期時間伺服器儲存ticket
             */
            Integer expire_seconds = resultJson.getInteger("expire_seconds");

            qrcodeUrl = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + URLEncoder.encode(ticket, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        System.out.println(qrcodeUrl);
    }
}

  程式碼如上,這裡HttpClientUtil即上篇部落格的HttpClientUtil,access_token是獲取到寫死的,單介面測試 可以使用微信提供的網頁測試工具獲取。

  scene_str裡面對應的值即我們需要攜帶在二維碼中的資訊。