推奨エントリーポイント
これは AI アシスト開発の主要入口ページです。AI コーディングエージェントが使用する最新のwaffo-pancake スキル構造に対応しています:Waffo Pancake の適用場面、統合パスの選び方、商品モデリング、安全なリリース方法をカバーします。
AI コーディングアシスタントに伝えるだけ:
SKILL.md が必要なときに下の公式 Skill 入口を開いてください。
完全なプロンプト
エージェントに完全な統合パスを計画・実装させたい場合は、このプロンプトを使用してください:Official Waffo Pancake Skill
AI インテグレーションページ内の公式 Skill 入口です。開くと、チームが使っている標準
SKILL.md を表示、コピー、ダウンロードできます。@waffo/pancake-ts は Waffo Pancake 決済 API のサーバーサイド TypeScript クライアントです。リクエスト署名、チェックアウトセッション作成、Webhook 検証、GraphQL クエリを処理します。
よくある落とし穴 — 最初にお読みください
統合を壊すミスをまとめています。コードを書く前に必ず目を通してください。ユースケース
Waffo Pancake は merchant-of-record 決済プラットフォームです。SDK は以下のようなプロジェクトに適しています:- SaaS サブスクリプション課金 — 月額/年額プラン、アップグレード/ダウングレード(例:Free/Pro/Team ティア)
- デジタル商品販売 — 電子書籍、テンプレート、コース、ライセンスの単発購入
- 従量課金 — ダウンロード、API コール、レポート生成ごとに課金
- ハイブリッドモデル — サブスクリプション+単発購入の組み合わせ
インストールとセットアップ
PEM 鍵の取り扱い
エスケープ改行(最もシンプル):クイックスタート:ゼロから作成
クイックスタート:既存商品を使用
ダッシュボードですでに商品を作成済みの場合、Product ID をコピーしてそのままチェックアウトへ:API リファレンス
ストア
単発商品
digital_goods | saas | software | ebook | online_course | consulting | professional_service
サブスクリプション商品
サブスクリプション商品グループ
グループは共有トライアルとサブスクリプション商品間のプラン切替を可能にします。チェックアウトセッション
注文レベルパラメータと優先度
createSession に渡すパラメータで商品レベルの設定を上書きできます。AI 統合において優先度の理解は不可欠です:
Webhook統合の要点
Webhook を統合する際の重要なポイント:
典型的な Webhook ハンドラーパターン:
サブスクリプションのキャンセル
GraphQL クエリ
読み取り専用。ID 変数にはString! を使用してください(ID! ではありません)。
Webhook 検証
SDK には両環境の公開鍵が埋め込まれています。検証は関数呼び出し一回で完了します。Next.js App Router
Express
Hono
検証オプション
イベントタイプ
イベント構造
Webhook URL の設定
1 つのストアには複数の Webhook を登録でき、それぞれ異なるチャネル(http、feishu、discord、telegram、slack)に配信されます。チャネルと環境ごとに 1 件ずつ登録します:
Store.storeWebhooks フィールドを使います — これが唯一のクエリエントリポイントです。
エラーハンドリング
errors[0] が根本原因(最深層)、errors[n] が最も外側の呼び出し元です。
開発のヒント
- Webhook トンネリング — localtunnel ではなく
cloudflaredを使用してください(落とし穴の表を参照)。
-
冪等性は自動 — SDK は
merchantId + path + bodyから決定論的なキーを生成します。リトライは安全です。 -
Test → Prod ワークフロー — 商品はデフォルトで test 環境に作成されます。
.publish()で本番環境にプロモートします。Webhook イベントにはmode: "test" | "prod"が含まれるため、ハンドラーで区別できます。
クイックスタートチェックリスト
npm install @waffo/pancake-tsWAFFO_MERCHANT_IDとWAFFO_PRIVATE_KEY環境変数を設定(ダッシュボード → API と開発ページ上部のコピーボタンから取得)new WaffoPancake({ merchantId, privateKey })でクライアントを初期化- ストアを作成または参照
- マーチャントが複数のストアを持つ場合、商品をどのストアに作成するか確認
- 商品を作成または参照
- チェックアウトを作成:
client.checkout.createSession(...)→checkoutUrlにリダイレクト - テストカード
4576750000000110(成功)または4576750000000220(拒否)でサンドボックステスト - Webhook を処理:
verifyWebhook(rawBody, sig)— 必ずrequest.text()を使用 - Webhook URL を設定:
client.webhooks.add({ storeId, channel: "http", url, events, testMode })