← 回到文章列表

使用HttpClient4登录支付宝-二维码接口

因为淘宝登录的时候会记录登录ip 导致异地登录次数过多的时候 会强制进行二次验证拦截 导致登录失效问题发生 所以就想了下从其他接口快速登入淘宝试试 瞄上了手机快捷扫码登入方式 直接上代码

因为淘宝登录的时候会记录登录ip
导致异地登录次数过多的时候
会强制进行二次验证拦截
导致登录失效问题发生
所以就想了下从其他接口快速登入淘宝试试
瞄上了手机快捷扫码登入方式


直接上代码

	public static void main(String[] args) throws Exception{
		ThreadHttpClient.getInstance();
		ThreadHttpClient.getInstance().initHttp();
		
		String preAlipayHtml = ClientHttp.doGet("https://auth.alipay.com/login/index.htm");
		//獲取安全參數
	    String brCode = preAlipayHtml.substring(preAlipayHtml.indexOf("barcode: \"")+"barcode: \"".length());
	    brCode = brCode.substring(0,brCode.indexOf("\""));
	    String secId = preAlipayHtml.substring(preAlipayHtml.indexOf("securityId: \"")+"securityId: \"".length());
	    secId = secId.substring(0,secId.indexOf("\""));
	    System.out.println("二維碼地址:\n"+brCode);
		//獲取hidden的input value
		Map<String,String> inputParams = new HashMap<String,String>();
		while(preAlipayHtml.contains("<input type=\"hidden\"")){
			preAlipayHtml = preAlipayHtml.substring(preAlipayHtml.indexOf("<input type=\"hidden\""));
			String tmp = preAlipayHtml.substring(0,preAlipayHtml.indexOf("/>")+"/>".length());
			tmp = tmp.replace("value = ", "value=");
			preAlipayHtml = preAlipayHtml.substring(1,preAlipayHtml.length());
			String name = tmp.substring(tmp.indexOf("name=\"")+"name=\"".length());
			name = name.substring(0,name.indexOf("\""));
			String value = "";
			if(tmp.contains("value=")){
				value = tmp.substring(tmp.indexOf("value=\"")+"value=\"".length());
				value = value.substring(0,value.indexOf("\""));
			}
			inputParams.put(name, value);
		}
		//打印二維碼 詳見之前的文章
		QRcodeEncoder.qRCodeCommon(brCode,3);
		//等待20秒 用來手機操作
		try {
			Thread.sleep(20000);
		} catch (InterruptedException e) {
			logger.info("進程等待出現異常");
		}
		//獲取二維碼認證結果
		String checkBarcode = ClientHttp.doGet("https://securitycore.alipay.com/barcode/barcodeProcessStatus.json",
				"securityId="+URLEncoder.encode(secId,"utf-8")
				+"&_callback="+URLEncoder.encode("_callbacks.callback1","utf-8"));
		System.out.println(checkBarcode);
		
		//進行參數整合 發送
		Map<String,String> postParams = new LinkedHashMap<String,String>();
		postParams.put("ua", "");
		postParams.put("support", "000001");
		postParams.put("needTransfer", "");
		postParams.put("CtrlVersion", "1,1,0,1");
		postParams.put("loginScene", "index");
		postParams.put("redirectType", "");
		postParams.put("personalLoginError", "");
		postParams.put("goto", "");
		postParams.put("errorVM", "");
		postParams.put("sso_hid", "");
		postParams.put("site", "");
		postParams.put("errorGoto", "");
		postParams.put("rds_form_token", inputParams.get("rds_form_token"));
		postParams.put("json_tk", "");
		postParams.put("method", "qrCodeLogin");
		postParams.put("logonId", "");
		postParams.put("superSwitch", "true");
		postParams.put("noActiveX", "false");
		postParams.put("passwordSecurityId", inputParams.get("passwordSecurityId"));
		postParams.put("qrCodeSecurityId", inputParams.get("qrCodeSecurityId"));
		postParams.put("scid", "");
		postParams.put("password_input", "");
		postParams.put("J_aliedit_using", "true");
		postParams.put("password", "");
		postParams.put("J_aliedit_key_hidn", "password");
		postParams.put("J_aliedit_uid_hidn", "alieditUid");
		postParams.put("alieditUid", inputParams.get("alieditUid"));
		postParams.put("REMOTE_PCID_NAME", "_seaside_gogo_pcid");
		postParams.put("_seaside_gogo_pcid", "");
		postParams.put("_seaside_gogo_", "");;
		postParams.put("_seaside_gogo_p", "");
		postParams.put("J_aliedit_prod_type", "");
		postParams.put("checkCode", "");
		postParams.put("idPrefix", "");
		
		ClientHttp.doPost("https://auth.alipay.com/login/index.htm", postParams, "UTF-8");
		
		String loginAlipay = ClientHttp.doGet("http://my.alipay.com");
		//登入完畢
		System.out.println(loginAlipay);
	}

在这里找找

输入关键词,找一篇过去的记录。