DEVELOPER TOOLS
自分の SaaS に決済機能を、1 分で。
言語と商品 ID を選ぶだけ。コピペで完成する、myAI ライセンス検証のコード。 月額課金・解約・返金は myAI が全部代行します。
1. あなたの商品 ID を入力
myAI で出品した商品の URL /p/<ここ> 部分。 未入力ならサンプル ID で表示します。
2. 言語 / フレームワークを選ぶ
3. コピーして貼り付け
// app/api/auth/check/route.ts
// SaaS の認証ミドルウェアやログイン処理で呼び出す
import { NextResponse } from 'next/server'
const MY_PRODUCT_ID = 'ff54e65a-c136-4268-8d70-4448589dd37b'
export async function POST(request: Request) {
const { license_key } = await request.json()
const res = await fetch(
'https://my-ai.community/api/v1/license/verify',
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ license_key }),
cache: 'no-store',
}
)
const data = await res.json()
// myAI 上の自分の商品で、かつ active な契約か検証
if (!data.active || data.product_id !== MY_PRODUCT_ID) {
return NextResponse.json(
{ ok: false, reason: data.reason ?? 'invalid' },
{ status: 401 }
)
}
// data.buyer_external_id を SaaS 側のユーザーアカウントに紐づけ
return NextResponse.json({
ok: true,
external_id: data.buyer_external_id,
expires_at: data.expires_at,
})
}API レスポンス
有効な契約のとき
{
"active": true,
"product_id": "...",
"buyer_external_id": "...",
"expires_at": null,
"billing_type": "monthly"
}無効 / 解約済み
{
"active": false,
"reason": "not_found"
| "canceled"
| "expired"
| "invalid_request"
}API は CORS 全開放、認証不要 (ライセンスキー本体で判定)。 IP あたり 60 リクエスト / 60 秒の rate limit あり。SaaS 側は 60 秒キャッシュ推奨。
このコード 1 つで、消える手間
- ✓ Stripe アカウントの開設・審査
- ✓ クレジットカード入力 UI の実装
- ✓ 月額課金の自動処理コード
- ✓ 解約・返金の処理コード
- ✓ カード期限切れのリトライ
- ✓ 領収書 / インボイスの自動発行
- ✓ 消費税の計算・申告・納付
- ✓ 特定商取引法に基づく表記
- ✓ チャージバック対応
- ✓ 課金に関するカスタマーサポート
- ✓ 確定申告用の売上集計
- ✓ 個人事業主登録 (業務委託料受領者として処理)
まずは自分の SaaS を myAI に登録
無料登録後、出品フォームから 5 分で販売開始。決済機能は myAI 側で全部用意済。