This commit is contained in:
77
2024-11-12 18:56:52 +08:00
parent 7606abb5ad
commit f57a8d41f6
10 changed files with 227 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ package com.ruoyi.web.controller.cai.app;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alipay.api.AlipayApiException;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import com.alipay.api.internal.util.AlipaySignature;
@@ -14,10 +15,15 @@ import com.ijpay.core.kit.WxPayKit;
import com.ijpay.wxpay.WxPayApi;
import com.ijpay.wxpay.model.UnifiedOrderModel;
import com.ruoyi.cai.domain.PayConfig;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.pay.*;
import com.ruoyi.cai.trdpay.TrdPayManager;
import com.ruoyi.cai.trdpay.TrdPayProperties;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.ServletUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -44,10 +50,53 @@ public class PayController {
private PayConfigManager payConfigManager;
@Autowired
private PayManager payManager;
@Autowired
private TrdPayProperties trdPayProperties;
@Autowired
private TrdPayManager trdPayManager;
@Autowired
private SystemConfigManager systemConfigManager;
private static final String NOTIFY_WX_URL = "/api/pay/wx/notify";
private static final String NOTIFY_ALI_URL = "/api/pay/ali/notify";
@PostMapping(value = "/trdAli")
@Operation(summary = "第三方支付宝支付")
@Log(title = "第三方支付宝支付", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Map<String,Object>> checkPayType(){
Integer payInit = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.COS_DOMAIN);
Long userId = LoginHelper.getUserId();
}
@PostMapping(value = "/trdAli")
@Operation(summary = "第三方支付宝支付")
@Log(title = "第三方支付宝支付", businessType = BusinessType.OTHER, isSaveDb = true)
public R<PayReturnResp> trdWxPay(@RequestBody PayControllerDTO dto){
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo());
if(payOrderInfo == null){
return R.fail(600,"支付失败,未找到订单");
}
try {
JSONObject wx = trdPayManager.createOrderWx(payOrderInfo);
String code = wx.getString("retCode");
if(!"SUCCESS".equals(code)){
return R.fail(600,"支付失败!微信支付通道失败!");
}
String payUrl = wx.getJSONObject("payParams").getString("payUrl");
PayReturnResp payTrdReturnResp = new PayReturnResp();
payTrdReturnResp.setData(payUrl);
return R.ok(payTrdReturnResp);
}catch (Exception e){
log.error("第三方微信支付失败!",e);
return R.fail(600,"支付失败!微信支付通道失败!");
}
}
@PostMapping(value = "/wx")
@Operation(summary = "微信支付")
@Log(title = "微信支付", businessType = BusinessType.OTHER, isSaveDb = true)
@@ -196,4 +245,24 @@ public class PayController {
}
}
@PostMapping(value = "/trd/notify")
@Operation(hidden = true)
@Log(title = "第三方支付回调", businessType = BusinessType.OTHER, isSaveDb = false)
@SaIgnore
public String trdNotifyUrl(HttpServletRequest request) {
try {
Map<String, String> params = AliPayApi.toMap(request);
log.info("第三方支付回调:{}",JSON.toJSONString(params));
String mchOrderNo = params.get("mchOrderNo");
String payOrderId = params.get("payOrderId");
String productId = params.get("productId");
payManager.callBack(mchOrderNo,payOrderId,params,productId, PayTypeEnum.TRD);
return "success";
} catch (Exception e) {
log.error("第三方支付回调失败!",e);
return "failure";
}
}
}

View File

@@ -109,3 +109,9 @@ springdoc:
enabled: false
knife4j:
enable: false
trd:
pay:
mch-id: 10418
wx-product-id: 8000
ali-product-id: 8000
notify-url-domain: "http://1.12.220.225:9889"

View File

@@ -245,6 +245,12 @@ cai:
websocket: false
coin-name: 花钻
home-name: 花语
trd:
pay:
mch-id: 10418
wx-product-id: 8000
ali-product-id: 8000
notify-url-domain: "http://1.12.220.225:9889"
--- # Actuator 监控端点的配置项
management:
endpoints: