支付回调回滚逻辑代码修改

master
yqyg16603827325@126.com 3 years ago
parent f3d415b02b
commit 9d8acf5134

@ -142,7 +142,7 @@ public class RequestCore {
* @return * @return
*/ */
public JSONObject updatePayOrder(PayOrder payOrder) { public JSONObject updatePayOrder(PayOrder payOrder) {
String reqUrl = url + API_PREFIX + "/pay/updateNotify" + "?" + "orderNumber=" + payOrder.getOrderNumber(); String reqUrl = url + API_PREFIX + "/pay/updateNotify" + "?" + "orderNumber=" + payOrder.getOrderNumber() + "&orderStatus=" + payOrder.getOrderStatus();
String getResult = HttpUtil String getResult = HttpUtil
.createGet(reqUrl) .createGet(reqUrl)
.execute() .execute()

@ -140,46 +140,50 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
order.setPayTime(DateUtil.date()); order.setPayTime(DateUtil.date());
order.setStatus(DefaultNumberConstants.ONE_NUMBER); order.setStatus(DefaultNumberConstants.ONE_NUMBER);
payOrderRepository.save(order); payOrderRepository.save(order);
PayOrder updatePayOrder = new PayOrder(); i++;
updatePayOrder.setId(order.getId());
updatePayOrder.setStatus(2);
//同步数据 //同步数据
JSONObject jsonObject = requestCore.savePayOrder(order); JSONObject jsonObject = requestCore.savePayOrder(order);
if (jsonObject.get("code").equals("200")) { if (DefaultNumberConstants.TWO_HUNDRED == (Integer)jsonObject.get("code")) {
i++; i++;
//子账号授权 //子账号授权
JSONObject jsonObject1 = requestCore.authorizeChildrenAccount(order.getMasterUserId(), order.getNickName(), order.getTemplateId()); JSONObject jsonObject1 = requestCore.authorizeChildrenAccount(order.getMasterUserId(), order.getNickName(), order.getTemplateId());
if (jsonObject1.get("code").equals("200")) { if (DefaultNumberConstants.TWO_HUNDRED == (Integer)jsonObject1.get("code")) {
i++; i++;
// 修改账户信息 开通服务 // 修改账户信息 开通服务
JSONObject jsonObject2 = requestCore.updateSellerAccount(order); JSONObject jsonObject2 = requestCore.updateSellerAccount(order);
if (!jsonObject2.get("code").equals("200")){ if (DefaultNumberConstants.TWO_HUNDRED != (Integer)jsonObject2.get("code")){
requestCore.rollbackChildrenAccount(order.getMasterUserId(), order.getNickName(), order.getTemplateId()); updateRollBack(order,DefaultNumberConstants.THREE_NUMBER);
requestCore.updatePayOrder(order);
payOrderRepository.save(updatePayOrder);
} }
} else { } else {
requestCore.updatePayOrder(order); updateRollBack(order,DefaultNumberConstants.TWO_NUMBER);
payOrderRepository.save(updatePayOrder);
} }
}else { }else {
payOrderRepository.save(updatePayOrder); updateRollBack(order,DefaultNumberConstants.ONE_NUMBER);
} }
} }
} }
} catch (Exception e) { } catch (Exception e) {
if (i == 1){ updateRollBack(order,i);
requestCore.updatePayOrder(order);
}else if (i == 2){
requestCore.rollbackChildrenAccount(order.getMasterUserId(), order.getNickName(), order.getTemplateId());
requestCore.updatePayOrder(order);
}
log.error("the pc response error time {}", LocalTime.now()); log.error("the pc response error time {}", LocalTime.now());
throw new TaoMiCommException(ResponseCode.CALLBACK_FAILED.getDesc()); throw new TaoMiCommException(ResponseCode.CALLBACK_FAILED.getDesc());
} }
return CommonResult.successfulOperation(); return CommonResult.successfulOperation();
} }
private void updateRollBack(PayOrder payOrder,int i){
PayOrder updatePayOrder = new PayOrder();
updatePayOrder.setId(payOrder.getId());
if (DefaultNumberConstants.ONE_NUMBER == i){
updatePayOrder.setOrderStatus(DefaultNumberConstants.ONE_NUMBER);
payOrderRepository.save(updatePayOrder);
}else{
updatePayOrder.setOrderStatus(i);
updatePayOrder.setOrderNumber(payOrder.getOrderNumber());
requestCore.updatePayOrder(updatePayOrder);
payOrderRepository.save(updatePayOrder);
}
}
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())) {

@ -49,8 +49,8 @@ public class PayTemplateController {
@ApiOperation(value = "支付回调回滚同步数据") @ApiOperation(value = "支付回调回滚同步数据")
@GetMapping(value = "/updateNotify") @GetMapping(value = "/updateNotify")
public void delPayOrder(@RequestParam("orderNumber") String orderNumber) { public void delPayOrder(@RequestParam("orderNumber") String orderNumber , @RequestParam("orderStatus") Integer orderStatus) {
payTemplateService.updatePayOrder(orderNumber); payTemplateService.updatePayOrder(orderNumber,orderStatus);
} }
} }

