feat(payment): 支付宝转账集成邮件通知

master
yang 2025-02-07 12:29:45 +08:00
parent e09584800a
commit e44f6b8a0f
4 changed files with 25 additions and 26 deletions

View File

@ -0,0 +1,6 @@
# 发件人(必须正确,否则发送失败)
from = 2119157836@qq.com
# 密码注意某些邮箱需要为SMTP服务单独设置授权码
pass = wetaiadftmidejab
# 使用SSL安全连接
sslEnable = true

View File

@ -1,18 +1,6 @@
package com.mcwl.memberCenter; package com.mcwl.memberCenter;
import com.mcwl.McWlApplication;
import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.memberCenter.consumer.EmptyPointsRemindConsumer;
import com.mcwl.memberCenter.service.MemberLevelService;
import com.mcwl.memberCenter.service.MemberService;
import com.mcwl.memberCenter.task.UserMemberTask;
import com.mcwl.web.controller.memberCenter.MemberController;
import com.mcwl.web.controller.memberCenter.MemberLevelController;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
public class MemberCenterTest { public class MemberCenterTest {

View File

@ -30,6 +30,12 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<!-- Jackson --> <!-- Jackson -->
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>

View File

@ -1,7 +1,9 @@
package com.mcwl.pay.service.impl; package com.mcwl.pay.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID; import cn.hutool.core.lang.UUID;
import cn.hutool.extra.mail.MailUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayApiException;
@ -45,6 +47,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Objects; import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -240,8 +243,7 @@ public class AliPayServiceImpl implements AliPayService {
// 设置转账业务的标题 // 设置转账业务的标题
model.setOrderTitle("提现"); model.setOrderTitle("提现");
// 设置收款方信息 // 查询用户支付宝账户
SysUserPayAccount sysUserPayAccount = sysUserPayAccountService SysUserPayAccount sysUserPayAccount = sysUserPayAccountService
.lambdaQuery() .lambdaQuery()
.eq(SysUserPayAccount::getUserId, userId) .eq(SysUserPayAccount::getUserId, userId)
@ -251,25 +253,22 @@ public class AliPayServiceImpl implements AliPayService {
return AjaxResult.error("请先绑定支付宝账号"); return AjaxResult.error("请先绑定支付宝账号");
} }
// 收款方信息
Participant payeeInfo = new Participant(); Participant payeeInfo = new Participant();
payeeInfo.setIdentity(sysUserPayAccount.getOpenId()); payeeInfo.setIdentity(sysUserPayAccount.getOpenId());
payeeInfo.setIdentityType("ALIPAY_USER_ID"); payeeInfo.setIdentityType("ALIPAY_USER_ID");
model.setPayeeInfo(payeeInfo); model.setPayeeInfo(payeeInfo);
// 设置业务备注
// model.setRemark("201905代发");
// 设置转账业务请求的扩展参数
// model.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");
request.setBizModel(model); request.setBizModel(model);
AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request); AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
System.out.println(response.getBody()); System.out.println(response.getBody());
if (response.getCode().equals("40004")) { if (response.getSubCode().equals("PAYER_BALANCE_NOT_ENOUGH")) {
// 账户余额不足,发送邮件通知
// TODO 余额不足,发送邮件提现 ArrayList<String> tos = CollUtil.newArrayList("2119157836@qq.com");
String content = String.format("账户余额不足:用户%s提现%s", sysUser.getUserName(), amount);
MailUtil.send(tos, "上海辰风互娱", content, false);
return AjaxResult.error("系统繁忙,请稍后重试"); return AjaxResult.error("系统繁忙,请稍后重试");
} }