LoginSignup
1
0

More than 1 year has passed since last update.

subscription for firebase extension stripe

Last updated at Posted at 2021-06-01

riotjs上で、これ以上シンプルにできないほど切り詰めた
定期購読機能を実装してみた。

今回は、商品はひとつでおこなっているため

有名なapp.jsのサンプルのように
<template>に商品リストを埋め込み表示、選択することもなく
subscribeボタンだけです。
まず、index.htmlの下のほうに追加
<script src='https://js.stripe.com/v3/'>
</script>

  • subscribeボタンの動作(onclick='{onsubscribe}')

すでに、定期購読なされていた場合、stripe上の請求書ページへ
でない場合、stripe上のカード支払いページへ

  • onsubscribe()の実装

サブスクされているかは?
/customers/{uid}/subscriptions/{id}.status のみ みよ!!

trialingまたはactiveなsubscriptionがあるか確認します。
firestore('/customers/{uid}/subscriptions/').where(status==('trialing' or 'active')).Snapshot(ss=>if(ss.empty){処理1へ}else{処理2へ})

処理1
firestore('/products/XYZ/prices/ABC')
※今回、一つしか無いので、クエらない(ABC直指定)

このpriceID(= ABCのこと)を含んだcheckout値※を
/customers/{uid}/checkout_sessions/に追加後
そのdocIdを以下の関数の引数に渡し、終了!!

Stripe('公開鍵').redirectToCheckout({docId})

※checkout値 {[taxRates],price:priceID,callbackUrlなど、その他の情報}

処理2
cloud functionで、引数に'戻りURL'のみ※を渡し、
'ext-firestore-stripe-subscriptions-createPortalLink'をコール
戻り値として、請求ページのURLが来るので、そこへ飛ぶ

※ cloud function内では、引数contextよりuidを参照できるため
 そのような情報は一切、渡さなくてもOKなのです。

今回は、以上です。
riotないの?この程度なら、想像におまかせします。w

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0