1. 程式人生 > >公眾號和小程式開發

公眾號和小程式開發

WechatAPI_BackEnd_TOKEN_OPENID

一、前期準備

  1. 有一臺公網IP的伺服器
  2. 註冊域名並進行備案(保證合法開啟80埠)
  3. 在微信公眾號平臺 AND 小程式平臺 填寫伺服器相關配置和回撥地址
  4. 拉取Demo、數字簽名等等
  5. 進行微信認證
  6. 可以直接用80埠執行、也可以在有域名的情況下進行繫結其他埠。

#二、獲取Token(用於對公眾號和小程式進行操作)

“原理:你去非同步訪問他、帶上相應引數、成功的話就能下載一個檔案、這個檔案裡面就有相應的token”

1.公眾號

1. 呼叫service方法(從網路Url中下載檔案):

2. 讀取檔案中的Token

public String UpdateToken(HttpServletRequest request) throws IOException {
         String tokenURL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx2b1927149d977ac1&secret=bf18aa42e02f697211a496882c7c12a7";
         File TokenFile = new File(this.getClass().getResource("").getFile() + "/token.txt");
         HTTPUtils.downLoadFromUrl(tokenURL, "token.txt", TokenFile.getParent());
 
         System.out.println(TokenFile.getAbsolutePath());
 
         List<String> stringList = IOUtils.readLines(new FileInputStream(TokenFile));
 
         String token = stringList.get(0);
 
 
         String[] tokenParse = token.substring(1, token.length()).replaceAll("\"", "").split(",");
         String[] result = tokenParse[0].split(":");
 
 
         if (result[0].equals("access_token")) {
             System.out.println("獲取token成功");
             System.out.println(result[1]);
             request.getServletContext().setAttribute("WeachatToken", result[1]);
             return result[1];
         } else {
             System.out.println("獲取token失敗");
             return "獲取token失敗";
         }
     }

2.小程式

三、獲取Openid(對公眾號和小程式的使用者進行操作)

“其實原理就是、你去重定向他、帶上他想要的東西。然後他會吸收掉引數、然後來訪問你的介面”

1.進行訊息推送(公眾號)

1.拿到code:

進行重定向https://open.weixin.qq.com/connect/oauth2/authorize?appid=唯一標識&redirect_uri=" + 回撥地址(給需要openid的方法) + "&response_type=code&scope=snsapi_userinfo&state=13392876810#wechat_redirect=asd

2.拿到Openid:

寫一個API介面接收code,訪問https://api.weixin.qq.com/sns/oauth2/access_token?appid=唯一標識&secret=唯一密碼&code=" + 第一步會帶來的引數 + "&grant_type=authorization_code

2.進行訊息推送(小程式)