public AccessTokenResult getAccessToken(String code)
    {
        String respStr = getAccessTokenStr(TX_ACCESS_TOKEN_URL_PC, code);

        AccessTokenResult result = new AccessTokenResult();
        if (respStr == null || "".equals(respStr)) {
        	result.setRv(ERROR_NETWORK_CALL);
        	return result;
        }
        
		
        if (respStr.startsWith("callback")) {
            int lpos = respStr.indexOf("(");
            int rpos = respStr.indexOf(")");
            respStr = respStr.substring(lpos + 1, rpos - 1);
            Object obj = JSON.parse(respStr);
    		JSONObject msg = (JSONObject)obj;
    		
    		int errcode = msg.getIntValue("error");
            if (errcode != 0) {
                result.setRv(errcode);
                result.setErrmsg(msg.getString("error_description"));
            } else {
                result.setRv(ERROR_FAIL_DEFAULT);
            }
        } else {
            Map<String,String>msg = HTTPClientUtil.parseUriParam(respStr);
            if (msg ==null || msg.get("access_token") == null) {
            	result.setRv(ERROR_PARSE_CALLBACK);
            } else {
            	result.setRv(ERROR_SUCCESS);
            	String accessToken = msg.get("access_token");
                result.setAccessToken(accessToken);
                long now = new Date().getTime();
                result.setLoginTime(now);
                String expiresIn = msg.get("expires_in");
                try {
                	long expires = Long.parseLong(expiresIn);
                	result.setExpireTime(now + expires - 600);
                } catch (Exception e) {
                	
                }
                
                this.accessToken = accessToken;
            }
            
            
        }
        return result;
    }