WechatConfig.java 2.0 KB

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