https:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
try{ StringBuffer reultBuffer = new StringBuffer(); KeyStore keyStore = KeyStore.getInstance("PKCS12"); FileInputStream instream = new FileInputStream(new File("/home/certificate/apiclient_cert.p12")); String passwordssss=mch_id; keyStore.load(instream, passwordssss.toCharArray()); //证书密码 instream.close(); SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, passwordssss.toCharArray()).build(); //证书密码(初始是商户ID) SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext,new String[] { "TLSv1" },null,SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER); HttpPost httpPost = new HttpPost("https://fraud.mch.weixin.qq.com/risk/getpublickey"); CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build(); httpPost.setHeader("Content-Type", "text/xml; charset=UTF-8"); httpPost.setEntity(new StringEntity(str_lingqian.toString(),"UTF-8")); CloseableHttpResponse response = null; InputStream inputStream = null; InputStreamReader inputStreamReader = null; BufferedReader bufferedReader = null; try { response = httpclient.execute(httpPost); HttpEntity entity = response.getEntity(); if (entity!=null){ inputStream = entity.getContent(); inputStreamReader = new InputStreamReader(inputStream,"UTF-8"); bufferedReader = new BufferedReader(inputStreamReader); String str = null; while ((str = bufferedReader.readLine()) != null) { reultBuffer.append(str); System.out.println(str); } } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ httpclient.close(); response.close(); bufferedReader.close(); inputStreamReader.close(); inputStream.close(); inputStream = null; } Document document = DocumentHelper.parseText(reultBuffer.toString()); Element rootElm = document.getRootElement(); if(rootElm.elementText("return_code").toString().equals("SUCCESS") && rootElm.elementText("result_code").toString().equals("SUCCESS") ){ pub_key = rootElm.elementText("pub_key").toString(); System.out.println("pub_key = "+pub_key); }else{ return status; } }catch(Exception e){ e.printStackTrace(); } |