WechatConfig.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package com.kmall.common.utils.wechat;
  2. import com.kmall.common.service.pay.wxpay.CommonWxPayPropertiesBuilder;
  3. import com.kmall.common.utils.ResourceUtil;
  4. import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
  5. import org.apache.http.conn.ssl.SSLContexts;
  6. import javax.net.ssl.SSLContext;
  7. import java.io.FileInputStream;
  8. import java.io.InputStream;
  9. import java.security.KeyStore;
  10. @SuppressWarnings("deprecation")
  11. public class WechatConfig {
  12. private static SSLConnectionSocketFactory sslcsf;
  13. public static SSLConnectionSocketFactory getSslcsf() {
  14. if (null == sslcsf) {
  15. setSsslcsf();
  16. }
  17. return sslcsf;
  18. }
  19. private static void setSsslcsf() {
  20. try {
  21. KeyStore keyStore = KeyStore.getInstance("PKCS12");
  22. Thread.currentThread().getContextClassLoader();
  23. // InputStream instream = new WechatRefundApiResult().getClass().getResourceAsStream(
  24. // CommonWxPayPropertiesBuilder.instance().getCertName());
  25. InputStream instream = new FileInputStream(CommonWxPayPropertiesBuilder.instance().getCertName());
  26. try {
  27. keyStore.load(instream, CommonWxPayPropertiesBuilder.instance().getMchId().toCharArray());
  28. } finally {
  29. instream.close();
  30. }
  31. SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, CommonWxPayPropertiesBuilder.instance().getMchId().toCharArray()).build();
  32. sslcsf = new SSLConnectionSocketFactory(sslcontext, new String[]{"TLSv1"}, null, SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
  33. } catch (Exception e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. }