微信订单关闭
This commit is contained in:
parent
d18f370b12
commit
6e343ab42e
@ -66,5 +66,11 @@ public class AppWxPayController {
|
|||||||
BizCodeEnum.ADVANCE_PAYMENT_CALLBACK_REFUND_FAILED);
|
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) {
|
public WxPayRespVO createOrder(WXPayOrderReqVO req) {
|
||||||
try {
|
try {
|
||||||
// 使用自动更新平台证书的RSA配置
|
// 使用自动更新平台证书的RSA配置
|
||||||
// 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错
|
Config config = getInstance(wechatConfig);
|
||||||
Config config =
|
|
||||||
new RSAAutoCertificateConfig.Builder()
|
|
||||||
.merchantId(wechatConfig.getMchId())
|
|
||||||
.privateKeyFromPath(wechatConfig.getKeyPath())
|
|
||||||
.merchantSerialNumber(wechatConfig.getMchSerialNo())
|
|
||||||
.apiV3Key(wechatConfig.getApiV3())
|
|
||||||
.build();
|
|
||||||
// 构建service
|
// 构建service
|
||||||
JsapiService service = new JsapiService.Builder().config(config).build();
|
JsapiService service = new JsapiService.Builder().config(config).build();
|
||||||
|
|
||||||
@ -184,14 +177,7 @@ public class WxPayServiceImpl implements WxPayService {
|
|||||||
QueryOrderByOutTradeNoRequest queryRequest = new QueryOrderByOutTradeNoRequest();
|
QueryOrderByOutTradeNoRequest queryRequest = new QueryOrderByOutTradeNoRequest();
|
||||||
queryRequest.setMchid(wechatConfig.getMchId());
|
queryRequest.setMchid(wechatConfig.getMchId());
|
||||||
queryRequest.setOutTradeNo(orderId.toString());
|
queryRequest.setOutTradeNo(orderId.toString());
|
||||||
// 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错
|
Config config = getInstance(wechatConfig);
|
||||||
Config config =
|
|
||||||
new RSAAutoCertificateConfig.Builder()
|
|
||||||
.merchantId(wechatConfig.getMchId())
|
|
||||||
.privateKeyFromPath(wechatConfig.getKeyPath())
|
|
||||||
.merchantSerialNumber(wechatConfig.getMchSerialNo())
|
|
||||||
.apiV3Key(wechatConfig.getApiV3())
|
|
||||||
.build();
|
|
||||||
// 构建service
|
// 构建service
|
||||||
JsapiService service = new JsapiService.Builder().config(config).build();
|
JsapiService service = new JsapiService.Builder().config(config).build();
|
||||||
try {
|
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;
|
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;
|
boolean refundNotify(String refundResult) throws IOException, GeneralSecurityException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关闭订单
|
||||||
|
*
|
||||||
|
* @param orderId 订单id(订单编号)
|
||||||
|
*/
|
||||||
|
void closeOrder(String orderId) ;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user