mcpField
A
autumn-add-payments

autumn-add-payments

github.com/useautumn開発154 回インストール4 週間前に更新
リポジトリ

autumn-add-payments について

Autumn Paymentsは、Stripeチェックアウトを使ったAutumnの決済フロー実装ガイドです。チェックアウトと購入確定、商品シナリオ、前払い数量、Reactおよびバックエンドの連携要点を扱います。

主な機能

  1. 01チェックアウトと購入確定のフロー
  2. 02アップグレード・ダウングレード・解約に対応
  3. 03前払い商品の数量指定
  4. 04Reactとバックエンドの実装ガイド
  5. 05よくある連携上の注意点

活用シーン

  1. 01サブスクリプションのチェックアウト構築
  2. 02顧客の商品状況に応じた操作の表示
  3. 03座席制または前払い商品の販売

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/useautumn/skills --skill autumn-add-payments

インストール後、Claude Code で/autumn-add-paymentsを入力して読み込まれたか確認します。

詳細

Autumn Payments

コード例と最新の API については、必ず docs.useautumn.com を参照してください。

Autumn は、Stripe のチェックアウト、アップグレード、ダウングレード、キャンセルを自動的に処理します。


クイックリファレンス

決済フロー
  1. checkout - Stripe の URL(新規顧客の場合)またはプレビュー情報(既存顧客の場合)を返します
  2. attach - 登録済みカードがある場合に購入を確定します
チェックアウト結果
フィールド説明
urlStripe のチェックアウト URL(登録済みカードがある場合は null)
productシナリオを含む対象製品
current_product顧客が現在利用している製品
lines請求書の明細項目
total通貨の基本単位での金額
currency通貨コード

製品のシナリオ

シナリオ意味アクション
new未登録登録
active現在のプラン現在のプラン
scheduled予約済み予約済み
upgrade上位のティアアップグレード
downgrade下位のティアダウングレード
renewキャンセル済み更新

React の実装

import { useCustomer, usePricingTable } from "autumn-js/react";

const { checkout, attach } = useCustomer();
const { products } = usePricingTable();

// Checkout flow
const data = await checkout({ productId: "pro" });
if (data.url) {
  window.location.href = data.url;  // New customer
} else {
  // Show confirmation dialog, then:
  await attach({ productId: "pro" });
}

// Cancel
const { cancel } = useCustomer();
await cancel({ productId: "pro" });
// Or downgrade to free:
await attach({ productId: "free" });

バックエンドの実装

import { Autumn } from "autumn-js";

const autumn = new Autumn({ secretKey: process.env.AUTUMN_SECRET_KEY });

// Checkout
const { data } = await autumn.checkout({ customer_id, product_id: "pro" });
if (data.url) return redirect(data.url);

// Attach (after user confirms)
await autumn.attach({ customer_id, product_id: "pro" });

// Get products with scenarios
const { data: productsData } = await autumn.products.list({ customer_id });

プリペイド料金

シート数ベースまたはプリペイド製品の場合は、数量を渡します。

await autumn.checkout({
  customer_id,
  product_id: "credits_pack",
  options: [{ feature_id: "credits", quantity: 500 }],
});

ボタンテキストのパターン

function getButtonText(product: Product): string {
  const { scenario, properties } = product;
  if (properties?.has_trial) return "Start Trial";
  if (scenario === "active") return "Current Plan";
  
  const text = { upgrade: "Upgrade", downgrade: "Downgrade", new: "Subscribe" };
  return text[scenario] ?? "Enable";
}

よくある注意点

  1. URL フィールド - data.checkout_url ではなく data.url です
  2. 独自のロジックを実装しない - シナリオには products.list を使用します
  3. 日割り計算は自動 - Autumn がアップグレード/ダウングレードの日割り計算を処理します
  4. 無料プランでキャンセル - 即時キャンセルするより、無料プランを紐付けることをおすすめします
  5. 成功 URL - Stripe のチェックアウト後にリダイレクトするには、success_url を渡します

リソース

コメント