支付回调业务代码修改

master
yqy 3 years ago
parent dea21d35ef
commit e547599862

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

@ -31,7 +31,7 @@ public interface AccountRechargeService {
* @param request
* @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.nio.charset.StandardCharsets;
import java.time.LocalTime;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -142,13 +143,15 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
*/
@Override
public CommonResult<String> pcNotifyResponse(HttpServletRequest request) {
log.info("======================支付回调开始时间:======================{}", LocalTime.now());
int i = 0;
PayOrder order = null;
try {
//获取支付宝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);
//商户订单号
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());
payTwoOrder.setAnticipateNum(NumberUtil.div(payTwoOrder.getAmount(), BigDecimal.valueOf(amount)).longValue());
Double num = payTwoOrder.getAmount() + payTwoOrder.getIdenticalAmount();
// Double num = 0.01;
// 生成返回对象
response = Factory.Payment.Page()
.pay(PayConstants.PAY_TITLE + orderNo, orderNo, num.toString(), aliPay.getNotifyUrlTwo());
@ -238,13 +240,15 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
*/
@Override
public CommonResult<String> pcTwoNotifyResponse(HttpServletRequest request) {
log.info("======================同步支付回调开始时间:======================{}", LocalTime.now());
int i = 0;
PayTwoOrder order = null;
try {
//获取支付宝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);
//商户订单号
String orderNo = new String(request.getParameter(PayConstants.OUT_TRADE_NO).
@ -287,21 +291,33 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
return CommonResult.successfulOperation();
}
private void checkParam(HttpServletRequest request, Map<String, String> params) {
Map<String, String[]> requestParams = request.getParameterMap();
if (CollectionUtils.isNotEmpty(requestParams.keySet())) {
for (String name : requestParams.keySet()) {
String[] values = requestParams.get(name);
String valueStr = "";
for (int i = 0; i < values.length; i++) {
valueStr = (i == values.length - 1) ? valueStr + values[i]
: valueStr + values[i] + StrUtil.COMMA;
}
//乱码解决,这段代码在出现乱码时使用
valueStr = new String(valueStr.getBytes
(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
params.put(name, valueStr);
}
// private void checkParam(HttpServletRequest request, Map<String, String> params) {
// Map<String, String[]> requestParams = request.getParameterMap();
// if (CollectionUtils.isNotEmpty(requestParams.keySet())) {
// for (String name : requestParams.keySet()) {
// String[] values = requestParams.get(name);
// String valueStr = "";
// for (int i = 0; i < values.length; i++) {
// valueStr = (i == values.length - 1) ? valueStr + values[i]
// : valueStr + values[i] + StrUtil.COMMA;
// }
// //乱码解决,这段代码在出现乱码时使用
// valueStr = new String(valueStr.getBytes
// (StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
// 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