Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Stripeを使った SaaSサービスでのプラン管理 / stripe_jp_kyoto_vol1
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hidetaka Okamoto
June 05, 2017
Technology
990
1
Share
Stripeを使った SaaSサービスでのプラン管理 / stripe_jp_kyoto_vol1
JP_Stripes (Stripe ユーザーグループ)in KYOTO キックオフ
Hidetaka Okamoto
June 05, 2017
More Decks by Hidetaka Okamoto
See All by Hidetaka Okamoto
OpenAI APIで API Changelogを要約してみた話 / chatgpt-osaka-1
hideokamoto
0
670
コミュニティ運営から 中の人に変わって感じたこと
hideokamoto
0
120
Developerが Developer Advocateになった話 / dev-rel-meetup-tokyo-71
hideokamoto
0
360
Jamstack開発者のための App Runner入門
hideokamoto
1
530
WordPressでの webサイト制作2022 / ngk2022s
hideokamoto
0
480
JavaScript(TypeScript)で メディアサイトを インフラから構築する方法 / jsconf-jp-2021
hideokamoto
2
4.4k
AWS上でStripeを利用したアプリをより安全にデプロイする方法 /jaws-pankration-2021
hideokamoto
1
230
Shifter Headlessと Headless WordPressの紹介
hideokamoto
0
2.1k
Stripe & Next.js + AWS Amplify で会員 + 定期課金機能 / JP_Stripes20210903
hideokamoto
7
3.3k
Other Decks in Technology
See All in Technology
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
16k
扱える不確実性を増やしていく - スタートアップEMが考える「任せ方」
kadoppe
0
290
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.3k
AI時代 に増える データ活用先
takahal
0
210
クラウドネイティブな開発 ~ 認知負荷に立ち向かうためのコンテナ活用
literalice
0
120
AI時代のガードレールとしてのAPIガバナンス
nagix
0
250
#jawsugyokohama 100 LT11, "My AWS Journey 2011-2026 - kwntravel"
shinichirokawano
0
340
EarthCopilotに学ぶマルチエージェントオーケストレーション
nakasho
0
290
AzureのIaC管理からログ調査まで、随所に役立つSkillsとCustom-Instructions / Boosting IaC and Log Analysis with Skills
aeonpeople
0
220
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
マルチプロダクトの信頼性を効率良く保っていくために
kworkdev
PRO
0
150
AIが書いたコードを信じられない問題 〜レビュー負荷を下げるために変えたこと〜 / The AI Code Trust Gap: Reducing the Review Burden
bitkey
PRO
6
1.2k
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
260
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
450
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
890
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
530
The Pragmatic Product Professional
lauravandoore
37
7.2k
Navigating Weather and Climate Data
rabernat
0
170
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Skip the Path - Find Your Career Trail
mkilby
1
110
Transcript
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 Ω ο Ϋ Φ ϑ
· ͱ Ί • StripeͷϝλσʔλΛ͏͜ͱͰɺϓϥϯใΛҰݩཧ • webhookAPI͕๛ͳͷͰɺඞཁʹԠͯ͡֎෦DB࿈ܞͰ͖Δ • StripeΛ͍ࠐΜͰɺαʔϏεӡӦཧΛָʹ͍ͯ͜͠͏
H i d e t a k a O k
a m o t o • AMIMOTO / Shifter • WordBenchKyoto • WordCamp Kyoto 2017
None
S h i f t e r ͷ ܾ ࡁ
ཧ • ϢʔβʔใAmazon Cognito User PoolsͰཧ • ར༻ྉۚStripeͷSubscriptionΛར༻ • ϓϥϯ੍ݶͳͲͷใͯ͢Stripeͷplans_metadataʹू
S h i f t e r ͷ ϓ ϥ
ϯ ੍ ݶ ʢ Ұ ෦ ʣ • ϓϩδΣΫτʢαΠτʣ࡞ • ಠࣗυϝΠϯઃఆͷՄ൱ • ֎෦αʔϏε࿈ܞ • etc…
ϓ ϥ ϯ ใ Λ Ͳ ͜ Ͱ
ཧ ͢ ͖ ͔ʁ
ϓ ϥ ϯ ใ ཧ ͷ ΞΠ σΟΞ
• ΫϥΠΞϯτΞϓϦʹϋʔυίʔσΟϯά • APIόοΫΤϯυʹϋʔυίʔσΟϯά • ઐ༻ͷDBΛ࡞ͯ͠ཧ • ʁʁʁ
ϓ ϥ ϯ ใ ཧ ͷ ΞΠ σΟΞ
• ΫϥΠΞϯτΞϓϦʹϋʔυίʔσΟϯά • APIόοΫΤϯυʹϋʔυίʔσΟϯά • ઐ༻ͷDBΛ࡞ͯ͠ཧ • SaaSΛ͏
A P I ό ο Ϋ Τ ϯ υ ʹ
ϋʔ υ ί ʔ σΟ ϯ ά • APIॲཧ෦ʹJSON / arrayͰϋʔυίʔσΟϯά • APIଆͰϓϥϯ੍ݶͷఆΛ͔͚͍͢ • APIԽ͓͚ͯ͠ϑϩϯτͰ͑Δ • ϝϯςφϯεੑ࠷ѱ • ࠷ऴखஈɾԠٸॲஔతͳରԠ
ઐ ༻ D B Λ ࡞ ͢ Δ •
webΞϓϦͷఆੴͨͿΜ͜Ε • RDBͰ͋ΕϢʔβใͳͲͱͷϦϨʔγϣϯΊΔ • ϓϥϯใͳͲͷݕࡧ؆୯ • ϝϯςφϯεɾཧίετ͕૿͕͑ͪͳͷ͕τϨʔυΦϑ
ϓ ϥ ϯ ใ ཧ ͷ ΞΠ σΟΞ
• ΫϥΠΞϯτΞϓϦʹϋʔυίʔσΟϯά • APIόοΫΤϯυʹϋʔυίʔσΟϯά • ઐ༻ͷDBΛ࡞ͯ͠ཧ • SaaSΛ͏
S a a S Ͱ ϓ ϥ ϯ ใ
ཧ • σʔλཧʹ͑Δ֎෦αʔϏε͕ଟ͋Δ • ݕࡧ༏ઌͳΒAlgoriaɺϫʔΫϑϩʔॏࢹͳΒkintoneͳͲɻɻɻ • ʮܾࡁʹStripe͍ͬͯΔͳΒɺܾࡁपΓ·ͱΊͯཧ͠Α͏ʯ
S t r i p e ͷ ϝλ σ ʔ
λ Λ ͏
S t r i p e ϝλ σ ʔ λ
Λ ͬ ͨ ཧ ༝ • ੍ݶͷมߋϓϥϯՃͳͲͷରԠΛ༏ઌ͔ͨͬͨ͠ • ݕࡧߟྀ͠ͳ͍σʔλ͔Γͩͬͨ • ݕࡧ͠ͳ͍ͳΒɺDBͰ͋Δඞཁͳ͍ • StripeͰཧ͢ΕɺϓϥϯपΓ͕̍ՕॴͰཧͰ͖Δ
Ϋ ϥ Π Ξ ϯ τΞ ϓ Ϧ Ͱ ͷ
Φϖ Ϩ ʔ γ ϣ ϯ • API͔ΒStripeͷϓϥϯҰཡΛऔಘʢGET /v1/plans ʣ • APIͰϨεϙϯε͔ΒෆཁͳΛআ • ϓϥϯҰཡͷσʔλΛϑϩϯτʹදࣔ • customer_id / plan_idͰsubscriptionΛߋ৽
࣮ ࡍ ͷ ද ࣔ 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
A P I ό ο Ϋ Τ ϯ υ Ͱ
ͷ Φϖ Ϩ ʔ γ ϣ ϯ • Cognito User Pools͔ΒStripeͷcustomer idΛऔಘ • ΧελϚʔใऔಘ(GET /v1/customers/{customer_id} • ΧελϚʔใ͔ΒϓϥϯϝλσʔλΛऔಘ • ϝλσʔλͷΛͱʹɺϦΫΤετͷ࣮ߦՄ൱Λஅ
T i p s ʢ Β ͔ ͠ ͨ
͜ ͱ ɾ ҙ ͳ Ͳ ʣ
ϝλ σ ʔ λ ͷ ࣋ ͪ ํ ʹ ͭ
͍ͯ • Key - ValueܗࣜͰσʔλΛอ࣋͢Δ • Value͔ͳΒͣStringܕͰอଘ͞ΕΔ • true / falseͰఆ͢Δ࣌StringܕͰఆ͠Α͏
A W S C o g n i t o
U s e r P o o l s ͱ ͷ Έ ߹ Θ ͤ • Stripe planAWS Cognito User PoolsϝλσʔλͰݕࡧͰ͖ͳ͍ • StripeʹCognito ͷUser ID , CognitoʹStripeͷCustomer IDΛอଘ • Ϣʔβʔऔಘ -> ΧελϜଐੑऔಘ -> Customerऔಘͱ͍͏खଓ͖ʹ
A P I ͷ ύ ϑ Υ ʔϚ ϯε •
GET v1/customer/{customer_id}ͷϨεϙϯεେ͖Ί • ϓϥϯϝλσʔλΛඞཁͱ͢Δॴ͕ଟ͍߹ɺAPIίʔϧඇޮ • ඞཁʹԠͯ͡CognitoͷΧελϜଐੑઐ༻DBͷΠϯσοΫεݕ౼ • Ұݩཧ͢ΔʹStripe APIΛͬͨμογϡϘʔυ͕͋Δͱศར͔
ϓ ϥ ϯ ϝλ σ ʔ λ Λ ݕ ࡧ
͠ ͨ ͍ ߹ • ݕࡧʹରԠ͍ͯ͠ͳ͍ • Sigmaʹplans_metadata͕͋Δ • ϑϩϯτ͔ΒఘΊΔʢผDBԽʣ
· ͱ Ί • StripeͷϝλσʔλΛ͏͜ͱͰɺϓϥϯใΛҰݩཧ • webhookAPI͕๛ͳͷͰɺඞཁʹԠͯ͡֎෦DB࿈ܞͰ͖Δ • StripeΛ͍ࠐΜͰɺαʔϏεӡӦཧΛָʹ͍ͯ͜͠͏
༨ ஊ
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
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
ϒϩ ά Q i i t a ʹ ॻ
͘ ͱ ͖ ɺ “ s k _ t e s t _ X X X X ” ͱ ͔ ʹ ॻ ͖ ͑ͯ ͓ ͜͏