feat(payment): 支付宝余额查询

master
yang 2025-02-07 15:27:03 +08:00
parent 415e25cdd7
commit 7e0540104f
4 changed files with 65 additions and 12 deletions

View File

@ -3,6 +3,7 @@ package com.mcwl.web.controller.pay.AliPay;
import cn.hutool.core.lang.UUID; import cn.hutool.core.lang.UUID;
import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alipay.api.AlipayApiException;
import com.alipay.easysdk.factory.Factory; import com.alipay.easysdk.factory.Factory;
import com.mcwl.common.annotation.Anonymous; import com.mcwl.common.annotation.Anonymous;
import com.mcwl.common.core.controller.BaseController; 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);
}
/** /**
* *

View File

@ -75,9 +75,11 @@ public class MallProductController extends BaseController {
String s = OssUtil.uploadMultipartFile(file); String s = OssUtil.uploadMultipartFile(file);
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("fileName", fileName); map.put("fileName", fileName);
map.put("url", s); map.put("url", s);
return AjaxResult.success(map); return AjaxResult.success(map);
} }

View File

@ -12,4 +12,6 @@ public interface AliPayService {
String pointsPay(Double paymentAmount) throws Exception; String pointsPay(Double paymentAmount) throws Exception;
AjaxResult fetch(String outBizNo, String amount) throws AlipayApiException; AjaxResult fetch(String outBizNo, String amount) throws AlipayApiException;
String balance(Long userId) throws AlipayApiException;
} }

View File

@ -297,18 +297,41 @@ public class AliPayServiceImpl implements AliPayService {
} }
} }
private AlipayConfig getAlipayConfig() { @Override
String privateKey = aliConfig.getPrivateKey(); public String balance(Long userId) throws AlipayApiException {
String alipayPublicKey = aliConfig.getPublicKey(); // 初始化SDK
AlipayConfig alipayConfig = new AlipayConfig(); AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
alipayConfig.setServerUrl(aliConfig.getGatewayUrl());
alipayConfig.setAppId(aliConfig.getAppId()); // 构造请求参数以调用接口
alipayConfig.setPrivateKey(privateKey); AlipayFundAccountQueryRequest request = new AlipayFundAccountQueryRequest();
alipayConfig.setFormat("json"); AlipayFundAccountQueryModel model = new AlipayFundAccountQueryModel();
alipayConfig.setAlipayPublicKey(alipayPublicKey);
alipayConfig.setCharset("UTF-8"); SysUserPayAccount sysUserPayAccount = sysUserPayAccountService
alipayConfig.setSignType("RSA2"); .lambdaQuery()
return alipayConfig; .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 @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;
}
} }