📚

Stripeの従量課金WIP

2025/01/26に公開

ページ作成ができるサービス

1ページ目月額5000円
2ページ目以降は1ページごと月額1000円の
ユースケース

以下

新規でサブスクを登録する時
  async createSubscription(data: {customerId: string, priceId: string, quantity: number}) {
    try {
      return await this.stripe.subscriptions.create({
        customer: data.customerId,
        items: [{
          price: data.priceId,
          quantity: data.quantity || 1
        }]
      })
    } catch (error: any) {
      throw createError({
        statusCode: error.statusCode || 500,
        statusMessage: error.message,
      });
    }
  }

ページ数を変更する時

  async updateSubscriptionQuantity(subscriptionId: string, quantity: number) {
    try {
      const subscription = await this.stripe.subscriptions.retrieve(subscriptionId);
      const subscriptionItem = subscription.items.data[0];
      
      await this.stripe.subscriptionItems.update(subscriptionItem.id, {
        quantity: quantity,
        proration_behavior: 'always_invoice', // 即時の日割り計算を有効化
      });

      return {
        status: 'success',
        message: 'Subscription quantity updated successfully'
      };
    } catch (error: any) {
      throw createError({
        statusCode: 400,
        message: error.message || 'Failed to update subscription quantity'
      });
    }
  }

一番シンプルに実装

Discussion