停止充电增加订单号

This commit is contained in:
yuyang 2021-09-28 14:26:43 +08:00
parent e16a5a3f99
commit 05bd28159e
3 changed files with 50 additions and 19 deletions

View File

@ -190,6 +190,8 @@ public class XhpcChargeOrderServiceImpl implements IXhpcChargeOrderService {
if(number !=0){ if(number !=0){
startChargingData.setSoc(number); startChargingData.setSoc(number);
} }
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<number>>>>>>>>>>>>>>>>>:"+number);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<Soc>>>>>>>>>>>>>>>>>:"+startChargingData.getSoc());
R r1 = powerPileService.startCharging(startChargingData); R r1 = powerPileService.startCharging(startChargingData);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<充电返回>>>>>>>>>>>>>>>>>"); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<充电返回>>>>>>>>>>>>>>>>>");
@ -247,8 +249,11 @@ public class XhpcChargeOrderServiceImpl implements IXhpcChargeOrderService {
if(xhpcChargingPileById.get("communicationProtocolVersion")!=null && !"".equals(xhpcChargingPileById.get("communicationProtocolVersion").toString())){ if(xhpcChargingPileById.get("communicationProtocolVersion")!=null && !"".equals(xhpcChargingPileById.get("communicationProtocolVersion").toString())){
version=xhpcChargingPileById.get("communicationProtocolVersion").toString(); version=xhpcChargingPileById.get("communicationProtocolVersion").toString();
} }
//获取充电订单号
XhpcChargeOrder order = xhpcChargeOrderMapper.getChargingOrderId(chargingOrderId);
R oa = powerPileService.stopCharging(xhpcTerminal.getPileSerialNumber(), xhpcTerminal.getSerialNumber().substring(14), version);
R oa = powerPileService.stopCharging(order.getSerialNumber(),xhpcTerminal.getPileSerialNumber(), xhpcTerminal.getSerialNumber().substring(14), version);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<停止充电返回>>>>>>>>>>>>>>>>>"); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<停止充电返回>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<"+oa.getCode()+">>>>>>>>>>>>>>>>>"); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<"+oa.getCode()+">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<"+oa.getMsg()+">>>>>>>>>>>>>>>>>"); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<"+oa.getMsg()+">>>>>>>>>>>>>>>>>");

View File

