mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-08-19 20:47:37 +08:00
update 华为平台生成订单、结算订单方法
This commit is contained in:
@@ -123,6 +123,15 @@ public class TransactionRecordsData {
|
|||||||
|
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 以下为附加字段,不是交易记录报文中原有字段
|
||||||
|
*/
|
||||||
|
// 总电费
|
||||||
|
private String totalElectricityAmount;
|
||||||
|
|
||||||
|
// 总服务费
|
||||||
|
private String totalServiceAmount;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
|
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
|
||||||
|
|||||||
@@ -69,4 +69,10 @@ public class QueryStartChargeDTO {
|
|||||||
* 司机在合作公司的唯一标识(手机号),方便维护订单信息
|
* 司机在合作公司的唯一标识(手机号),方便维护订单信息
|
||||||
*/
|
*/
|
||||||
private String driverId;
|
private String driverId;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付方式(1-余额支付;3-白名单支付;4-微信支付;5-支付宝支付)
|
||||||
|
*/
|
||||||
|
private String payMode;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,4 +64,9 @@ public class HWQueryStartChargeDTO {
|
|||||||
|
|
||||||
|
|
||||||
private String operatorId;
|
private String operatorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付方式(1-余额支付;3-白名单支付;4-微信支付;5-支付宝支付)
|
||||||
|
*/
|
||||||
|
private String payMode;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2564,13 +2564,16 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
.payStatus(Constants.ONE)
|
.payStatus(Constants.ONE)
|
||||||
.payAmount(dto.getAccountBalance()) // 支付金额
|
.payAmount(dto.getAccountBalance()) // 支付金额
|
||||||
.payTime(new Date())
|
.payTime(new Date())
|
||||||
// .payMode(PayModeEnum.PAYMENT_OF_BALANCE.getValue()) // 支付方式
|
// .payMode() // 支付方式
|
||||||
.orderAmount(BigDecimal.ZERO)
|
.orderAmount(BigDecimal.ZERO)
|
||||||
.build();
|
.build();
|
||||||
if (StringUtils.isNotBlank(dto.getPlateNum())) {
|
if (StringUtils.isNotBlank(dto.getPlateNum())) {
|
||||||
// 车牌号
|
// 车牌号
|
||||||
orderBasicInfo.setPlateNumber(dto.getPlateNum());
|
orderBasicInfo.setPlateNumber(dto.getPlateNum());
|
||||||
}
|
}
|
||||||
|
if (StringUtils.isNotBlank(dto.getPayMode())) {
|
||||||
|
orderBasicInfo.setPayMode(dto.getPayMode());
|
||||||
|
}
|
||||||
// 根据桩编码查询当前计费模板
|
// 根据桩编码查询当前计费模板
|
||||||
BillingTemplateVO billingTemplateVO = pileBillingTemplateService.selectBillingTemplateDetailByPileSn(pileSn);
|
BillingTemplateVO billingTemplateVO = pileBillingTemplateService.selectBillingTemplateDetailByPileSn(pileSn);
|
||||||
// 订单详情
|
// 订单详情
|
||||||
|
|||||||
@@ -144,6 +144,13 @@ public abstract class AbstractProgramLogic implements InitializingBean {
|
|||||||
*/
|
*/
|
||||||
public abstract void settleOrder(TransactionRecordsData data, OrderBasicInfo orderBasicInfo);
|
public abstract void settleOrder(TransactionRecordsData data, OrderBasicInfo orderBasicInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 第三方平台结算订单(目前给华为用)
|
||||||
|
* @param data
|
||||||
|
* @param orderBasicInfo
|
||||||
|
*/
|
||||||
|
public abstract void settleOrderForThirdParty(TransactionRecordsData data, OrderBasicInfo orderBasicInfo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单退款
|
* 订单退款
|
||||||
*/
|
*/
|
||||||
@@ -546,6 +553,30 @@ public abstract class AbstractProgramLogic implements InitializingBean {
|
|||||||
return orderDetail;
|
return orderDetail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取更新数据后的orderDetail对象(给第三方平台结算订单用)
|
||||||
|
* @param orderBasicInfo
|
||||||
|
* @param data
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
protected OrderDetail returnUpdateOrderDetailForThirdParty(OrderBasicInfo orderBasicInfo, TransactionRecordsData data){
|
||||||
|
String orderCode = orderBasicInfo.getOrderCode();
|
||||||
|
BigDecimal orderAmount = orderBasicInfo.getOrderAmount();
|
||||||
|
// 更新订单详情 查询订单详情 修改订单数据
|
||||||
|
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
|
||||||
|
// 总用电量
|
||||||
|
orderDetail.setTotalUsedElectricity(new BigDecimal(data.getTotalElectricity()));
|
||||||
|
// 总电费
|
||||||
|
orderDetail.setTotalElectricityAmount(new BigDecimal(data.getTotalElectricityAmount()));
|
||||||
|
// 总服务费
|
||||||
|
orderDetail.setTotalServiceAmount(new BigDecimal(data.getTotalServiceAmount()));
|
||||||
|
// 总订单金额
|
||||||
|
orderDetail.setTotalOrderAmount(orderAmount);
|
||||||
|
|
||||||
|
return orderDetail;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 余额支付 计算需要退回的金额
|
* 余额支付 计算需要退回的金额
|
||||||
* 【公共方法】
|
* 【公共方法】
|
||||||
|
|||||||
@@ -406,6 +406,45 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
|
|||||||
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(dto));
|
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(dto));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 第三方平台结算订单(目前给华为用)
|
||||||
|
* @param data
|
||||||
|
* @param orderBasicInfo
|
||||||
|
*/
|
||||||
|
public void settleOrderForThirdParty(TransactionRecordsData data, OrderBasicInfo orderBasicInfo) {
|
||||||
|
logger.info("第三方平台结算订单start data:{}, orderBasicInfo:{}", data.toString(), JSON.toJSONString(orderBasicInfo));
|
||||||
|
// 判断订单状态
|
||||||
|
if (StringUtils.equals(orderBasicInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) {
|
||||||
|
logger.info("结算订单:{}, 是订单完成状态", orderBasicInfo.getOrderCode());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 获取更新数据后的orderBasicInfo对象
|
||||||
|
returnUpdateOrderBasicInfo(orderBasicInfo, data);
|
||||||
|
|
||||||
|
// 获取更新数据后的orderDetail对象/更新订单详情 查询订单详情 修改订单数据
|
||||||
|
OrderDetail orderDetail = returnUpdateOrderDetailForThirdParty(orderBasicInfo, data);
|
||||||
|
|
||||||
|
// 计算订单折扣
|
||||||
|
// calculateOrderDiscountsV2(orderBasicInfo, orderDetail);
|
||||||
|
|
||||||
|
// 更新数据库
|
||||||
|
OrderTransactionDTO dto = new OrderTransactionDTO();
|
||||||
|
dto.setOrderBasicInfo(orderBasicInfo);
|
||||||
|
dto.setOrderDetail(orderDetail);
|
||||||
|
transactionService.doUpdateOrder(dto);
|
||||||
|
|
||||||
|
// 订单退款
|
||||||
|
refundOrder(orderBasicInfo);
|
||||||
|
|
||||||
|
// 发送停止充电订阅消息
|
||||||
|
sendMsg(orderBasicInfo);
|
||||||
|
|
||||||
|
// 从redis中取出实时记录保存到表中
|
||||||
|
realTimeMonitorDataRedis2DB(orderBasicInfo.getTransactionCode(), orderBasicInfo.getOrderCode());
|
||||||
|
|
||||||
|
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(dto));
|
||||||
|
}
|
||||||
|
|
||||||
// uniApp 发送停止充电订阅消息
|
// uniApp 发送停止充电订阅消息
|
||||||
private void sendMsg(OrderBasicInfo orderBasicInfo) {
|
private void sendMsg(OrderBasicInfo orderBasicInfo) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -413,6 +413,46 @@ public class NotDelayMerchantProgramLogic extends AbstractProgramLogic {
|
|||||||
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(dto));
|
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(dto));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 第三方平台结算订单(目前给华为用)
|
||||||
|
* @param data
|
||||||
|
* @param orderBasicInfo
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void settleOrderForThirdParty(TransactionRecordsData data, OrderBasicInfo orderBasicInfo) {
|
||||||
|
logger.info("第三方平台结算订单start data:{}, orderBasicInfo:{}", data.toString(), JSON.toJSONString(orderBasicInfo));
|
||||||
|
// 判断订单状态
|
||||||
|
if (StringUtils.equals(orderBasicInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) {
|
||||||
|
logger.info("结算订单:{}, 是订单完成状态", orderBasicInfo.getOrderCode());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 获取更新数据后的orderBasicInfo对象
|
||||||
|
returnUpdateOrderBasicInfo(orderBasicInfo, data);
|
||||||
|
|
||||||
|
// 获取更新数据后的orderDetail对象/更新订单详情 查询订单详情 修改订单数据
|
||||||
|
OrderDetail orderDetail = returnUpdateOrderDetailForThirdParty(orderBasicInfo, data);
|
||||||
|
|
||||||
|
// 计算订单折扣
|
||||||
|
// calculateOrderDiscountsV2(orderBasicInfo, orderDetail);
|
||||||
|
|
||||||
|
// 更新数据库
|
||||||
|
OrderTransactionDTO dto = new OrderTransactionDTO();
|
||||||
|
dto.setOrderBasicInfo(orderBasicInfo);
|
||||||
|
dto.setOrderDetail(orderDetail);
|
||||||
|
transactionService.doUpdateOrder(dto);
|
||||||
|
|
||||||
|
// 订单退款
|
||||||
|
refundOrder(orderBasicInfo);
|
||||||
|
|
||||||
|
// 发送停止充电订阅消息
|
||||||
|
sendMsg(orderBasicInfo);
|
||||||
|
|
||||||
|
// 从redis中取出实时记录保存到表中
|
||||||
|
realTimeMonitorDataRedis2DB(orderBasicInfo.getTransactionCode(), orderBasicInfo.getOrderCode());
|
||||||
|
|
||||||
|
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(dto));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void refundOrder(OrderBasicInfo orderBasicInfo) {
|
public void refundOrder(OrderBasicInfo orderBasicInfo) {
|
||||||
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
||||||
|
|||||||
@@ -507,7 +507,7 @@ public class CommonService {
|
|||||||
* @param pileConnectorCode
|
* @param pileConnectorCode
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public String commonQueryStartCharge(String thirdPartyType, List<String> stationIds, String pileConnectorCode, BigDecimal chargeAmount) {
|
public String commonQueryStartCharge(String thirdPartyType, List<String> stationIds, String pileConnectorCode, BigDecimal chargeAmount, String payMode) {
|
||||||
// 判断平台类型
|
// 判断平台类型
|
||||||
if (StringUtils.equals(ThirdPlatformTypeEnum.HUA_WEI.getCode(), thirdPartyType)) {
|
if (StringUtils.equals(ThirdPlatformTypeEnum.HUA_WEI.getCode(), thirdPartyType)) {
|
||||||
// 华为平台
|
// 华为平台
|
||||||
@@ -528,6 +528,7 @@ public class CommonService {
|
|||||||
HWQueryStartChargeDTO dto = new HWQueryStartChargeDTO();
|
HWQueryStartChargeDTO dto = new HWQueryStartChargeDTO();
|
||||||
dto.setConnectorID(pileConnectorCode);
|
dto.setConnectorID(pileConnectorCode);
|
||||||
dto.setMoneyLimit(chargeAmount);
|
dto.setMoneyLimit(chargeAmount);
|
||||||
|
dto.setPayMode(payMode);
|
||||||
QueryStartChargeVO startChargeVO = huaweiServiceV2.queryStartCharge(dto);
|
QueryStartChargeVO startChargeVO = huaweiServiceV2.queryStartCharge(dto);
|
||||||
if (startChargeVO.getSuccStat() != Constants.zero) {
|
if (startChargeVO.getSuccStat() != Constants.zero) {
|
||||||
log.error(thirdPartyType + "请求启动充电 error, {}", startChargeVO.getFailReason());
|
log.error(thirdPartyType + "请求启动充电 error, {}", startChargeVO.getFailReason());
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.alibaba.fastjson2.JSONObject;
|
|||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||||
|
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
|
||||||
import com.jsowell.common.core.redis.RedisCache;
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
import com.jsowell.common.enums.thirdparty.ThirdPartyOperatorIdEnum;
|
import com.jsowell.common.enums.thirdparty.ThirdPartyOperatorIdEnum;
|
||||||
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
|
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
|
||||||
@@ -27,6 +28,8 @@ import com.jsowell.pile.dto.GenerateOrderDTO;
|
|||||||
import com.jsowell.pile.dto.QueryStartChargeDTO;
|
import com.jsowell.pile.dto.QueryStartChargeDTO;
|
||||||
import com.jsowell.pile.dto.huawei.*;
|
import com.jsowell.pile.dto.huawei.*;
|
||||||
import com.jsowell.pile.service.*;
|
import com.jsowell.pile.service.*;
|
||||||
|
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
|
||||||
|
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
|
||||||
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
|
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
|
||||||
import com.jsowell.pile.transaction.service.TransactionService;
|
import com.jsowell.pile.transaction.service.TransactionService;
|
||||||
import com.jsowell.pile.vo.huawei.QueryChargeStatusVO;
|
import com.jsowell.pile.vo.huawei.QueryChargeStatusVO;
|
||||||
@@ -87,6 +90,9 @@ public class HuaweiServiceV2 {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private PileBillingTemplateService pileBillingTemplateService;
|
private PileBillingTemplateService pileBillingTemplateService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PileMerchantInfoService pileMerchantInfoService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private OrderBasicInfoService orderBasicInfoService;
|
private OrderBasicInfoService orderBasicInfoService;
|
||||||
|
|
||||||
@@ -493,13 +499,14 @@ public class HuaweiServiceV2 {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求启动充电
|
* 请求启动充电
|
||||||
* 只需传枪口号、充电金额即可
|
* 只需传枪口号、充电金额、支付方式即可
|
||||||
* @param dto
|
* @param dto
|
||||||
* @return QueryStartChargeVO
|
* @return QueryStartChargeVO
|
||||||
*/
|
*/
|
||||||
public QueryStartChargeVO queryStartCharge(HWQueryStartChargeDTO dto) {
|
public QueryStartChargeVO queryStartCharge(HWQueryStartChargeDTO dto) {
|
||||||
String pileConnectorCode = dto.getConnectorID();
|
String pileConnectorCode = dto.getConnectorID();
|
||||||
BigDecimal chargeAmount = dto.getMoneyLimit();
|
BigDecimal chargeAmount = dto.getMoneyLimit();
|
||||||
|
String payMode = dto.getPayMode();
|
||||||
|
|
||||||
String requestName = "query_start_charge";
|
String requestName = "query_start_charge";
|
||||||
|
|
||||||
@@ -511,6 +518,7 @@ public class HuaweiServiceV2 {
|
|||||||
startChargeDTO.setStartChargeSeq(startChargeSeq);
|
startChargeDTO.setStartChargeSeq(startChargeSeq);
|
||||||
startChargeDTO.setConnectorID(pileConnectorCode);
|
startChargeDTO.setConnectorID(pileConnectorCode);
|
||||||
startChargeDTO.setAccountBalance(chargeAmount);
|
startChargeDTO.setAccountBalance(chargeAmount);
|
||||||
|
startChargeDTO.setPayMode(dto.getPayMode());
|
||||||
Map<String, Object> map = orderBasicInfoService.generateOrderForThirdParty(startChargeDTO);
|
Map<String, Object> map = orderBasicInfoService.generateOrderForThirdParty(startChargeDTO);
|
||||||
|
|
||||||
if (map == null) {
|
if (map == null) {
|
||||||
@@ -741,17 +749,30 @@ public class HuaweiServiceV2 {
|
|||||||
|
|
||||||
// 查出订单基本信息和详情
|
// 查出订单基本信息和详情
|
||||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(startChargeSeq);
|
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(startChargeSeq);
|
||||||
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(startChargeSeq);
|
// OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(startChargeSeq);
|
||||||
|
|
||||||
orderBasicInfo.setChargeStartTime(DateUtils.parseDate(dto.getStartTime()));
|
// TODO 结算订单
|
||||||
orderBasicInfo.setChargeEndTime(DateUtils.parseDate(dto.getEndTime()));
|
TransactionRecordsData data = TransactionRecordsData.builder()
|
||||||
orderBasicInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue()); // 订单状态改为订单完成
|
.consumptionAmount(String.valueOf(dto.getTotalMoney())) // 订单总金额
|
||||||
orderBasicInfo.setReason(String.valueOf(dto.getStopReason())); // TODO 新建停止原因枚举
|
.stopReasonMsg(String.valueOf(dto.getStopReason())) // 停止原因
|
||||||
|
.totalElectricity(String.valueOf(dto.getTotalPower())) // 总用电量
|
||||||
|
.totalElectricityAmount(String.valueOf(dto.getTotalElecMoney())) // 总电费
|
||||||
|
.totalServiceAmount(String.valueOf(dto.getTotalSeviceMoney())) // 总服务费
|
||||||
|
.build();
|
||||||
|
String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId());
|
||||||
|
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
|
||||||
|
orderLogic.settleOrderForThirdParty(data, orderBasicInfo);
|
||||||
|
|
||||||
orderDetail.setTotalUsedElectricity(dto.getTotalPower());
|
|
||||||
orderDetail.setTotalElectricityAmount(dto.getTotalElecMoney());
|
// orderBasicInfo.setChargeStartTime(DateUtils.parseDate(dto.getStartTime()));
|
||||||
orderDetail.setTotalServiceAmount(dto.getTotalSeviceMoney());
|
// orderBasicInfo.setChargeEndTime(DateUtils.parseDate(dto.getEndTime()));
|
||||||
orderDetail.setTotalOrderAmount(dto.getTotalMoney());
|
// orderBasicInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue()); // 订单状态改为订单完成
|
||||||
|
// orderBasicInfo.setReason(String.valueOf(dto.getStopReason())); // TODO 新建停止原因枚举
|
||||||
|
//
|
||||||
|
// orderDetail.setTotalUsedElectricity(dto.getTotalPower());
|
||||||
|
// orderDetail.setTotalElectricityAmount(dto.getTotalElecMoney());
|
||||||
|
// orderDetail.setTotalServiceAmount(dto.getTotalSeviceMoney());
|
||||||
|
// orderDetail.setTotalOrderAmount(dto.getTotalMoney());
|
||||||
|
|
||||||
// if (CollectionUtils.isNotEmpty(chargeDetails)) {
|
// if (CollectionUtils.isNotEmpty(chargeDetails)) {
|
||||||
// for (BillingPriceVO billingPriceVO : billingPriceVOList) {
|
// for (BillingPriceVO billingPriceVO : billingPriceVOList) {
|
||||||
@@ -765,13 +786,12 @@ public class HuaweiServiceV2 {
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// 通过事务修改订单信息
|
// 通过事务修改订单信息
|
||||||
OrderTransactionDTO transactionDTO = OrderTransactionDTO.builder()
|
// OrderTransactionDTO transactionDTO = OrderTransactionDTO.builder()
|
||||||
.orderBasicInfo(orderBasicInfo)
|
// .orderBasicInfo(orderBasicInfo)
|
||||||
.orderDetail(orderDetail)
|
// .orderDetail(orderDetail)
|
||||||
.build();
|
// .build();
|
||||||
transactionService.doUpdateOrder(transactionDTO);
|
// transactionService.doUpdateOrder(transactionDTO);
|
||||||
|
|
||||||
// TODO 订单退款
|
|
||||||
|
|
||||||
// 构建返回参数
|
// 构建返回参数
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
|||||||
Reference in New Issue
Block a user