|  |  |  | 
|---|
|  |  |  | package com.dy.pipIrrSell.config; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.cert.WxCertUtil; | 
|---|
|  |  |  | import com.dy.pipIrrSell.wechatpay.PayInfo; | 
|---|
|  |  |  | import okhttp3.OkHttpClient; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.boot.context.properties.ConfigurationProperties; | 
|---|
|  |  |  | import org.springframework.context.annotation.Bean; | 
|---|
|  |  |  | import org.springframework.context.annotation.Configuration; | 
|---|
|  |  |  | import org.springframework.core.io.ResourceLoader; | 
|---|
|  |  |  | import org.springframework.http.client.ClientHttpRequestFactory; | 
|---|
|  |  |  | import org.springframework.http.client.OkHttp3ClientHttpRequestFactory; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | import javax.net.ssl.SSLContext; | 
|---|
|  |  |  | import javax.net.ssl.TrustManagerFactory; | 
|---|
|  |  |  | import javax.net.ssl.X509TrustManager; | 
|---|
|  |  |  | import java.io.File; | 
|---|
|  |  |  | import java.io.FileInputStream; | 
|---|
|  |  |  | import java.io.InputStream; | 
|---|
|  |  |  | import java.security.KeyStore; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Configuration | 
|---|
|  |  |  | public class RestTemplateWechatCertConfig { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String mchid = PayInfo.mchid; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ResourceLoader resourceLoader; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Bean | 
|---|
|  |  |  | @ConfigurationProperties(prefix = "org.liurb.core.rest-template.config.connection") | 
|---|
|  |  |  | public ClientHttpRequestFactory wechatHttpRequestFactory() throws Exception { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | KeyStore keyStore = KeyStore.getInstance("PKCS12"); | 
|---|
|  |  |  | //InputStream cp = this.getClass().getResourceAsStream("apiclient_cert.p12"); | 
|---|
|  |  |  | FileInputStream instream = new FileInputStream(new File("C:\\webchat\\apiclient_cert.p12")); | 
|---|
|  |  |  | keyStore.load(instream, mchid.toCharArray()); | 
|---|
|  |  |  | InputStream in = WxCertUtil.getCert_p12InputStream(resourceLoader); | 
|---|
|  |  |  | keyStore.load(in, mchid.toCharArray()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); | 
|---|
|  |  |  | keyManagerFactory.init(keyStore, mchid.toCharArray()); | 
|---|