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
1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
690
コミュニティ運営から 中の人に変わって感じたこと
hideokamoto
0
140
Developerが Developer Advocateになった話 / dev-rel-meetup-tokyo-71
hideokamoto
0
380
Jamstack開発者のための App Runner入門
hideokamoto
1
540
WordPressでの webサイト制作2022 / ngk2022s
hideokamoto
0
490
JavaScript(TypeScript)で メディアサイトを インフラから構築する方法 / jsconf-jp-2021
hideokamoto
2
4.4k
AWS上でStripeを利用したアプリをより安全にデプロイする方法 /jaws-pankration-2021
hideokamoto
1
240
Shifter Headlessと Headless WordPressの紹介
hideokamoto
0
2.2k
Stripe & Next.js + AWS Amplify で会員 + 定期課金機能 / JP_Stripes20210903
hideokamoto
7
3.3k
Other Decks in Technology
See All in Technology
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
4
2.3k
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
540
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
200
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
250
Kiroで書いた 設計書 が AI レビューの 採点基準 になる
ezaki
0
130
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
2k
AIチャット検索改善の3週間
kworkdev
PRO
2
140
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
320
IaC コードを資産へ:AWS CDK 社内ライブラリと横断展開 / aws-summit-japan-2026
gotok365
5
1.2k
マルチアカウント環境での コーディングエージェントを使った障害調査が大変なので AIエージェントにReadOnly権限を付与してみた / ReadOnly AI Agents for Multi-Account AWS Incident Response
yamaguchitk333
2
110
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
280
Android の公式 Skill / Android skills
yanzm
0
160
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
160
How to Talk to Developers About Accessibility
jct
2
240
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Mind Mapping
helmedeiros
PRO
1
250
Raft: Consensus for Rubyists
vanstee
141
7.5k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
950
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
750
Claude Code のすすめ
schroneko
67
230k
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 ” ͱ ͔ ʹ ॻ ͖ ͑ͯ ͓ ͜͏