From 7e0540104fa4338d8ecebff35c45fbe9d0e5f371 Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Fri, 7 Feb 2025 15:27:03 +0800 Subject: [PATCH] =?UTF-8?q?feat(payment):=20=E6=94=AF=E4=BB=98=E5=AE=9D?= =?UTF-8?q?=E4=BD=99=E9=A2=9D=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/AliPay/AliPayController.java | 11 ++++ .../resource/MallProductController.java | 2 + .../com/mcwl/pay/service/AliPayService.java | 2 + .../pay/service/impl/AliPayServiceImpl.java | 62 +++++++++++++++---- 4 files changed, 65 insertions(+), 12 deletions(-) diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayController.java index 1bf4ce4..76ef5da 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayController.java @@ -3,6 +3,7 @@ package com.mcwl.web.controller.pay.AliPay; import cn.hutool.core.lang.UUID; import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.json.JSONUtil; +import com.alipay.api.AlipayApiException; import com.alipay.easysdk.factory.Factory; import com.mcwl.common.annotation.Anonymous; import com.mcwl.common.core.controller.BaseController; @@ -97,6 +98,16 @@ public class AliPayController extends BaseController { } } + /** + * 余额查询接口 + */ + @GetMapping("/balance") + @ResponseBody + public AjaxResult balance(@Valid @NotNull(message = "用户ID不能为空") Long userId) throws AlipayApiException { + String balance = aliPayService.balance(userId); + return AjaxResult.success(balance); + } + /** * 支付接口 diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java index 7336e4d..1d7eca4 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java @@ -75,9 +75,11 @@ public class MallProductController extends BaseController { String s = OssUtil.uploadMultipartFile(file); String fileName = file.getOriginalFilename(); + Map map = new HashMap<>(); map.put("fileName", fileName); map.put("url", s); + return AjaxResult.success(map); } diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/service/AliPayService.java b/mcwl-pay/src/main/java/com/mcwl/pay/service/AliPayService.java index 38044ae..6a492ed 100644 --- a/mcwl-pay/src/main/java/com/mcwl/pay/service/AliPayService.java +++ b/mcwl-pay/src/main/java/com/mcwl/pay/service/AliPayService.java @@ -12,4 +12,6 @@ public interface AliPayService { String pointsPay(Double paymentAmount) throws Exception; AjaxResult fetch(String outBizNo, String amount) throws AlipayApiException; + + String balance(Long userId) throws AlipayApiException; } diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java b/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java index fdba716..cc70c9c 100644 --- a/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java +++ b/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java @@ -297,18 +297,41 @@ public class AliPayServiceImpl implements AliPayService { } } - private AlipayConfig getAlipayConfig() { - String privateKey = aliConfig.getPrivateKey(); - String alipayPublicKey = aliConfig.getPublicKey(); - AlipayConfig alipayConfig = new AlipayConfig(); - alipayConfig.setServerUrl(aliConfig.getGatewayUrl()); - alipayConfig.setAppId(aliConfig.getAppId()); - alipayConfig.setPrivateKey(privateKey); - alipayConfig.setFormat("json"); - alipayConfig.setAlipayPublicKey(alipayPublicKey); - alipayConfig.setCharset("UTF-8"); - alipayConfig.setSignType("RSA2"); - return alipayConfig; + @Override + public String balance(Long userId) throws AlipayApiException { + // 初始化SDK + AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); + + // 构造请求参数以调用接口 + AlipayFundAccountQueryRequest request = new AlipayFundAccountQueryRequest(); + AlipayFundAccountQueryModel model = new AlipayFundAccountQueryModel(); + + SysUserPayAccount sysUserPayAccount = sysUserPayAccountService + .lambdaQuery() + .eq(SysUserPayAccount::getUserId, userId) + .eq(SysUserPayAccount::getType, 0) + .one(); + if (Objects.isNull(sysUserPayAccount)) { + return "fail"; + } + + // 设置支付宝openId + model.setAlipayOpenId("2021005114616085"); + + // 设置查询的账号类型 + model.setAccountType("ACCTRANS_ACCOUNT"); + + request.setBizModel(model); + AlipayFundAccountQueryResponse response = alipayClient.execute(request); + + if (response.isSuccess()) { + System.out.println("调用成功"); + return response.getAvailableAmount(); + } else { + System.out.println("调用失败"); + return "fail"; + } + } @Override @@ -352,4 +375,19 @@ public class AliPayServiceImpl implements AliPayService { } } + + + private AlipayConfig getAlipayConfig() { + String privateKey = aliConfig.getPrivateKey(); + String alipayPublicKey = aliConfig.getPublicKey(); + AlipayConfig alipayConfig = new AlipayConfig(); + alipayConfig.setServerUrl(aliConfig.getGatewayUrl()); + alipayConfig.setAppId(aliConfig.getAppId()); + alipayConfig.setPrivateKey(privateKey); + alipayConfig.setFormat("json"); + alipayConfig.setAlipayPublicKey(alipayPublicKey); + alipayConfig.setCharset("UTF-8"); + alipayConfig.setSignType("RSA2"); + return alipayConfig; + } }