微信小程式獲取獲取openid
阿新 • • 發佈:2019-01-30
之前看很多獲取openid都是直接在小程式裡面獲取的
但是現在不能在小程式裡面講獲取openid 的地址加為白名單了
所以只能通過前段傳來code 後段獲取openid了
微信小程式程式碼
/**
* 生命週期函式--監聽頁面載入
* 微信獲取openid
*/
onLoad: function (options) {
wx.login({
success: function (res) {
var code = res.code;//登入憑證
//console.log(code);
wx.request({
url: 'http://域名' , // 獲取openid
data: {
code: code//傳遞的code資料
}
})
},
fail: function () {
callback(false)
}
});
}
後段java獲取openid的程式碼
/**
* Created by hubo on 2017/11/10
* openid資料庫的操作指令
*/
public class AccessOpenId extends HttpServlet{
/**
* 獲取使用者登陸openid方法
*/
private static final String APPID = ""; //小程式的APPID
private static final String APPSECRET = ""; //小程式的appsecret
private static final String OPENID_URL = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret" +
"=SECRET&js_code=JSCODE&grant_type=authorization_code" ;//獲取openid的地址
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String Code = req.getParameter("code"); //獲取前臺傳入的引數
String url = OPENID_URL.replace("APPID",APPID).replace("SECRET",APPSECRET).replace("JSCODE",Code);
JSONObject jsonObject = WeixinUtil.doGetStr(url); //調取Get提交方法
String OpenId = jsonObject.getString("openid"); //獲取openid
}
}
doget方法程式碼
/**
* get請求
* @param url
* @return
*/
public static JSONObject doGetStr(String url){
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
JSONObject jsonObject = null;
try {
HttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity(); //接受結果
if(entity != null){
String result = EntityUtils.toString(entity,"UTF-8");
jsonObject = JSONObject.fromObject(result);
}
} catch (IOException e) {
e.printStackTrace();
}
return jsonObject;
}
獲取的opneid就是openid然後返回前段就好了