一.准备工作
APP绑定微信商户平台获取商户id(mchID)、证书(商户后台下载)、支付签名密钥(商户后台设置api密钥)、退款签名密钥(商户后台设置api密钥ipv3)等
1.导入微信支付SDK
<!--微信支付SDK-->
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>0.0.3</version>
</dependency>
2.配置微信参数类
@Component
@ConfigurationProperties
@PropertySource("classpath:config/wxconfig.properties") --需自己创建相应的配置文件
@Data
public class WxConfig implements WXPayConfig {
/**
* appid
*/
public String appID;
/**
* 商户id
*/
public String mchID;
/**
* 密钥
*/
public String key;
/**
* 退款密钥
*/
public String refundKey;
/**
* 连接超时时间
*/
public int httpConnectTimeoutMs;
/**
* 读取超时时间
*/
public int httpReadTimeoutMs;
/**
* 证书
*/
public InputStream certStream;
/**
* 证书路径
*/
public String certPath;
/**
* 微信异步通知地址
*/
public String wxNotifyUrl;
public InputStream getCertStream() {
byte [] certData=null;
InputStream certStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(this.getCertPath());
try {
certData = IOUtils.toByteArray(certStream);
certStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return new ByteArrayInputStream(certData);
}
}
二.统一下单
需注入第一步种的配置类
/*微信统一下单接口*/
public Map<String, String> wxPayOrder(HashMap param) throws Exception{
Double price = Double.valueOf(param.get("price").toStri