開発者はいつもstripeはAPI経由で使っているので
いざ、stripeそのものの商品のサブスクリプションを作ろうとなると
「え?いつもAPIだから…なんかstripeそのものの決済画面とか逆にあまりやったことないんですよね」
ということになります。
逆に個人は「APIとかわからないからstripeのサブスクリプションの画面で充分で何をどうしたらいい?」
という状態かと思います。
今日は普段はあまりかかないような個人向けのstripeのサブスクリプションの設定方法を書こうと思います。
まず、
ストライプの画面の左下に「開発者」というメニューがあるのでそれをクリックします。
すると「API KEY」というメニューがあるのでそれをクリック
そこに公開可能キーと「シークレットキー」というものがあります。
シークレットキーは初めは見れないようになってるので表示してみてください
たぶんsk_live_xxxxxxxというような文字列があると思います。
それをコピーしましょう。
そしてmac前提ですが、
macのファインダーのアプリケーションのユーティリティの中にあるターミナルを開きます。
黒い画面が開きますね
(エンジニアだと「え?このレベルから?」と思ってしまいますが本日は個人向けの話ですのでここでそっと閉じましょう。逆にこの情報が必要だという方は読み進めてください)
そのターミナルの画面で、
このようなコードを実行します
curl https://api.stripe.com/v1/products \
-u sk_live_xxxxxxxxxxxxx: \
-d "name=コミュニティ参加費" \
-d "description=コミュニティ参加費1ヶ月の金額です。コミュニティは3ヶ月継続します。途中解約はできませんのでご了承ください。"
そうするとすぐその下に
{
"id": "prod_monyamonya",
"object": "product",
"active": true,
"attributes": [],
"created": 1739886973,
"default_price": null,
"description": "コミュニティ参加費1ヶ月の金額です。コミュニティは3ヶ月継続します。途中解約はできませんのでご了承ください。",
"images": [],
"livemode": true,
"marketing_features": [],
"metadata": {},
"name": "コミュニティ参加費",
"package_dimensions": null,
"shippable": null,
"statement_descriptor": null,
"tax_code": null,
"type": "service",
"unit_label": null,
"updated": 173988611973,
"url": null
}%
というようなコードがでます。
これができたら第一ステップ成功です。
この表示の中のprod_monyamonya
がプロダクトIDというものです。
これを控えましょう。
そして次に
これを実行します。
curl https://api.stripe.com/v1/prices \
-u sk_live_xxxxxxxxx: \
-d "unit_amount=1500" \
-d "currency=jpy" \
-d "recurring[interval]=month" \
-d "product=prod_monyamonya"
もちろんxxxxxとprod_monyamonyaは変えてくださいね
この例はサブスクの料金は1500円の時です。
これを実行すると
すぐしたに
{
"id": "price_pppppppppp",
"object": "price",
"active": true,
"billing_scheme": "per_unit",
"created": 1739888140,
"currency": "jpy",
"custom_unit_amount": null,
"livemode": true,
"lookup_key": null,
"metadata": {},
"nickname": null,
"product": "prod_monyamonya",
"recurring": {
"aggregate_usage": null,
"interval": "month",
"interval_count": 1,
"meter": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"tax_behavior": "unspecified",
"tiers_mode": null,
"transform_quantity": null,
"type": "recurring",
"unit_amount": 1500,
"unit_amount_decimal": "1500"
}%
というのが表示されますこれの
“id”: “price_pppppppppp” を控えてください。
これをプライスIDといいます。
そして、
curl https://api.stripe.com/v1/checkout/sessions \
-u sk_live_xxxxxxxxxx: \
-d "success_url=https://example.com/success" \
-d "cancel_url=https://example.com/cancel" \
-d "payment_method_types[]"="card" \
-d "mode"="subscription" \
-d "line_items[0][price]"="price_pppppppp" \
-d "line_items[0][quantity]"=1 \
-d "custom_text[terms_of_service_acceptance][message]"="サブスクリプションを確定すると、FIELDサービスがその規約に従って今後の支払いをお客様に請求することを許可することになります。" \
-d "consent_collection[terms_of_service]=required"
これのsk_live_xxxxxxxxははじめに置き換えたidにしてください
そしてprice_ppppppはさきほどゲットしたプライスIDにおきかえてください
今はFIELDサービスという名前になっていますから自分のサービスに名に変えてください
そして実行します。(実行はenter)
これを実行すると長々したコードがでてきますが
"url": "https://checkout.stripe.com/c/pay/cs_live_afgawttqataqgtagyjaogawiogaowigawgiawgioawgioawgta"
みたいな部分のURLをコピーしてください
それが決済画面です。
そして、
あなたのstripeの商品の管理者画面にも新しく商品が追加されていることでしょう。
こんな感じでつくっていきます。
同意文などを変えたい場合は文言を調整してください。