diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/NotifyCotroller.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/NotifyCotroller.java
index aa2d0dd..04cc503 100644
--- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/NotifyCotroller.java
+++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/NotifyCotroller.java
@@ -83,6 +83,7 @@ public class NotifyCotroller {
updateTrade.setFailReason(trade_status);
this.accTradeService.updateAccTradeVoByOrderNo(updateTrade);
//TODO 增加用户的个人钱包 acc_wallet_info
+
} else {
AccTradeVo updateTrade = new AccTradeVo();
updateTrade.setOrderNo(order_no);
@@ -92,7 +93,6 @@ public class NotifyCotroller {
updateTrade.setFailReason(trade_status);
this.accTradeService.updateAccTradeVoByOrderNo(updateTrade);
}
-
out.println("success");
} else {
out.println("fail");
diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/PayCotroller.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/PayController.java
similarity index 62%
rename from bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/PayCotroller.java
rename to bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/PayController.java
index e6b5371..39cc6a8 100644
--- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/PayCotroller.java
+++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/PayController.java
@@ -1,9 +1,12 @@
package com.bonus.canteen.core.pay.controller;
+import com.alibaba.excel.util.StringUtils;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
+import com.alipay.api.request.AlipayTradeQueryRequest;
import com.alipay.api.response.AlipayTradePagePayResponse;
+import com.alipay.api.response.AlipayTradeQueryResponse;
import com.bonus.canteen.core.account.constants.AccTradeStateEnum;
import com.bonus.canteen.core.account.constants.AccTradeTypeEnum;
import com.bonus.canteen.core.account.service.IAccTradeService;
@@ -31,7 +34,7 @@ import java.util.UUID;
@Api(tags = "支付接口")
@RestController
@RequestMapping("/alipay")
-public class PayCotroller {
+public class PayController {
@Resource
AlipayClient alipayClient;
@Resource
@@ -47,8 +50,8 @@ public class PayCotroller {
accTradeVo.setTradeType(AccTradeTypeEnum.CONSUME.getKey().longValue());
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
- accTradeVo.setOrderNo(GlobalConstants.TENANT_ID + "_" + UUID.randomUUID().toString().replaceAll("-","") + "_" + sdf.format(date));
- accTradeVo.setOrderName(GlobalConstants.TENANT_ID + "_" + SecurityUtils.getUserId() + "_" + GlobalConstants.PERSONAL_RECHARGE + "_" + sdf.format(date));
+ accTradeVo.setOrderNo(sdf.format(date) + "_" + GlobalConstants.TENANT_ID + "_" + SecurityUtils.getUserId());
+ accTradeVo.setOrderName(accTradeVo.getOrderNo() + "_" + GlobalConstants.PERSONAL_RECHARGE);
accTradeVo.setTradeTime(new Date());
accTradeVo.setAmount(accTradeVo.getPaymentAmount().multiply(new BigDecimal(100)).longValue());
accTradeVo.setPayType(PayTypeEnum.MEAL_CARD.getKey().longValue());
@@ -72,4 +75,43 @@ public class PayCotroller {
response.getWriter().println(alipayResponse.getBody());
response.getWriter().flush();
}
+
+ /**
+ * 查询支付宝订单状态
+ * @param accTradeVo 商户订单号
+ * @return 订单查询结果
+ */
+ @RequestMapping("queryOrder")
+ public AlipayTradeQueryResponse queryOrder(@RequestBody AccTradeVo accTradeVo) {
+ // 创建查询请求
+ AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
+
+ // 设置业务参数
+ String bizContent = String.format("{\"out_trade_no\":\"%s\"}", accTradeVo.getOrderNo());
+ request.setBizContent(bizContent);
+
+ try {
+ // 发送查询请求
+ AlipayTradeQueryResponse response = alipayClient.execute(request);
+ // 根据结果处理充值记录,成功的话,存入钱包
+ String trade_status = response.getTradeStatus();
+ String third_trade_no = response.getTradeNo();
+ if ("TRADE_FINISHED".equals(trade_status) || "TRADE_SUCCESS".equals(trade_status)) {
+ AccTradeVo updateTrade = new AccTradeVo();
+ updateTrade.setOrderNo(accTradeVo.getOrderNo());
+ updateTrade.setThirdTradeNo(third_trade_no);
+ updateTrade.setPayState(PayStateEnum.PAY_SUCC.getKey().longValue());
+ updateTrade.setTradeState(AccTradeStateEnum.TAKE_EFFECT.getKey().longValue());
+ updateTrade.setFailReason(trade_status);
+ this.accTradeService.updateAccTradeVoByOrderNo(updateTrade);
+ //TODO 增加用户的个人钱包 acc_wallet_info
+
+ }
+ return response;
+ } catch (AlipayApiException e) {
+ log.error("查询异常, ", e.getErrMsg());
+ return null;
+ }
+ }
+
}
diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/ReturnCotroller.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/ReturnCotroller.java
index 0b56ebe..48aafd3 100644
--- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/ReturnCotroller.java
+++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/ReturnCotroller.java
@@ -50,7 +50,7 @@ public class ReturnCotroller {
String trade_no = request.getParameter("trade_no");
//交易状态
String trade_status = request.getParameter("trade_status");
- out.println("trade_no:" + trade_no + "
out_trade_no:" + out_trade_no +
+ out.println("return_values: " + "
trade_no:" + trade_no + "
out_trade_no:" + out_trade_no +
"
total_amount:" + total_amount + "
trade_status" + trade_status);
} else {
out.println("fail");