feat(pay): 添加支付宝绑定状态查询
parent
1a56de7de0
commit
32a50b8394
|
@ -32,6 +32,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Pattern;
|
||||
import java.io.FileNotFoundException;
|
||||
|
@ -84,6 +85,7 @@ public class AliPayController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "支付宝绑定")
|
||||
@GetMapping("/generateQrCode")
|
||||
@ResponseBody
|
||||
public R<String> generateQrCode(HttpServletResponse response) throws Exception {
|
||||
String scope = "auth_user"; // 需要获取用户信息
|
||||
String appId = aliConfig.getAppId();
|
||||
|
@ -99,6 +101,16 @@ public class AliPayController extends BaseController {
|
|||
return R.ok("成功", authUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付宝绑定状态查询
|
||||
*/
|
||||
@GetMapping("/queryBindStatus")
|
||||
@ApiOperation(value = "支付宝绑定状态查询")
|
||||
public R<Object> queryTradeStatus() throws Exception {
|
||||
|
||||
return aliPayService.queryBindStatus();
|
||||
}
|
||||
|
||||
/**
|
||||
* 授权回调
|
||||
*
|
||||
|
|
|
@ -143,11 +143,11 @@ mall:
|
|||
alipayCertPath: cert/dev/alipayPublicCert.crt
|
||||
# 沙箱支付宝根证书路径
|
||||
alipayRootCertPath: cert/dev/alipayRootCert.crt
|
||||
notifyUrl: https://53a65908.r27.cpolar.top/ali/pay/notify
|
||||
notifyUrl: https://1e312ae8.r27.cpolar.top/ali/pay/notify
|
||||
# 沙箱支付宝网关
|
||||
gatewayUrl: https://openapi-sandbox.dl.alipaydev.com/gateway.do
|
||||
# 绑定回调
|
||||
bindUrl: https://4b0ca615.r27.cpolar.top/ali/pay/callback
|
||||
bindUrl: https://1e312ae8.r27.cpolar.top/ali/pay/callback
|
||||
|
||||
huawei:
|
||||
obs:
|
||||
|
|
|
@ -22,4 +22,6 @@ public interface AliPayService {
|
|||
R<Object> queryTradeStatus(String outTradeNo) throws Exception;
|
||||
|
||||
PayVo walletPay(Double amount) throws Exception;
|
||||
|
||||
R<Object> queryBindStatus();
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import com.alipay.easysdk.kernel.Config;
|
|||
import com.alipay.easysdk.payment.common.models.AlipayTradeCancelResponse;
|
||||
import com.alipay.easysdk.payment.common.models.AlipayTradeQueryResponse;
|
||||
import com.alipay.easysdk.payment.facetoface.models.AlipayTradePrecreateResponse;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.mcwl.common.JSONUtils;
|
||||
import com.mcwl.common.core.domain.AjaxResult;
|
||||
import com.mcwl.common.core.domain.R;
|
||||
|
@ -287,6 +288,33 @@ public class AliPayServiceImpl implements AliPayService {
|
|||
return payVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询支付宝账户绑定状态
|
||||
*
|
||||
* @return 0:未绑定,1:已绑定
|
||||
*/
|
||||
@Override
|
||||
public R<Object> queryBindStatus() {
|
||||
|
||||
// 查询redis中支付宝绑定状态
|
||||
String bindStatus = redisCache.getCacheObject("alipay:bind:user:status:" + SecurityUtils.getUserId());
|
||||
|
||||
if (Objects.nonNull(bindStatus)) {
|
||||
return R.ok(bindStatus);
|
||||
}
|
||||
|
||||
SysUserPayAccount sysUserPayAccount = sysUserPayAccountService.lambdaQuery()
|
||||
.eq(SysUserPayAccount::getUserId, SecurityUtils.getUserId())
|
||||
.one();
|
||||
|
||||
if (Objects.isNull(sysUserPayAccount)) {
|
||||
redisCache.setCacheObject("alipay:bind:user:status:", 0, 4, TimeUnit.SECONDS);
|
||||
return R.ok(0);
|
||||
}
|
||||
redisCache.setCacheObject("alipay:bind:user:status:", 1, 4, TimeUnit.SECONDS);
|
||||
return R.ok(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付宝转账方法
|
||||
*
|
||||
|
@ -459,12 +487,15 @@ public class AliPayServiceImpl implements AliPayService {
|
|||
userPayAccount.setOpenId(openId);
|
||||
userPayAccount.setType(0);
|
||||
sysUserPayAccountService.save(userPayAccount);
|
||||
redisCache.setCacheObject("alipay:bind:user:status:", 1, 4, TimeUnit.SECONDS);
|
||||
return "success";
|
||||
} else {
|
||||
System.out.println("绑定失败:" + response.getSubMsg());
|
||||
redisCache.setCacheObject("alipay:bind:user:status:", 0, 4, TimeUnit.SECONDS);
|
||||
return "fail";
|
||||
}
|
||||
} catch (AlipayApiException e) {
|
||||
redisCache.setCacheObject("alipay:bind:user:status:", 0, 4, TimeUnit.SECONDS);
|
||||
return "fail";
|
||||
}
|
||||
|
||||
|
@ -545,13 +576,13 @@ public class AliPayServiceImpl implements AliPayService {
|
|||
// 设置应用公钥证书路径(线上)
|
||||
// config.setAppCertPath(getClass().getResource("/cert/appCertPublicKey.crt").getPath());
|
||||
// 设置应用公钥证书路径(沙箱)
|
||||
config.setAppCertPath(ResourceUtils.getFile("classpath:"+aliConfig.getAppCertPath()).getAbsolutePath());
|
||||
config.setAppCertPath(ResourceUtils.getFile("classpath:" + aliConfig.getAppCertPath()).getAbsolutePath());
|
||||
|
||||
// 设置支付宝公钥证书路径
|
||||
config.setAlipayPublicCertPath(ResourceUtils.getFile("classpath:"+aliConfig.getAlipayCertPath()).getAbsolutePath());
|
||||
config.setAlipayPublicCertPath(ResourceUtils.getFile("classpath:" + aliConfig.getAlipayCertPath()).getAbsolutePath());
|
||||
|
||||
// 设置支付宝根证书路径
|
||||
config.setRootCertPath(ResourceUtils.getFile("classpath:"+aliConfig.getAlipayRootCertPath()).getAbsolutePath());
|
||||
config.setRootCertPath(ResourceUtils.getFile("classpath:" + aliConfig.getAlipayRootCertPath()).getAbsolutePath());
|
||||
|
||||
// 设置字符编码格式
|
||||
config.setCharset("UTF-8");
|
||||
|
|
Loading…
Reference in New Issue