Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
1304cf329e
@ -66,5 +66,11 @@ public class AppWxPayController {
|
||||
BizCodeEnum.ADVANCE_PAYMENT_CALLBACK_REFUND_FAILED);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "微信关闭订单", notes = "微信关闭订单")
|
||||
@PostMapping("/closeOrder")
|
||||
@IgnoreToken
|
||||
public ApiResponse<?> closeOrder(@RequestBody String orderId) {
|
||||
wxPayService.closeOrder(orderId);
|
||||
return ApiResponse.buildResult(BizCodeEnum.REQUEST_OK);
|
||||
}
|
||||
}
|
||||
|
@ -76,14 +76,7 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
public WxPayRespVO createOrder(WXPayOrderReqVO req) {
|
||||
try {
|
||||
// 使用自动更新平台证书的RSA配置
|
||||
// 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错
|
||||
Config config =
|
||||
new RSAAutoCertificateConfig.Builder()
|
||||
.merchantId(wechatConfig.getMchId())
|
||||
.privateKeyFromPath(wechatConfig.getKeyPath())
|
||||
.merchantSerialNumber(wechatConfig.getMchSerialNo())
|
||||
.apiV3Key(wechatConfig.getApiV3())
|
||||
.build();
|
||||
Config config = getInstance(wechatConfig);
|
||||
// 构建service
|
||||
JsapiService service = new JsapiService.Builder().config(config).build();
|
||||
|
||||
@ -184,14 +177,7 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
QueryOrderByOutTradeNoRequest queryRequest = new QueryOrderByOutTradeNoRequest();
|
||||
queryRequest.setMchid(wechatConfig.getMchId());
|
||||
queryRequest.setOutTradeNo(orderId.toString());
|
||||
// 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错
|
||||
Config config =
|
||||
new RSAAutoCertificateConfig.Builder()
|
||||
.merchantId(wechatConfig.getMchId())
|
||||
.privateKeyFromPath(wechatConfig.getKeyPath())
|
||||
.merchantSerialNumber(wechatConfig.getMchSerialNo())
|
||||
.apiV3Key(wechatConfig.getApiV3())
|
||||
.build();
|
||||
Config config = getInstance(wechatConfig);
|
||||
// 构建service
|
||||
JsapiService service = new JsapiService.Builder().config(config).build();
|
||||
try {
|
||||
@ -275,6 +261,17 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closeOrder(String orderId) {
|
||||
CloseOrderRequest closeOrderRequest = new CloseOrderRequest();
|
||||
closeOrderRequest.setOutTradeNo(orderId);
|
||||
closeOrderRequest.setMchid(wechatConfig.getMchId());
|
||||
Config config = getInstance(wechatConfig);
|
||||
// 构建service
|
||||
JsapiService service = new JsapiService.Builder().config(config).build();
|
||||
service.closeOrder(closeOrderRequest);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 退款回调 解密数据
|
||||
@ -368,4 +365,31 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
|
||||
return REFUNDS_SCHEMA + token;
|
||||
}
|
||||
|
||||
/**
|
||||
* 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错
|
||||
*/
|
||||
private static class Holder {
|
||||
private static volatile Config instance;
|
||||
|
||||
static void init(WechatConfig wechatConfig) {
|
||||
instance = new RSAAutoCertificateConfig.Builder()
|
||||
.merchantId(wechatConfig.getMchId())
|
||||
.privateKeyFromPath(wechatConfig.getKeyPath())
|
||||
.merchantSerialNumber(wechatConfig.getMchSerialNo())
|
||||
.apiV3Key(wechatConfig.getApiV3())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
public static Config getInstance(WechatConfig wechatConfig) {
|
||||
if (Holder.instance == null) {
|
||||
synchronized (Holder.class) {
|
||||
if (Holder.instance == null) {
|
||||
Holder.init(wechatConfig);
|
||||
}
|
||||
}
|
||||
}
|
||||
return Holder.instance;
|
||||
}
|
||||
}
|
||||
|
@ -38,4 +38,11 @@ public interface WxPayService {
|
||||
* 微信退款回调
|
||||
*/
|
||||
boolean refundNotify(String refundResult) throws IOException, GeneralSecurityException;
|
||||
|
||||
/**
|
||||
* 关闭订单
|
||||
*
|
||||
* @param orderId 订单id(订单编号)
|
||||
*/
|
||||
void closeOrder(String orderId) ;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user