|
|
@@ -4,8 +4,11 @@ import cn.com.sandpay.cashier.sdk.CertUtil;
|
|
|
import cn.com.sandpay.cashier.sdk.CryptoUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.izouma.nineth.config.GeneralProperties;
|
|
|
+import com.izouma.nineth.domain.Order;
|
|
|
import com.izouma.nineth.enums.PayMethod;
|
|
|
import com.izouma.nineth.event.OrderNotifyEvent;
|
|
|
+import com.izouma.nineth.exception.BusinessException;
|
|
|
+import com.izouma.nineth.repo.OrderRepo;
|
|
|
import com.izouma.nineth.service.*;
|
|
|
import com.izouma.nineth.utils.SnowflakeIdWorker;
|
|
|
import com.izouma.nineth.enums.SandPayMethod;
|
|
|
@@ -27,12 +30,13 @@ import java.nio.charset.StandardCharsets;
|
|
|
@AllArgsConstructor
|
|
|
public class SandPayController {
|
|
|
|
|
|
- private SandPayService sandPayService;
|
|
|
- private SnowflakeIdWorker snowflakeIdWorker;
|
|
|
- private GeneralProperties generalProperties;
|
|
|
- private RocketMQTemplate rocketMQTemplate;
|
|
|
- private GiftOrderService giftOrderService;
|
|
|
- private MintOrderService mintOrderService;
|
|
|
+ private SandPayService sandPayService;
|
|
|
+ private SnowflakeIdWorker snowflakeIdWorker;
|
|
|
+ private GeneralProperties generalProperties;
|
|
|
+ private RocketMQTemplate rocketMQTemplate;
|
|
|
+ private GiftOrderService giftOrderService;
|
|
|
+ private MintOrderService mintOrderService;
|
|
|
+ private OrderRepo orderRepo;
|
|
|
|
|
|
@PostMapping("/notify")
|
|
|
public Object notifyOrder(HttpServletRequest req, HttpServletResponse resp) {
|
|
|
@@ -64,7 +68,8 @@ public class SandPayController {
|
|
|
switch (type) {
|
|
|
case "order":
|
|
|
rocketMQTemplate.syncSend(generalProperties.getOrderNotifyTopic(),
|
|
|
- new OrderNotifyEvent(id, PayMethod.SANDPAY, payOrderCode, System.currentTimeMillis()));
|
|
|
+ new OrderNotifyEvent(id, PayMethod.SANDPAY, payOrderCode, System
|
|
|
+ .currentTimeMillis()));
|
|
|
break;
|
|
|
case "gift":
|
|
|
giftOrderService.giftNotify(id, PayMethod.SANDPAY, payOrderCode);
|
|
|
@@ -84,4 +89,10 @@ public class SandPayController {
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
+
|
|
|
+ @PostMapping("/refund")
|
|
|
+ public void refund(Long orderId) {
|
|
|
+ Order order = orderRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
|
|
|
+ sandPayService.refund(order.getTransactionId(), order.getTotalPrice());
|
|
|
+ }
|
|
|
}
|