feat(payment): 支付宝余额查询
parent
415e25cdd7
commit
7e0540104f
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付接口
|
* 支付接口
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue