配置测试环境支付成功回调

This commit is contained in:
谭凯凯
2024-10-10 16:46:34 +08:00
committed by Tankaikai
parent c9da828246
commit ba710c854e
4 changed files with 87 additions and 18 deletions

View File

@@ -1,17 +1,20 @@
package com.chaozhanggui.system.cashierservice.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.extra.servlet.ServletUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.chaozhanggui.system.cashierservice.entity.TbOrderInfo;
import com.chaozhanggui.system.cashierservice.service.OrderService;
import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
import com.chaozhanggui.system.cashierservice.sign.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
@CrossOrigin(origins = "*")
@RestController
@@ -20,24 +23,44 @@ import java.util.Map;
public class NotifyController {
private final OrderService orderService;
public NotifyController(OrderService orderService) {
this.orderService = orderService;
}
@Resource
private OrderService orderService;
@RequestMapping("notifyPay")
public String notifyPay(HttpServletRequest request,@RequestParam Map<String,Object> map){
log.info("request ip:{}", request.getRemoteAddr());
Map<String, String[]> params = ServletUtil.getParams(request);
public Result notifyPay(HttpServletRequest request) {
String body = ServletUtil.getBody(request);
log.info("notifyPay params:{}", JSON.toJSONString(params));
log.info("notifyPay body:{}", body);
return null;
JSONObject resp = JSON.parseObject(body);
String code = resp.getString("code");
String msg = resp.getString("msg");
if (!"000000".equals(code)) {
log.error("支付失败:{}", resp.getString("msg"));
return Result.fail(msg);
}
JSONObject bizData = JSON.parseObject(resp.getString("bizData"));
String state = bizData.getString("state");
String note = bizData.getString("note");
String payOrderId = bizData.getString("payOrderId");
String payType = bizData.getString("payType");
String payTime = bizData.getString("payTime");
long paidTime = DateUtil.parseDateTime(payTime).getTime();
if (!"TRADE_SUCCESS".equals(state)) {
log.error("支付失败:{},{}", state, note);
return Result.fail(state + ":" + note);
}
TbOrderInfo entity = orderService.selectByPayOrderNo(payOrderId);
if (entity == null) {
return Result.fail("订单不存在");
}
entity.setPaidTime(paidTime);
orderService.payCallbackCloseOrder(entity, payType);
return Result.success(CodeEnum.SUCCESS);
}
/**
* 支付取消
*
* @return 影响数量
*/
@PostMapping("cancel")