公眾號和小程式開發
阿新 • • 發佈:2018-12-16
WechatAPI_BackEnd_TOKEN_OPENID
一、前期準備
- 有一臺公網IP的伺服器
- 註冊域名並進行備案(保證合法開啟80埠)
- 在微信公眾號平臺 AND 小程式平臺 填寫伺服器相關配置和回撥地址
- 拉取Demo、數字簽名等等
- 進行微信認證
- 可以直接用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