@ -1,36 +1,35 @@
package com.xhpc.payment.controller; package com.xhpc.payment.controller;
import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient; import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient; import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import com.alipay.api.internal.util.AlipaySignature; import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.request.AlipayTradeCreateRequest; import com.alipay.api.request.AlipayTradeCreateRequest;
import com.alipay.api.response.AlipayTradeAppPayResponse;
import com.alipay.api.response.AlipayTradeCreateResponse; import com.alipay.api.response.AlipayTradeCreateResponse;
import com.xhpc.common.core.constant.HttpStatus; import com.xhpc.common.core.constant.HttpStatus;
import com.xhpc.common.core.constant.StatusConstants; import com.xhpc.common.core.constant.StatusConstants;
import com.xhpc.common.core.utils.StringUtils; import com.xhpc.common.core.utils.StringUtils;
import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.domain.AjaxResult;
import com.xhpc.payment.domain.XhpcRechargeOrder; import com.xhpc.payment.domain.XhpcRechargeOrder;
import com.xhpc.payment.mapper.XhpcUserAccountStatementMapper;
import com.xhpc.payment.service.IXhpcRechargeOrderService; import com.xhpc.payment.service.IXhpcRechargeOrderService;
import com.xhpc.payment.service.IXhpcRefundOrderService; import com.xhpc.payment.service.IXhpcRefundOrderService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set;
@RestController @RestController
@ -44,7 +43,7 @@ public class AlipayPaymentController {
private IXhpcRechargeOrderService iXhpcRechargeOrderService; private IXhpcRechargeOrderService iXhpcRechargeOrderService;
//@Autowired //@Autowired
//private XhpcUserAccountStatementMapper xhpcUserAccountStatementMapper; //private XhpcUserAccountStatementMapper xhpcUserAccountStatementMapper;
private static final Logger logger = LoggerFactory.getLogger(AlipayPaymentController.class);
@Autowired @Autowired
private IXhpcRefundOrderService iXhpcRefundOrderService; private IXhpcRefundOrderService iXhpcRefundOrderService;
@ -60,9 +59,9 @@ public class AlipayPaymentController {
if (StringUtils.isEmpty(amount)) { if (StringUtils.isEmpty(amount)) {
return AjaxResult.error(HttpStatus.NOT_NULL, "充值金额不能为空"); return AjaxResult.error(HttpStatus.NOT_NULL, "充值金额不能为空");
}else{ }else{
if(new BigDecimal(5).compareTo(new BigDecimal(amount))==1){ // if(new BigDecimal(5).compareTo(new BigDecimal(amount))==1){
return AjaxResult.error(HttpStatus.NOT_NULL, "充值金额不能少于5元"); // return AjaxResult.error(HttpStatus.NOT_NULL, "充值金额不能少于5元");
} // }
} }
//用户信息id //用户信息id
String userId = StringUtils.valueOf(map.get("userId")); String userId = StringUtils.valueOf(map.get("userId"));
@ -78,18 +77,17 @@ public class AlipayPaymentController {
//生成充值订单 //生成充值订单
XhpcRechargeOrder xhpcRechargeOrder = iXhpcRechargeOrderService.addRechargeOrder(userId, BigDecimal.valueOf(Double.parseDouble(amount)), "2", orderNumber); XhpcRechargeOrder xhpcRechargeOrder = iXhpcRechargeOrderService.addRechargeOrder(userId, BigDecimal.valueOf(Double.parseDouble(amount)), "2", orderNumber);
String attach = attachYu(StringUtils.valueOf(xhpcRechargeOrder.getRechargeOrderId()), StringUtils.valueOf(amount), null, orderNumber); String attach = attachYu(StringUtils.valueOf(xhpcRechargeOrder.getRechargeOrderId()), StringUtils.valueOf(amount), null, orderNumber);
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", environment.getProperty("ALIPAYAPPID"), environment.getProperty("ALIPAYPRIVATEKEY"), "json", "utf-8", environment.getProperty("ALIPAYPUBLICKEY"), "RSA2"); AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", environment.getProperty("ALIPAYAPPID"), environment.getProperty("ALIPAYPRIVATEKEY"), "json", "utf-8", environment.getProperty("ALIPAYPUBLICKEY"), "RSA2");
AlipayTradeCreateRequest request = new AlipayTradeCreateRequest(); AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
String encode = URLEncoder.encode(attach);
request.setBizContent("{" + System.out.println("encode :"+encode);
"\"out_trade_no\":\""+orderNumber+"\"," + request.setBizContent("{" + "\"out_trade_no\":\""+orderNumber+"\"," +
"\"total_amount\":"+amount+"," + "\"total_amount\":"+amount+"," +
"\"subject\":\"小华充电\"," + "\"subject\":\"小华充电\"," +
"\"timeout_express\":\"30m\"," + "\"timeout_express\":\"30m\"," +
"\"passback_params\":\""+encode+"\"," +
"\"buyer_id\":\""+openid+"\"" + "\"buyer_id\":\""+openid+"\"" +
"}"); "}");
//"\"passback_params\":\""+attach+"\"," +
request.setNotifyUrl(environment.getProperty("ALIPAYPSERVERDOMAIN")); request.setNotifyUrl(environment.getProperty("ALIPAYPSERVERDOMAIN"));
try { try {
//这里和普通的接口调用不同使用的是sdkExecute //这里和普通的接口调用不同使用的是sdkExecute
@ -132,12 +130,15 @@ public class AlipayPaymentController {
valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
params.put(name, valueStr); params.put(name, valueStr);
} }
logger.info("支付宝回调接口1111>>>>>"+params.toString());
//调用SDK验证签名 //调用SDK验证签名
boolean signVerified = AlipaySignature.rsaCheckV1(params, environment.getProperty("ALIPAYPUBLICKEY"), "utf-8", "RSA2"); boolean signVerified = AlipaySignature.rsaCheckV1(params, environment.getProperty("ALIPAYPUBLICKEY"), "utf-8", "RSA2");
//boolean类型signVerified为true时 则验证成功 //boolean类型signVerified为true时 则验证成功
if (signVerified) { if (signVerified) {
//获取到支付的状态 TRADE_SUCCESS则支付成功 //获取到支付的状态 TRADE_SUCCESS则支付成功
String trade_status = request.getParameter("trade_status"); String trade_status = request.getParameter("trade_status");
Map<String, String> yu = convertRequestParamsToMap(request);
logger.info("支付宝回调接口>>>>>"+yu.toString());
if (trade_status.equals("TRADE_SUCCESS")) { if (trade_status.equals("TRADE_SUCCESS")) {
System.out.println("支付成功"); System.out.println("支付成功");
} else { } else {
@ -146,6 +147,7 @@ public class AlipayPaymentController {
} }
//签名验证失败 //签名验证失败
else { else {
logger.info("签名验证失败>>>>>"+params.toString());
System.out.println(AlipaySignature.getSignCheckContentV1(params)); System.out.println(AlipaySignature.getSignCheckContentV1(params));
} }
} }
@ -161,4 +163,28 @@ public class AlipayPaymentController {
String attach = attachSB.substring(1); String attach = attachSB.substring(1);
return attach; return attach;
} }
// 将request中的参数转换成Map
private Map<String, String> convertRequestParamsToMap(HttpServletRequest request) {
Map<String, String> retMap = new HashMap<String, String>();
Set<Map.Entry<String, String[]>> entrySet = request.getParameterMap().entrySet();
for (Map.Entry<String, String[]> entry : entrySet) {
String name = entry.getKey();
String[] values = entry.getValue();
int valLen = values.length;
if (valLen == 1) {
retMap.put(name, values[0]);
} else if (valLen > 1) {
StringBuilder sb = new StringBuilder();
for (String val : values) {
sb.append(",").append(val);
}
retMap.put(name, sb.toString().substring(1));
} else {
retMap.put(name, "");
}
}
return retMap;
}
} }

View File

@ -43,7 +43,7 @@ SERVERDOMAIN: "http://xhpc.scxhua.com/prod-api/xhpc-payment/wx/paymentCallback"
WXTRANSFERS: "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers" WXTRANSFERS: "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers"
#支付宝支付回调地址 #支付宝支付回调地址
ALIPAYPSERVERDOMAIN: "https://xhpc.scxhua.com/prod-api/alipay/notifyUrl" ALIPAYPSERVERDOMAIN: "https://xhpc.scxhua.com/prod-api/xhpc-payment/alipay/notifyUrl"
#支付宝公钥 #支付宝公钥
ALIPAYPUBLICKEY: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjHDksTgZTpf0wh7oeTVRp0h3SqzTM2smjEJnx9jF1+q3WSXLRB4OzSzq7VsJ/szcyK10ZGO5PxeQ4u9GAG/U+7xhs7ei1cJB/Er55Sg9SbjfkTpwlDv181UJCRJJ/IAcqyqezwTpB8e2trYmHKovUdt0KR9/tVkGa7hsNd5GfxTOUaAFc3zADqRVM+wGimtG0NYfOF2f8tkmBEAiMMLKq5pbAnHU723a1cm/nfVp7gvXfsnO0k2GvRuHzb8mxIhWLiAnwdK9gEu5za/jWxo/xIvf2sdJPYdWj+yfyzA2e1fJkx4uRUzX31CXxZvP2/tfEcnTdI0gxN+OH2eAMiPVswIDAQAB" ALIPAYPUBLICKEY: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjHDksTgZTpf0wh7oeTVRp0h3SqzTM2smjEJnx9jF1+q3WSXLRB4OzSzq7VsJ/szcyK10ZGO5PxeQ4u9GAG/U+7xhs7ei1cJB/Er55Sg9SbjfkTpwlDv181UJCRJJ/IAcqyqezwTpB8e2trYmHKovUdt0KR9/tVkGa7hsNd5GfxTOUaAFc3zADqRVM+wGimtG0NYfOF2f8tkmBEAiMMLKq5pbAnHU723a1cm/nfVp7gvXfsnO0k2GvRuHzb8mxIhWLiAnwdK9gEu5za/jWxo/xIvf2sdJPYdWj+yfyzA2e1fJkx4uRUzX31CXxZvP2/tfEcnTdI0gxN+OH2eAMiPVswIDAQAB"
#应用私钥 #应用私钥