| package com.dy.pipIrrSell.config; | 
|   | 
| import com.dy.pipIrrSell.wechatpay.PayInfo; | 
| import okhttp3.OkHttpClient; | 
| import org.springframework.boot.context.properties.ConfigurationProperties; | 
| import org.springframework.context.annotation.Bean; | 
| import org.springframework.context.annotation.Configuration; | 
| import org.springframework.http.client.ClientHttpRequestFactory; | 
| import org.springframework.http.client.OkHttp3ClientHttpRequestFactory; | 
|   | 
| import javax.net.ssl.KeyManagerFactory; | 
| 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.security.KeyStore; | 
|   | 
| /** | 
|  * @author ZhuBaoMin | 
|  * @date 2024-03-06 11:44 | 
|  * @LastEditTime 2024-03-06 11:44 | 
|  * @Description | 
|  */ | 
|   | 
| @Configuration | 
| public class RestTemplateWechatCertConfig { | 
|     String mchid = PayInfo.mchid; | 
|   | 
|     @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()); | 
|   | 
|         KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); | 
|         keyManagerFactory.init(keyStore, mchid.toCharArray()); | 
|   | 
|         SSLContext context = SSLContext.getInstance("TLS"); | 
|         context.init(keyManagerFactory.getKeyManagers(), null, null); | 
|   | 
|         OkHttpClient okHttpClient = new OkHttpClient.Builder() | 
|                 .sslSocketFactory(context.getSocketFactory(), getDefaultX509TrustManager()) | 
|                 .build(); | 
|   | 
|         return new OkHttp3ClientHttpRequestFactory(okHttpClient); | 
|     } | 
|   | 
|     private static X509TrustManager getDefaultX509TrustManager() throws Exception { | 
|         TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); | 
|         factory.init((KeyStore) null); | 
|         return (X509TrustManager) factory.getTrustManagers()[0]; | 
|     } | 
| } |