package com.ruoyi.system.controller; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.ControllerUtil.WechatPayV3Util; import com.ruoyi.system.service.WechatCertificateService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.Map; /** * 微信支付API控制器(无需认证) * * @author Mr. Zhang Pan * @version 1.0 * @date 2025-01-17 */ @RestController @RequestMapping("/api/wechat/pay/v3") public class ApiWechatPayController extends BaseController { // // private static final Logger log = LoggerFactory.getLogger(ApiWechatPayController.class); // // @Autowired // private WechatPayV3Util wechatPayV3Util; // // @Autowired // private WechatCertificateService wechatCertificateService; // // /** // * 快速提现(简化参数)简化参数 // */ // @PostMapping("/quick-withdraw") // @Log(title = "微信支付V3快速提现", businessType = BusinessType.OTHER) // public AjaxResult quickWithdraw(@RequestParam String openid, // @RequestParam BigDecimal amount, // @RequestParam(required = false) String desc) { // try { // log.info("⚡ API快速提现请求 - 用户户: {}, 金额: {}元", openid.substring(0, 6) + "****", amount); // // Map result = wechatPayV3Util.quickWithdraw(openid, amount, desc); // // if ((Boolean) result.get("success")) { // return AjaxResult.success("快速提现成功", result.get("data")); // } else { // return AjaxResult.error(result.get("message").toString()); // } // } catch (Exception e) { // log.error("❌ API快速提现异常: {}", e.getMessage(), e); // return AjaxResult.error("快速提现失败: " + e.getMessage()); // } // } // /** // * 测试私钥加载 // */ // @GetMapping("/test-key") // @Log(title = "微信支付V3测试私钥", businessType = BusinessType.OTHER) // public AjaxResult testKey() { // try { // log.info("🔐 API测试私钥加载"); // // // 通过反射调用私有方法测试私钥加载 // java.lang.reflect.Method method = WechatPayV3Util.class.getDeclaredMethod("getPrivateKey"); // method.setAccessible(true); // Object privateKey = method.invoke(wechatPayV3Util); // // if (privateKey != null) { // return AjaxResult.success("私钥加载成功", "私钥算法: " + privateKey.getClass().getSimpleName()); // } else { // return AjaxResult.error("私钥加载失败"); // } // } catch (Exception e) { // log.error("❌ API测试私钥异常: {}", e.getMessage(), e); // return AjaxResult.error("测试私钥失败: " + e.getMessage()); // } // } }