支付回调业务代码修改

master
yqy 3 years ago
parent dea21d35ef
commit e547599862

@ -40,7 +40,7 @@ public class RechargeController {
@ApiOperation(value = "支付回调") @ApiOperation(value = "支付回调")
@RequestMapping(value = "/pay-notify") @RequestMapping(value = "/pay-notify")
public CommonResult<String> frontRcvResponse(HttpServletRequest request) throws Exception { public CommonResult<String> frontRcvResponse(HttpServletRequest request){
return accountRechargeService.pcNotifyResponse(request); return accountRechargeService.pcNotifyResponse(request);
} }

@ -31,7 +31,7 @@ public interface AccountRechargeService {
* @param request * @param request
* @return * @return
*/ */
CommonResult<String> pcNotifyResponse(HttpServletRequest request) throws Exception; CommonResult<String> pcNotifyResponse(HttpServletRequest request);
/** /**
* *

@ -38,6 +38,7 @@ import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.LocalTime; import java.time.LocalTime;
import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -142,13 +143,15 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
*/ */
@Override @Override
public CommonResult<String> pcNotifyResponse(HttpServletRequest request) { public CommonResult<String> pcNotifyResponse(HttpServletRequest request) {
log.info("======================支付回调开始时间:======================{}", LocalTime.now());
int i = 0; int i = 0;
PayOrder order = null; PayOrder order = null;
try { try {
//获取支付宝GET过来反馈信息 //获取支付宝GET过来反馈信息
Map<String, String> params = new HashMap<>(DefaultNumberConstants.TWO_NUMBER); // Map<String, String> params = new HashMap<>(DefaultNumberConstants.TWO_NUMBER);
// 处理乱码问题 // 处理乱码问题
checkParam(request, params); // checkParam(request, params);
Map<String, String> params = getAllRequestParam(request);
Boolean flag = Factory.Payment.Common().verifyNotify(params); Boolean flag = Factory.Payment.Common().verifyNotify(params);
//商户订单号 //商户订单号
String orderNo = new String(request.getParameter(PayConstants.OUT_TRADE_NO). String orderNo = new String(request.getParameter(PayConstants.OUT_TRADE_NO).
@ -206,7 +209,6 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
String orderNo = String.valueOf(IdUtil.getSnowflake(workerId, datacenterId).nextId()); String orderNo = String.valueOf(IdUtil.getSnowflake(workerId, datacenterId).nextId());
payTwoOrder.setAnticipateNum(NumberUtil.div(payTwoOrder.getAmount(), BigDecimal.valueOf(amount)).longValue()); payTwoOrder.setAnticipateNum(NumberUtil.div(payTwoOrder.getAmount(), BigDecimal.valueOf(amount)).longValue());
Double num = payTwoOrder.getAmount() + payTwoOrder.getIdenticalAmount(); Double num = payTwoOrder.getAmount() + payTwoOrder.getIdenticalAmount();
// Double num = 0.01;
// 生成返回对象 // 生成返回对象
response = Factory.Payment.Page() response = Factory.Payment.Page()
.pay(PayConstants.PAY_TITLE + orderNo, orderNo, num.toString(), aliPay.getNotifyUrlTwo()); .pay(PayConstants.PAY_TITLE + orderNo, orderNo, num.toString(), aliPay.getNotifyUrlTwo());
@ -238,13 +240,15 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
*/ */
@Override @Override
public CommonResult<String> pcTwoNotifyResponse(HttpServletRequest request) { public CommonResult<String> pcTwoNotifyResponse(HttpServletRequest request) {
log.info("======================同步支付回调开始时间:======================{}", LocalTime.now());
int i = 0; int i = 0;
PayTwoOrder order = null; PayTwoOrder order = null;
try { try {
//获取支付宝GET过来反馈信息 //获取支付宝GET过来反馈信息
Map<String, String> params = new HashMap<>(DefaultNumberConstants.TWO_NUMBER); // Map<String, String> params = new HashMap<>(DefaultNumberConstants.TWO_NUMBER);
// 处理乱码问题 // 处理乱码问题
checkParam(request, params); // checkParam(request, params);
Map<String, String> params = getAllRequestParam(request);
Boolean flag = Factory.Payment.Common().verifyNotify(params); Boolean flag = Factory.Payment.Common().verifyNotify(params);
//商户订单号 //商户订单号
String orderNo = new String(request.getParameter(PayConstants.OUT_TRADE_NO). String orderNo = new String(request.getParameter(PayConstants.OUT_TRADE_NO).
@ -287,21 +291,33 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
return CommonResult.successfulOperation(); return CommonResult.successfulOperation();
} }
private void checkParam(HttpServletRequest request, Map<String, String> params) { // private void checkParam(HttpServletRequest request, Map<String, String> params) {
Map<String, String[]> requestParams = request.getParameterMap(); // Map<String, String[]> requestParams = request.getParameterMap();
if (CollectionUtils.isNotEmpty(requestParams.keySet())) { // if (CollectionUtils.isNotEmpty(requestParams.keySet())) {
for (String name : requestParams.keySet()) { // for (String name : requestParams.keySet()) {
String[] values = requestParams.get(name); // String[] values = requestParams.get(name);
String valueStr = ""; // String valueStr = "";
for (int i = 0; i < values.length; i++) { // for (int i = 0; i < values.length; i++) {
valueStr = (i == values.length - 1) ? valueStr + values[i] // valueStr = (i == values.length - 1) ? valueStr + values[i]
: valueStr + values[i] + StrUtil.COMMA; // : valueStr + values[i] + StrUtil.COMMA;
} // }
//乱码解决,这段代码在出现乱码时使用 // //乱码解决,这段代码在出现乱码时使用
valueStr = new String(valueStr.getBytes // valueStr = new String(valueStr.getBytes
(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); // (StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
params.put(name, valueStr); // params.put(name, valueStr);
} // }
// }
// }
//得到请求的参数
private Map<String, String> getAllRequestParam(final HttpServletRequest request) {
Map<String, String> res = new HashMap<>();
Enumeration<?> temp = request.getParameterNames();
while (temp.hasMoreElements()) {
String en = (String) temp.nextElement();
String value = request.getParameter(en);
res.put(en, value);
} }
return res;
} }
} }

Loading…
Cancel
Save