微信登陸-小程序

上一篇寫了微信PC端登陸,這篇來說下小程序的JAVA登陸,流程不太相同,小程序的相對簡單前端

PC端登陸能夠看一下個人另外一篇文章  : 微信登陸-PC端版本json

老規矩,直接貼代碼小程序

/**
 * @Author : Yanqiang
 * @Date : 2019/4/9
 * @Param : [code, fullUserInfo, source]
 * @return : com.jld.passport.common.BaseResult
 * @Description :
 * 
 *          前端請求到這個接口的時候,就已經拿到用戶的基本信息了,用code + APPID + Secret 去請求登陸接口
 */
public BaseResult login(String code, JSONObject fullUserInfo, int source) {
    BaseResult baseResult = new BaseResult();
    //組裝返回數據
    String loginUrl = "https://api.weixin.qq.com/sns/jscode2session?appid={APPID}&secret={SECRET}&js_code={CODE}&grant_type=authorization_code";
    //userInfo信息,從這裏面拿到用戶信息
    JSONObject userInfo = (JSONObject) fullUserInfo.get("userInfo");

    //區分不一樣小程序的appid
    if (source == 1){
        //小程序
        loginUrl = loginUrl.replace("{APPID}","微信發放的APPID")
                .replace("{SECRET}","微信發放的Secret")
                .replace("{CODE}",code);
    }else if (source == 2){
        //App
        loginUrl = loginUrl.replace("{APPID}","微信發放的APPID")
                .replace("{SECRET}","微信發放的Secret")
                .replace("{CODE}",code);
    }else if (source == 3){
        //公衆號
        loginUrl = loginUrl.replace("{APPID}","微信發放的APPID")
                .replace("{SECRET}","微信發放的Secret")
                .replace("{CODE}",code);
    }
    log.info("請求微信登陸url:"+loginUrl);
    JSONObject jsonData = CommonUtil.httpsRequest(loginUrl, EnumMethod.GET.name(), null);
    log.info("請求微信登陸返回data:"+jsonData);
    //不要用微信文檔上的那些code作判斷!!! 根本不許,
    String wxUnionId = (String) jsonData.get("unionid");
    if (wxUnionId != null){
        //請求成功
        String openid = (String) jsonData.get("openid");
        //業務處理....
    }else {
        //請求失敗
        JldUtils.setStatus(baseResult, StatusCode.USER_LOGIN_FAIL_ERROR);
    }
    //wxUnionId; 執行登陸記錄(0登陸/1登出); source登陸來源(1小程序/2App/3公衆號/4 PC)
    int a =insertLoginLog(wxUnionId,0,source);
    return baseResult;
}
相關文章
相關標籤/搜索