提交修改
This commit is contained in:
parent
5c054bb781
commit
fc9c279a49
@ -0,0 +1,18 @@
|
||||
package com.heyu.api.alibaba.request.mm.order;
|
||||
|
||||
|
||||
import com.heyu.api.alibaba.request.vv.AppBaseRequest;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AppCloseDTO extends AppBaseRequest {
|
||||
|
||||
|
||||
/***
|
||||
* 订单id
|
||||
*/
|
||||
private Long tradeOrderId;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -143,6 +143,7 @@ public class JsapiPrepay {
|
||||
if (!queryString.isEmpty()) {
|
||||
uri = uri + "?" + queryString;
|
||||
}
|
||||
log.info("JsapiPrepay queryOrder uri:{},params:{}",uri,JSON.toJSONString(args));
|
||||
Request.Builder reqBuilder = new Request.Builder().url(HOST + uri);
|
||||
reqBuilder.addHeader("Accept", "application/json");
|
||||
reqBuilder.addHeader("Wechatpay-Serial", wechatPayPublicKeyId);
|
||||
@ -153,7 +154,7 @@ public class JsapiPrepay {
|
||||
OkHttpClient client = new OkHttpClient.Builder().build();
|
||||
try (Response httpResponse = client.newCall(httpRequest).execute()) {
|
||||
String respBody = WXPayUtility.extractBody(httpResponse);
|
||||
log.info("JsapiPrepay queryOrder respBody = " + respBody);
|
||||
log.info("JsapiPrepay queryOrder respBody = " + respBody);
|
||||
if (httpResponse.code() >= 200 && httpResponse.code() < 300) {
|
||||
// 2XX 成功,验证应答签名
|
||||
WXPayUtility.validateResponse(this.wechatPayPublicKeyId, this.wechatPayPublicKey,
|
||||
@ -173,16 +174,17 @@ public class JsapiPrepay {
|
||||
* 关闭订单
|
||||
* https://pay.weixin.qq.com/doc/v3/merchant/4012791901
|
||||
*/
|
||||
public void close(String tradeOrderId) {
|
||||
public void close(Long tradeOrderId) {
|
||||
String HOST = "https://api.mch.weixin.qq.com";
|
||||
String METHOD = "POST";
|
||||
String PATH = "/v3/pay/transactions/out-trade-no/{out_trade_no}/close";
|
||||
CloseOrderRequest request = new CloseOrderRequest();
|
||||
request.setOutTradeNo(tradeOrderId);
|
||||
request.setOutTradeNo(tradeOrderId + "");
|
||||
request.setMchid(mchid);
|
||||
String uri = PATH;
|
||||
uri = uri.replace("{out_trade_no}", WXPayUtility.urlEncode(request.outTradeNo));
|
||||
String reqBody = WXPayUtility.toJson(request);
|
||||
log.info("JsapiPrepay close reqBody = " + reqBody);
|
||||
Request.Builder reqBuilder = new Request.Builder().url(HOST + uri);
|
||||
reqBuilder.addHeader("Accept", "application/json");
|
||||
reqBuilder.addHeader("Wechatpay-Serial", wechatPayPublicKeyId);
|
||||
@ -196,6 +198,7 @@ public class JsapiPrepay {
|
||||
OkHttpClient client = new OkHttpClient.Builder().build();
|
||||
try (Response httpResponse = client.newCall(httpRequest).execute()) {
|
||||
String respBody = WXPayUtility.extractBody(httpResponse);
|
||||
log.info("JsapiPrepay close respBody = " + respBody);
|
||||
if (httpResponse.code() >= 200 && httpResponse.code() < 300) {
|
||||
// 2XX 成功,验证应答签名
|
||||
WXPayUtility.validateResponse(this.wechatPayPublicKeyId, this.wechatPayPublicKey,
|
||||
@ -229,7 +232,6 @@ public class JsapiPrepay {
|
||||
* UNSETTLED: 仅对出行预付押金退款适用,指定从未结算资金出资。
|
||||
*/
|
||||
request.fundsAccount = ReqFundsAccount.AVAILABLE; // 【退款资金来源】 若传递此参数则使用对应的资金账户退款。
|
||||
|
||||
// 【金额信息】订单退款金额信息
|
||||
request.amount = new AmountReq();
|
||||
|
||||
@ -243,7 +245,7 @@ public class JsapiPrepay {
|
||||
String HOST = "https://api.mch.weixin.qq.com";
|
||||
String METHOD = "POST";
|
||||
String uri = "/v3/refund/domestic/refunds";
|
||||
log.info("RefundServiceImpl refund params :{}", JSON.toJSONString(request));
|
||||
log.info("JsapiPrepay refund params :{}", JSON.toJSONString(request));
|
||||
String reqBody = WXPayUtility.toJson(request);
|
||||
Request.Builder reqBuilder = new Request.Builder().url(HOST + uri);
|
||||
reqBuilder.addHeader("Accept", "application/json");
|
||||
@ -257,7 +259,7 @@ public class JsapiPrepay {
|
||||
OkHttpClient client = new OkHttpClient.Builder().build();
|
||||
try (Response httpResponse = client.newCall(httpRequest).execute()) {
|
||||
String respBody = WXPayUtility.extractBody(httpResponse);
|
||||
log.info("order refund respBody:{}", respBody);
|
||||
log.info("JsapiPrepay order refund respBody:{}", respBody);
|
||||
if (httpResponse.code() >= 200 && httpResponse.code() < 300) {
|
||||
// 2XX 成功,验证应答签名
|
||||
WXPayUtility.validateResponse(this.wechatPayPublicKeyId, this.wechatPayPublicKey,
|
||||
@ -291,6 +293,7 @@ public class JsapiPrepay {
|
||||
request.outRefundNo = reverseOrderId + ""; // 【商户退款单号】 商户申请退款时传入的商户系统内部退款单号。
|
||||
String uri = PATH;
|
||||
uri = uri.replace("{out_refund_no}", WXPayUtility.urlEncode(request.outRefundNo));
|
||||
log.info("JsapiPrepay queryRefund params :{},uri:{}", JSON.toJSONString(request),uri);
|
||||
Request.Builder reqBuilder = new Request.Builder().url(HOST + uri);
|
||||
reqBuilder.addHeader("Accept", "application/json");
|
||||
reqBuilder.addHeader("Wechatpay-Serial", wechatPayPublicKeyId);
|
||||
@ -302,6 +305,7 @@ public class JsapiPrepay {
|
||||
OkHttpClient client = new OkHttpClient.Builder().build();
|
||||
try (Response httpResponse = client.newCall(httpRequest).execute()) {
|
||||
String respBody = WXPayUtility.extractBody(httpResponse);
|
||||
log.info("JsapiPrepay queryRefund respBody:{}", respBody);
|
||||
if (httpResponse.code() >= 200 && httpResponse.code() < 300) {
|
||||
// 2XX 成功,验证应答签名
|
||||
WXPayUtility.validateResponse(this.wechatPayPublicKeyId, this.wechatPayPublicKey,
|
||||
@ -322,6 +326,7 @@ public class JsapiPrepay {
|
||||
String METHOD = "POST";
|
||||
String PATH = "/v3/pay/transactions/jsapi";
|
||||
String uri = PATH;
|
||||
log.info("JsapiPrepay doPay params :{}", JSON.toJSONString(request));
|
||||
String reqBody = WXPayUtility.toJson(request);
|
||||
Request.Builder reqBuilder = new Request.Builder().url(HOST + uri);
|
||||
reqBuilder.addHeader("Accept", "application/json");
|
||||
|
||||
@ -4,6 +4,7 @@ package com.heyu.api.controller.vv;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
|
||||
import com.heyu.api.alibaba.request.mm.order.AppCloseDTO;
|
||||
import com.heyu.api.alibaba.request.mm.order.AppDeliveredDTO;
|
||||
import com.heyu.api.alibaba.request.mm.order.VvTradeOrderLineTrackNumberDTO;
|
||||
import com.heyu.api.alibaba.request.mm.order.resp.*;
|
||||
@ -91,6 +92,9 @@ public class AppOrderController {
|
||||
@Value("${eb.config.weixin.pay.privateKeyFilePath}")
|
||||
private String privateKey;
|
||||
|
||||
@Autowired
|
||||
private JsapiPrepay jsApiPrepay;
|
||||
|
||||
/***
|
||||
* https://api.1024api.com/api-interface/app/order/list
|
||||
*
|
||||
@ -399,7 +403,6 @@ public class AppOrderController {
|
||||
@Describe("删除订单")
|
||||
@RequestMapping("/delete")
|
||||
public R add(@RequestBody VvTradeOrderDeleteDTO vvOrderRequest) {
|
||||
|
||||
if (StringUtils.isNotEmpty(vvOrderRequest.getTrackNumber())) {
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTrackNumberBuyerId(
|
||||
vvOrderRequest.getTrackNumber(),vvOrderRequest.getBuyerId());
|
||||
@ -441,12 +444,39 @@ public class AppOrderController {
|
||||
}
|
||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
||||
tradeOrderLineEntity.setStatus(OrderStatusEnums.delivered.getStatus());
|
||||
tradeOrderLineEntity.setGmtDelivered(new Date());
|
||||
vvTradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* 订单关闭 /app/order/close
|
||||
*/
|
||||
@Describe("订单关闭")
|
||||
@RequestMapping("/close")
|
||||
public R close(@RequestBody AppCloseDTO appCloseDTO) {
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(appCloseDTO.getTradeOrderId());
|
||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
||||
if (!OrderStatusEnums.wait_pay.getStatus().equals(tradeOrderLineEntity.getStatus())) {
|
||||
return R.error("订单状态不是wait_pay不对");
|
||||
}
|
||||
}
|
||||
|
||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
||||
tradeOrderLineEntity.setStatus(OrderStatusEnums.close.getStatus());
|
||||
tradeOrderLineEntity.setGmtClose(new Date());
|
||||
vvTradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity);
|
||||
}
|
||||
|
||||
|
||||
|
||||
jsApiPrepay.close(appCloseDTO.getTradeOrderId() );
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -65,9 +65,7 @@ public class AppReverseController {
|
||||
@Describe("逆向订单创建")
|
||||
@RequestMapping("/add")
|
||||
public R add(@RequestBody AppliyReverseRequest appliyReverseRequest) {
|
||||
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(appliyReverseRequest.getTrackNumber());
|
||||
|
||||
return reverseOrderService.createReverseOrder(vvTradeOrderLineEntityList, appliyReverseRequest);
|
||||
|
||||
}
|
||||
@ -114,21 +112,13 @@ public class AppReverseController {
|
||||
@Describe("逆向订单关闭")
|
||||
@RequestMapping("/close")
|
||||
public R close(@RequestBody AppliyReverseCloseRequest appliyReverseRequest) {
|
||||
|
||||
VvReverseOrderEntity vvReverseOrderEntity = vvReverseOrderDao.selectVvReverseOrderById(appliyReverseRequest.getReverseOrderId());
|
||||
|
||||
vvReverseOrderEntity.setStatus(ReverseStatusEnums.close.getStatus());
|
||||
|
||||
vvReverseOrderEntity.setGmtClose(new Date());
|
||||
|
||||
vvReverseOrderDao.updateVvReverseOrderById(vvReverseOrderEntity);
|
||||
|
||||
List<VvReverseOrderLineEntity> vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(appliyReverseRequest.getReverseOrderId());
|
||||
|
||||
List<Long> tradeOrderLineIds = SanUtils.list2list(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId);
|
||||
|
||||
List<VvTradeOrderLineEntity> tradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIds);
|
||||
|
||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : tradeOrderLineEntities) {
|
||||
|
||||
tradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.close.getStatus());
|
||||
|
||||
@ -106,7 +106,7 @@ public class AppWeiXinRefundNotifyController {
|
||||
String refund_status = reqInfo.get("refund_status");//退款状态
|
||||
String out_trade_no = reqInfo.get("out_trade_no"); //订单号
|
||||
String out_refund_no = reqInfo.get("out_refund_no"); //订单号
|
||||
log.info("AppWeiXinRefundNotifyController refundNotifyUrl out_trade_no:{} refund_status:{} resultStr :{} " ,out_trade_no,refund_status,resultStr);
|
||||
log.info("AppWeiXinRefundNotifyController refundNotifyUrl out_trade_no:{} ,out_refund_no:{} refund_status:{} resultStr :{} " ,out_trade_no,out_refund_no,refund_status,resultStr);
|
||||
Map<String, Object> parm = new HashMap<>();
|
||||
if (!StringUtils.isEmpty(refund_status) && "SUCCESS".equals(refund_status)) {
|
||||
VvReverseOrderEntity vvReverseOrderEntity = reverseOrderDao.selectVvReverseOrderById(NumberUtil.objToLong(out_refund_no));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user