1. 程式人生 > >微信小程式獲取獲取openid

微信小程式獲取獲取openid

之前看很多獲取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然後返回前段就好了