fix(server): selfhost subscription customer portal creation (#10149)

This commit is contained in:
forehalo
2025-02-13 08:23:28 +00:00
parent ea95ff39c5
commit ab538ef9bb
2 changed files with 6 additions and 9 deletions

View File

@@ -222,11 +222,8 @@ export class LicenseService implements OnModuleInit {
await this.fetchAffinePro(`/api/team/licenses/${license.key}/seats`, {
method: 'POST',
body: JSON.stringify({
quantity: count,
seats: count,
}),
headers: {
'Content-Type': 'application/json',
},
});
// stripe payment is async, we can't directly the charge result in update calling

View File

@@ -228,24 +228,24 @@ export class LicenseController {
@Post('/:license/create-customer-portal')
async createCustomerPortal(@Param('license') key: string) {
const invoice = await this.db.invoice.findFirst({
const subscription = await this.db.subscription.findFirst({
where: {
targetId: key,
},
});
if (!invoice) {
if (!subscription || !subscription.stripeSubscriptionId) {
throw new LicenseNotFound();
}
const invoiceData = await this.stripe.invoices.retrieve(
invoice.stripeInvoiceId,
const subscriptionData = await this.stripe.subscriptions.retrieve(
subscription.stripeSubscriptionId,
{
expand: ['customer'],
}
);
const customer = invoiceData.customer as Stripe.Customer;
const customer = subscriptionData.customer as Stripe.Customer;
try {
const portal = await this.stripe.billingPortal.sessions.create({
customer: customer.id,