|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|