我在写一个微信商城的项目,涉及到了微信支付的问题。在开发时期,yaml文件是可以读取到文件路径的。但是打了jar包之后就不行了。今天解决了这个问题,说明一下。
1.在项目中引入依赖
目前微信支付已经出到了0.0.3版本
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>0.0.3</version>
</dependency>
2. 编写一个Config类,实现WXPayConfig接口
@Configuration
public class MyConfig implements WXPayConfig {
private byte[] certData;
public MyConfig() throws Exception{
ClassPathResource classPathResource = new ClassPathResource("apiclient_key.pem");
InputStream inputStream = classPathResource.getInputStream();
this.certData = IOUtils.toByteArray(inputStream);
inputStream.read(this.certData);
inputStream.close();
}
@Override
public String getAppID() {
return "wx11111111"; //你的appid
}
@Override
public String getMchID() {
return "11111111"; //你的商户号id
}
@Override
public String getKey() {
return "5555544sadasdads"; //你的v3密钥key
}
@Override
public InputStream getCertStream() {
ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);
return certBis;
}
@Override
public int getHttpConnectTimeoutMs() {
return 8000;
}
@Override
public int getHttpReadTimeoutMs() {
return 10000;
}
}
再配合我们写的相关程序,打成jar包并且运行时就不会报错了。