From 11ffa6685102f5cded95a4f3dafe9815410f9f2f Mon Sep 17 00:00:00 2001 From: xupei Date: Tue, 18 Feb 2025 14:09:27 +0800 Subject: [PATCH] =?UTF-8?q?stripe=20=E4=B8=80=E6=AC=A1=E8=AE=A2=E9=98=85?= =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ai/da/service/impl/StripeServiceImpl.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ai/da/service/impl/StripeServiceImpl.java b/src/main/java/com/ai/da/service/impl/StripeServiceImpl.java index 2706123b..33389291 100644 --- a/src/main/java/com/ai/da/service/impl/StripeServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/StripeServiceImpl.java @@ -357,7 +357,8 @@ public class StripeServiceImpl implements StripeService { case "manual": boolean b = invoice.getLines().getData().get(0).getDescription().endsWith("Subscription"); if (b) { - response = sendEmail(invoice.getSubscription(), "new", null); + // 非自动续订式订阅,Stripe不会创建Subscription,所以invoice中不会有subscriptionId + response = sendEmail(null, "new", paymentInfo.getOrderNo()); } break; } @@ -449,6 +450,7 @@ public class StripeServiceImpl implements StripeService { InvoiceLineItem invoiceLineItem = invoice.getLines().getData().get(0); String description = invoiceLineItem.getDescription(); Long amount = invoiceLineItem.getAmount(); + log.info("单次订阅 description : {}, amount: {}", description, amount); boolean b = createSubscriptionAndUpdateAccount(orderNo, orderByOrderNo.getAccountId(), description, amount); // 邮件通知用户 if (b){ @@ -581,7 +583,7 @@ public class StripeServiceImpl implements StripeService { subscriptionInfoMapper.insertIgnore(subscriptionInfo); - log.info("创建订阅更新账号信息"); + log.info("创建订阅, 更新账号信息"); // 更新账号到期时间 boolean b = accountService.updateAccountValidity(subscriptionInfo.getAccountId(), subscriptionInfo.getCurrentPeriodEnd()); // 更新账号身份和积分 @@ -953,6 +955,10 @@ public class StripeServiceImpl implements StripeService { }else if (!StringUtil.isNullOrEmpty(orderNo)) { qwSI.eq("order_no", orderNo); subscriptionInfo = subscriptionInfoMapper.selectOne(qwSI); + if (Objects.isNull(subscriptionInfo)){ + log.info("根据order_no:{},查询到的subscriptionInfo为空", orderNo); + return false; + } }else { log.info("不发送邮件,原因:【入参中的subscriptionId,orderNo均为空】"); return false;