|
|
|
@ -132,6 +132,7 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
|
|
|
|
|
order.setPayType(aliPayPcVo.getPayType());
|
|
|
|
|
order.setTemplateId(aliPayPcVo.getTemplateId());
|
|
|
|
|
order.setStatus(DefaultNumberConstants.ZERO_NUMBER);
|
|
|
|
|
order.setIsCallback(DefaultNumberConstants.ZERO_NUMBER);
|
|
|
|
|
return payOrderRepository.save(order).getId() != null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -142,48 +143,56 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
|
|
|
|
|
* @return {@link CommonResult}<{@link String}>
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public CommonResult<String> pcNotifyResponse(HttpServletRequest request) {
|
|
|
|
|
log.info("======================支付回调开始时间:======================{}", LocalTime.now());
|
|
|
|
|
int i = 0;
|
|
|
|
|
PayOrder order = null;
|
|
|
|
|
try {
|
|
|
|
|
//获取支付宝GET过来反馈信息
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public String pcNotifyResponse(HttpServletRequest request) {
|
|
|
|
|
//商户订单号
|
|
|
|
|
String orderNo = new String(request.getParameter(PayConstants.OUT_TRADE_NO).
|
|
|
|
|
getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
|
|
|
|
|
//查询订单信息
|
|
|
|
|
PayOrder order = payOrderRepository.findByOrderNumber(orderNo);
|
|
|
|
|
if (order != null && order.getIsCallback() == 0) {
|
|
|
|
|
log.info("======================支付回调开始时间:{}", LocalTime.now());
|
|
|
|
|
//先更新回调状态,防止二次回调
|
|
|
|
|
order.setIsCallback(DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
payOrderRepository.save(order);
|
|
|
|
|
int i = 0;
|
|
|
|
|
try {
|
|
|
|
|
//获取支付宝GET过来反馈信息
|
|
|
|
|
// Map<String, String> params = new HashMap<>(DefaultNumberConstants.TWO_NUMBER);
|
|
|
|
|
// 处理乱码问题
|
|
|
|
|
// 处理乱码问题
|
|
|
|
|
// 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).
|
|
|
|
|
getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
|
|
|
|
|
if (flag != null && flag) {
|
|
|
|
|
log.info(" order verify signature success the orderNumber as {}", orderNo);
|
|
|
|
|
order = payOrderRepository.findByOrderNumber(orderNo);
|
|
|
|
|
if (order != null && order.getStatus() == 0) {
|
|
|
|
|
order.setPayTime(DateUtil.date());
|
|
|
|
|
order.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
payOrderRepository.save(order);
|
|
|
|
|
i++;
|
|
|
|
|
//同步到聚石塔内数据
|
|
|
|
|
JSONObject jsonObject = requestCore.savePayOrder(order);
|
|
|
|
|
if (DefaultNumberConstants.TWO_HUNDRED == (Integer) jsonObject.get("code")) {
|
|
|
|
|
//获取支付宝GET过来反馈信息
|
|
|
|
|
Map<String, String> params = getAllRequestParam(request);
|
|
|
|
|
//验签
|
|
|
|
|
Boolean flag = Factory.Payment.Common().verifyNotify(params);
|
|
|
|
|
if (flag != null && flag) {
|
|
|
|
|
log.info(" order verify signature success the orderNumber as {}", orderNo);
|
|
|
|
|
if (order != null && order.getStatus() == 0) {
|
|
|
|
|
order.setPayTime(DateUtil.date());
|
|
|
|
|
order.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
payOrderRepository.save(order);
|
|
|
|
|
i++;
|
|
|
|
|
//子账号授权
|
|
|
|
|
JSONObject jsonObject1 = requestCore.authorizeChildrenAccount(order.getMasterUserId(), order.getNickName(), order.getTemplateId());
|
|
|
|
|
if (DefaultNumberConstants.TWO_HUNDRED != (Integer) jsonObject1.get("code")) {
|
|
|
|
|
updateRollBack(order, DefaultNumberConstants.TWO_NUMBER);
|
|
|
|
|
//同步到聚石塔内数据
|
|
|
|
|
JSONObject jsonObject = requestCore.savePayOrder(order);
|
|
|
|
|
if (DefaultNumberConstants.TWO_HUNDRED == (Integer) jsonObject.get("code")) {
|
|
|
|
|
i++;
|
|
|
|
|
//子账号授权
|
|
|
|
|
JSONObject jsonObject1 = requestCore.authorizeChildrenAccount(order.getMasterUserId(), order.getNickName(), order.getTemplateId());
|
|
|
|
|
if (DefaultNumberConstants.TWO_HUNDRED != (Integer) jsonObject1.get("code")) {
|
|
|
|
|
updateRollBack(order, DefaultNumberConstants.TWO_NUMBER);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
updateRollBack(order, DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
updateRollBack(order, DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
updateRollBack(order, i);
|
|
|
|
|
log.error("the pc response error time {}", LocalTime.now());
|
|
|
|
|
return "success";
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
updateRollBack(order, i);
|
|
|
|
|
log.error("the pc response error time {}", LocalTime.now());
|
|
|
|
|
throw new TaoMiCommException(ResponseCode.CALLBACK_FAILED.getDesc());
|
|
|
|
|
}
|
|
|
|
|
return CommonResult.successfulOperation();
|
|
|
|
|
return "success";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void updateRollBack(PayOrder payOrder, int i) {
|
|
|
|
@ -217,6 +226,7 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
|
|
|
|
|
payTwoOrder.setStatus(DefaultNumberConstants.ZERO_NUMBER);
|
|
|
|
|
payTwoOrder.setFinalAmount(num);
|
|
|
|
|
payTwoOrder.setOrderStatus(DefaultNumberConstants.ZERO_NUMBER);
|
|
|
|
|
payTwoOrder.setIsCallback(DefaultNumberConstants.ZERO_NUMBER);
|
|
|
|
|
payTwoOrderRepository.save(payTwoOrder);
|
|
|
|
|
return new CommonResult<String>().success(response.getBody());
|
|
|
|
|
}
|
|
|
|
@ -239,56 +249,64 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
|
|
|
|
|
* @param request
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public CommonResult<String> pcTwoNotifyResponse(HttpServletRequest request) {
|
|
|
|
|
log.info("======================同步支付回调开始时间:======================{}", LocalTime.now());
|
|
|
|
|
int i = 0;
|
|
|
|
|
PayTwoOrder order = null;
|
|
|
|
|
try {
|
|
|
|
|
//获取支付宝GET过来反馈信息
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public String pcTwoNotifyResponse(HttpServletRequest request) {
|
|
|
|
|
//商户订单号
|
|
|
|
|
String orderNo = new String(request.getParameter(PayConstants.OUT_TRADE_NO).
|
|
|
|
|
getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
|
|
|
|
|
//查询订单信息
|
|
|
|
|
PayTwoOrder order = payTwoOrderRepository.findByOrderNumber(orderNo);
|
|
|
|
|
if (order != null && order.getIsCallback() == 0) {
|
|
|
|
|
log.info("======================同步支付回调开始时间:{}", LocalTime.now());
|
|
|
|
|
//先更新回调状态,防止二次回调
|
|
|
|
|
order.setIsCallback(DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
payTwoOrderRepository.save(order);
|
|
|
|
|
int i = 0;
|
|
|
|
|
try {
|
|
|
|
|
//获取支付宝GET过来反馈信息
|
|
|
|
|
// Map<String, String> params = new HashMap<>(DefaultNumberConstants.TWO_NUMBER);
|
|
|
|
|
// 处理乱码问题
|
|
|
|
|
// 处理乱码问题
|
|
|
|
|
// 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).
|
|
|
|
|
getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
|
|
|
|
|
if (flag != null && flag) {
|
|
|
|
|
log.info(" order verify signature success the orderNumber as {}", orderNo);
|
|
|
|
|
order = payTwoOrderRepository.findByOrderNumber(orderNo);
|
|
|
|
|
if (order != null && order.getStatus() == 0) {
|
|
|
|
|
order.setPayTime(DateUtil.date());
|
|
|
|
|
order.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
payTwoOrderRepository.save(order);
|
|
|
|
|
i++;
|
|
|
|
|
//同步数据
|
|
|
|
|
JSONObject jsonObject = requestCore.savePayTwoOrder(order);
|
|
|
|
|
if (DefaultNumberConstants.TWO_HUNDRED == (Integer) jsonObject.get("code")) {
|
|
|
|
|
//获取支付宝GET过来反馈信息
|
|
|
|
|
Map<String, String> params = getAllRequestParam(request);
|
|
|
|
|
//验签
|
|
|
|
|
Boolean flag = Factory.Payment.Common().verifyNotify(params);
|
|
|
|
|
if (flag != null && flag) {
|
|
|
|
|
log.info(" order verify signature success the orderNumber as {}", orderNo);
|
|
|
|
|
if (order != null && order.getStatus() == 0) {
|
|
|
|
|
order.setPayTime(DateUtil.date());
|
|
|
|
|
order.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
payTwoOrderRepository.save(order);
|
|
|
|
|
i++;
|
|
|
|
|
// 修改账户信息 开通服务
|
|
|
|
|
JSONObject jsonObject2 = requestCore.updateSellerAccount(order, false);
|
|
|
|
|
if (DefaultNumberConstants.TWO_HUNDRED != (Integer) jsonObject2.get("code")) {
|
|
|
|
|
log.error("++++++++++++++++修改账户信息,开通淘宝服务失败:{}", order.getNickName());
|
|
|
|
|
order.setOrderStatus(i);
|
|
|
|
|
//同步数据
|
|
|
|
|
JSONObject jsonObject = requestCore.savePayTwoOrder(order);
|
|
|
|
|
if (DefaultNumberConstants.TWO_HUNDRED == (Integer) jsonObject.get("code")) {
|
|
|
|
|
i++;
|
|
|
|
|
// 修改账户信息 开通服务
|
|
|
|
|
JSONObject jsonObject2 = requestCore.updateSellerAccount(order, false);
|
|
|
|
|
if (DefaultNumberConstants.TWO_HUNDRED != (Integer) jsonObject2.get("code")) {
|
|
|
|
|
log.error("++++++++++++++++修改账户信息,开通淘宝服务失败:{}", order.getNickName());
|
|
|
|
|
order.setOrderStatus(i);
|
|
|
|
|
requestCore.updateTwoPayOrder(order);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
log.error("++++++++++++++++同步到聚石塔内数据失败:{}", order.getNickName());
|
|
|
|
|
order.setOrderStatus(DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
requestCore.updateTwoPayOrder(order);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
log.error("++++++++++++++++同步到聚石塔内数据失败:{}", order.getNickName());
|
|
|
|
|
order.setOrderStatus(DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
requestCore.updateTwoPayOrder(order);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
order.setOrderStatus(i);
|
|
|
|
|
if (i > DefaultNumberConstants.ONE_NUMBER) {
|
|
|
|
|
requestCore.updateTwoPayOrder(order);
|
|
|
|
|
}
|
|
|
|
|
payTwoOrderRepository.save(order);
|
|
|
|
|
log.error("the pc response error time {}", LocalTime.now());
|
|
|
|
|
return "success";
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
order.setOrderStatus(i);
|
|
|
|
|
if (i > DefaultNumberConstants.ONE_NUMBER) {
|
|
|
|
|
requestCore.updateTwoPayOrder(order);
|
|
|
|
|
}
|
|
|
|
|
payTwoOrderRepository.save(order);
|
|
|
|
|
log.error("the pc response error time {}", LocalTime.now());
|
|
|
|
|
throw new TaoMiCommException(ResponseCode.CALLBACK_FAILED.getDesc());
|
|
|
|
|
}
|
|
|
|
|
return CommonResult.successfulOperation();
|
|
|
|
|
return "success";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// private void checkParam(HttpServletRequest request, Map<String, String> params) {
|
|
|
|
|