Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Stripeを使った SaaSサービスでのプラン管理 / stripe_jp_kyoto_vol1

Stripeを使った SaaSサービスでのプラン管理 / stripe_jp_kyoto_vol1

JP_Stripes (Stripe ユーザーグループ)in KYOTO キックオフ

Hidetaka Okamoto

June 05, 2017
Tweet

More Decks by Hidetaka Okamoto

Other Decks in Technology

Transcript

  1. S t r i p e Λ ࢖ ͬ ͨ

    S a a S α ʔ Ϗ ε Ͱ ͷ ϓ ϥ ϯ ؅ ཧ J P _ S t r i p e s ( S t r i p e Ϣʔ βʔ άϧ ʔϓ ʣ i n K Y O T O Ω ο Ϋ Φ ϑ
  2. H i d e t a k a O k

    a m o t o • AMIMOTO / Shifter • WordBenchKyoto • WordCamp Kyoto 2017
  3. S h i f t e r ͷ ܾ ࡁ

    ؅ ཧ • Ϣʔβʔ৘ใ͸Amazon Cognito User PoolsͰ؅ཧ • ར༻ྉۚ͸StripeͷSubscriptionΛར༻ • ϓϥϯ੍ݶͳͲͷ৘ใ͸͢΂ͯStripeͷplans_metadataʹू໿
  4. S h i f t e r ͷ ϓ ϥ

    ϯ ੍ ݶ ʢ Ұ ෦ ʣ • ϓϩδΣΫτʢαΠτʣ࡞੒਺ • ಠࣗυϝΠϯઃఆͷՄ൱ • ֎෦αʔϏε࿈ܞ • etc…
  5. ϓ ϥ ϯ ৘ ใ ؅ ཧ ͷ ΞΠ σΟΞ

    • ΫϥΠΞϯτΞϓϦʹϋʔυίʔσΟϯά • APIόοΫΤϯυʹϋʔυίʔσΟϯά • ઐ༻ͷDBΛ࡞੒ͯ͠؅ཧ • ʁʁʁ
  6. ϓ ϥ ϯ ৘ ใ ؅ ཧ ͷ ΞΠ σΟΞ

    • ΫϥΠΞϯτΞϓϦʹϋʔυίʔσΟϯά • APIόοΫΤϯυʹϋʔυίʔσΟϯά • ઐ༻ͷDBΛ࡞੒ͯ͠؅ཧ • SaaSΛ࢖͏
  7. A P I ό ο Ϋ Τ ϯ υ ʹ

    ϋʔ υ ί ʔ σΟ ϯ ά • APIॲཧ෦෼ʹJSON / arrayͰϋʔυίʔσΟϯά • APIଆͰϓϥϯ੍ݶͷ൑ఆΛ͔͚΍͍͢ • APIԽ͓͚ͯ͠͹ϑϩϯτͰ΋࢖͑Δ • ϝϯςφϯεੑ࠷ѱ • ࠷ऴखஈɾԠٸॲஔతͳରԠ
  8. ઐ ༻ D B Λ ࡞ ੒ ͢ Δ •

    webΞϓϦͷఆੴ͸ͨͿΜ͜Ε • RDBͰ͋Ε͹Ϣʔβ৘ใͳͲͱͷϦϨʔγϣϯ΋૊ΊΔ • ϓϥϯ৘ใͳͲ΁ͷݕࡧ΋؆୯ • ϝϯςφϯεɾ؅ཧίετ͕૿͕͑ͪͳͷ͕τϨʔυΦϑ
  9. ϓ ϥ ϯ ৘ ใ ؅ ཧ ͷ ΞΠ σΟΞ

    • ΫϥΠΞϯτΞϓϦʹϋʔυίʔσΟϯά • APIόοΫΤϯυʹϋʔυίʔσΟϯά • ઐ༻ͷDBΛ࡞੒ͯ͠؅ཧ • SaaSΛ࢖͏
  10. S a a S Ͱ ϓ ϥ ϯ ৘ ใ

    ؅ ཧ • σʔλ؅ཧʹ࢖͑Δ֎෦αʔϏε͕ଟ਺͋Δ • ݕࡧ༏ઌͳΒ͹AlgoriaɺϫʔΫϑϩʔॏࢹͳΒkintoneͳͲɻɻɻ • ʮܾࡁʹStripe࢖͍ͬͯΔͳΒɺܾࡁपΓ͸·ͱΊͯ؅ཧ͠Α͏ʯ
  11. S t r i p e ϝλ σ ʔ λ

    Λ ࢖ ͬ ͨ ཧ ༝ • ੍ݶ஋ͷมߋ΍ϓϥϯ௥ՃͳͲ΁ͷରԠ଎౓Λ༏ઌ͔ͨͬͨ͠ • ݕࡧ͸ߟྀ͠ͳ͍σʔλ͹͔Γͩͬͨ • ݕࡧ͠ͳ͍ͳΒɺDBͰ͋Δඞཁ͸ͳ͍ • StripeͰ؅ཧ͢Ε͹ɺϓϥϯपΓ͕̍ՕॴͰ؅ཧͰ͖Δ
  12. Ϋ ϥ Π Ξ ϯ τΞ ϓ Ϧ Ͱ ͷ

    Φϖ Ϩ ʔ γ ϣ ϯ • API͔ΒStripeͷϓϥϯҰཡΛऔಘʢGET /v1/plans ʣ • API಺ͰϨεϙϯε͔Βෆཁͳ஋Λ࡟আ • ϓϥϯҰཡͷσʔλΛϑϩϯτʹදࣔ • customer_id / plan_idͰsubscriptionΛߋ৽
  13. ࣮ ࡍ ͷ ද ࣔ h t t p s

    : / / g o . g e t s h i f t e r. i o / # a c c o u n t
  14. A P I ό ο Ϋ Τ ϯ υ Ͱ

    ͷ Φϖ Ϩ ʔ γ ϣ ϯ • Cognito User Pools͔ΒStripeͷcustomer idΛऔಘ • ΧελϚʔ৘ใऔಘ(GET /v1/customers/{customer_id} • ΧελϚʔ৘ใ͔ΒϓϥϯϝλσʔλΛऔಘ • ϝλσʔλͷ஋Λ΋ͱʹɺϦΫΤετͷ࣮ߦՄ൱Λ൑அ
  15. T i p s ʢ ΍ Β ͔ ͠ ͨ

    ͜ ͱ ɾ ஫ ҙ ఺ ͳ Ͳ ʣ
  16. ϝλ σ ʔ λ ͷ ࣋ ͪ ํ ʹ ͭ

    ͍ͯ • Key - ValueܗࣜͰσʔλΛอ࣋͢Δ • Value͸͔ͳΒͣStringܕͰอଘ͞ΕΔ • true / falseͰ൑ఆ͢Δ࣌΋StringܕͰ൑ఆ͠Α͏
  17. A W S C o g n i t o

    U s e r P o o l s ͱ ͷ ૊ Έ ߹ Θ ͤ • Stripe plan΋AWS Cognito User Pools΋ϝλσʔλͰݕࡧͰ͖ͳ͍ • StripeʹCognito ͷUser ID , CognitoʹStripeͷCustomer IDΛอଘ • Ϣʔβʔऔಘ -> ΧελϜଐੑऔಘ -> Customerऔಘͱ͍͏खଓ͖ʹ
  18. A P I ͷ ύ ϑ Υ ʔϚ ϯε •

    GET v1/customer/{customer_id}ͷϨεϙϯε͸େ͖Ί • ϓϥϯϝλσʔλΛඞཁͱ͢Δ৔ॴ͕ଟ͍৔߹ɺ౎౓APIίʔϧ͸ඇޮ཰ • ඞཁʹԠͯ͡CognitoͷΧελϜଐੑ΍ઐ༻DB΁ͷΠϯσοΫε΋ݕ౼ • Ұݩ؅ཧ͢Δʹ͸Stripe APIΛ࢖ͬͨμογϡϘʔυ͕͋Δͱศར͔΋
  19. ϓ ϥ ϯ ϝλ σ ʔ λ Λ ݕ ࡧ

    ͠ ͨ ͍ ৔ ߹ • ݕࡧʹ͸ରԠ͍ͯ͠ͳ͍ • Sigmaʹplans_metadata͕͋Δ • ϑϩϯτ͔Β͸ఘΊΔʢผDBԽʣ
  20. S t r i p e A P I R

    e f e re n c e h t t p s : / / s t r i p e . c o m / d o c s / a p i
  21. E x a m p l e R e q

    u e s t ͷ ஋ ͸ ϩ άΠ ϯϢʔ βʔ ͷ ஋ h t t p s : / / s t r i p e . c o m / d o c s / a p i
  22. ϒϩ ά ΍ Q i i t a ʹ ॻ

    ͘ ͱ ͖ ͸ ɺ “ s k _ t e s t _ X X X X ” ͱ ͔ ʹ ॻ ͖ ׵ ͑ͯ ͓ ͜͏