@ -11,6 +11,6 @@ import org.springframework.stereotype.Repository;
public interface PayOrderRepository extends JpaRepository<PayOrder, Long>, JpaSpecificationExecutor<PayOrder> { public interface PayOrderRepository extends JpaRepository<PayOrder, Long>, JpaSpecificationExecutor<PayOrder> {
@Modifying @Modifying
@Query(value = "update PayOrder set status = 2 where orderNumber = ?1") @Query(value = "update PayOrder set orderStatus = ?2 where orderNumber = ?1")
void updatePayOrder(String orderNumber); void updatePayOrder(String orderNumber,Integer orderStatus);
} }

@ -3,6 +3,7 @@ package com.hchbox.service;
import com.hchbox.entity.master.PayOrder; import com.hchbox.entity.master.PayOrder;
import com.hchbox.entity.master.PayTemplate; import com.hchbox.entity.master.PayTemplate;
import com.hchbox.model.param.CommonResult; import com.hchbox.model.param.CommonResult;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map; import java.util.Map;
@ -40,5 +41,5 @@ public interface PayTemplateService {
* @param orderNumber * @param orderNumber
* @return * @return
*/ */
void updatePayOrder(String orderNumber); void updatePayOrder(String orderNumber , Integer orderStatus);
} }

@ -37,7 +37,7 @@ public class PayTemplateServiceImpl implements PayTemplateService {
} }
@Override @Override
public void updatePayOrder(String orderNumber) { public void updatePayOrder(String orderNumber , Integer orderStatus) {
payOrderRepository.updatePayOrder(orderNumber); payOrderRepository.updatePayOrder(orderNumber,orderStatus);
} }
} }

@ -86,6 +86,11 @@ public class DefaultNumberConstants {
*/ */
public static final int ONE_THOUSAND = 1000; public static final int ONE_THOUSAND = 1000;
/**
* 1000
*/
public static final int TWO_HUNDRED = 200;
/** /**
* @ * @
*/ */

@ -34,7 +34,7 @@ public class BasePayOrder implements Serializable {
private String orderNumber; private String orderNumber;
@Column(name = "status") @Column(name = "status")
@ApiModelProperty(value = "订单状态") @ApiModelProperty(value = "支付状态")
private Integer status; private Integer status;
@Column(name = "purchaser") @Column(name = "purchaser")
@ -67,4 +67,8 @@ public class BasePayOrder implements Serializable {
@Column(name = "master_user_id") @Column(name = "master_user_id")
@ApiModelProperty(value = "主账号用户id") @ApiModelProperty(value = "主账号用户id")
private Long masterUserId; private Long masterUserId;
@Column(name = "order_status")
@ApiModelProperty(value = "订单状态")
private Integer orderStatus;
} }

Loading…
Cancel
Save