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

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

@ -142,7 +142,7 @@ public class RequestCore {
* @return
*/
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
.createGet(reqUrl)
.execute()

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

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

@ -11,6 +11,6 @@ import org.springframework.stereotype.Repository;
public interface PayOrderRepository extends JpaRepository<PayOrder, Long>, JpaSpecificationExecutor<PayOrder> {
@Modifying
@Query(value = "update PayOrder set status = 2 where orderNumber = ?1")
void updatePayOrder(String orderNumber);
@Query(value = "update PayOrder set orderStatus = ?2 where orderNumber = ?1")
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.PayTemplate;
import com.hchbox.model.param.CommonResult;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;
@ -40,5 +41,5 @@ public interface PayTemplateService {
* @param orderNumber
* @return
*/
void updatePayOrder(String orderNumber);
void updatePayOrder(String orderNumber , Integer orderStatus);
}

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

@ -86,6 +86,11 @@ public class DefaultNumberConstants {
*/
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;
@Column(name = "status")
@ApiModelProperty(value = "订单状态")
@ApiModelProperty(value = "支付状态")
private Integer status;
@Column(name = "purchaser")
@ -67,4 +67,8 @@ public class BasePayOrder implements Serializable {
@Column(name = "master_user_id")
@ApiModelProperty(value = "主账号用户id")
private Long masterUserId;
@Column(name = "order_status")
@ApiModelProperty(value = "订单状态")
private Integer orderStatus;
}

Loading…
Cancel
Save