StripeのPayment Linksを使用して支払リンクを作成する場合、クエリストリングを利用して「クーポンコードを適用した状態」にすることができます。
支払いリンクの、クーポンコードを有効化する
クーポンコードを適用するには、作成した支払いリンクでクーポンコードを設定できるようにする必要があります。
新しく支払いリンクを作成する際か、作成済みの支払いリンクを編集して、「クーポンコードを許可」をオンにしましょう。
クーポンとクーポンコードを作成する
ダッシュボードからクーポンを作成しましょう。
URL: https://dashboard.stripe.com/test/coupons/create
最低限設定が必要な項目
- 名前: 管理画面で表示される名前
- タイプ: 割引の種類。定額かパーセントでの割引かを選択
- 割引率・割引額: どれだけ割引するか
- 期間: サブスクリプションで利用する場合の有効期間。
クーポンコードを発行する
作成したクーポンを利用できるようにするため、クーポンコードも設定します。
[顧客に表示されるクーポンコード]をオンにすると、クーポン作成画面でコードも発行できます。
prefilled_promo_code
でクーポンコードを設定する
クーポンコードが作成できたら、あとはURLに設定するだけです。
Payment Linksで作成したURLに、prefilled_promo_code
文字列を追加しましょう。
例:https://buy.stripe.com/test_XXXX?prefilled_promo_code=XXXX
このURLにアクセスすると、クーポンコードが設定された状態の支払い画面が表示されます。
応用編: 特別割引オファー付きの支払いリンクを生成・共有する
この機能と、クーポンコード生成のAPIを活用することで、特別な割引オファー付きリンクを生成できます。
以下のサンプルでは、1回限り・期限付きのクーポンコードを発行し、支払いリンクURLに追加しています。
import dayjs from 'dayjs'
const createSpecialOfferLink = async (customerId: string) => {
// 顧客データを取得
const customer = await stripe.customers.retrieve(customerId)
if (customer.deleted) return null
/**
* クーポンコードを作成。
* 1回しか使えない&有効期限付きにすることで、実質その人限定にする
**/
const { code: promoCode } = await stripe.promotionCodes.create({
coupon: 'YOUR_COUPON_ID',
max_redemptions: 1,
expires_at: dayjs().add(7, 'day').unix()
})
// URLを作成
const specialOfferLink = `https://buy.stripe.com/test_xxxx?${[
`prefilled_promo_code=${promoCode}`,
(customer as any).email ? `prefilled_email=${encodeURIComponent((customer as any).email)}`: ''
].filter(Boolean).join('&')}`
return specialOfferLink
}
この処理をCRMやStripeのWebhook・自社サービスのバッチシステムなどに組み込むことで、LINEやメールで顧客に特別セールの案内を簡単に出せるようになります。
また、支払いリンクのみを利用して決済を提供している場合でも、セールや割引オファーの提示ができます。
ぜひビジネスのプロモーションやカスタマーサクセスなどの企画として、ご検討ください。
[PR] Stripe開発者向け情報をQiitaにて配信中!
- [Stripe Updates]:開発者向けStripeアップデート紹介・解説
- ユースケース別のStripe製品や実装サンプルの紹介
- Stripeと外部サービス・OSSとの連携方法やTipsの紹介
- 初心者向けのチュートリアル(予定)
など、Stripeを利用してオンラインビジネスを始める方法について週に2〜3本ペースで更新中です。