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 Billingを導入してサブスクリプションを実装した話
Search
Ibuki KAWAMITSU
May 26, 2020
Programming
1
2.5k
Stripe Billingを導入してサブスクリプションを実装した話
2020年5月26日の #JP_Stripes さんの九州・沖縄の合同オンラインイベントで登壇した際に話した資料です。
Ibuki KAWAMITSU
May 26, 2020
Tweet
Share
More Decks by Ibuki KAWAMITSU
See All by Ibuki KAWAMITSU
GraphQL, Apollo Clientと状態管理
puremoru
1
630
この1年でNext.jsで学んだこと あれこれ
puremoru
0
140
エンジニア目線の「良い失敗」について
puremoru
0
120
BFF勉強会~BFF開発のベストプラクティスを探る研究の途中報告vol.1~
puremoru
2
120
Other Decks in Programming
See All in Programming
アセットのコンパイルについて
ojun9
0
120
TDD 実践ミニトーク
contour_gara
1
290
ProxyによるWindow間RPC機構の構築
syumai
3
1.1k
旅行プランAIエージェント開発の裏側
ippo012
2
890
2025 年のコーディングエージェントの現在地とエンジニアの仕事の変化について
azukiazusa1
21
11k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
310
Deep Dive into Kotlin Flow
jmatsu
1
290
RDoc meets YARD
okuramasafumi
4
170
Namespace and Its Future
tagomoris
6
700
Flutter with Dart MCP: All You Need - 박제창 2025 I/O Extended Busan
itsmedreamwalker
0
150
1から理解するWeb Push
dora1998
7
1.8k
私の後悔をAWS DMSで解決した話
hiramax
4
210
Featured
See All Featured
Fireside Chat
paigeccino
39
3.6k
The Language of Interfaces
destraynor
161
25k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Faster Mobile Websites
deanohume
309
31k
Bash Introduction
62gerente
615
210k
Being A Developer After 40
akosma
90
590k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Agile that works and the tools we love
rasmusluckow
330
21k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Rails Girls Zürich Keynote
gr2m
95
14k
Unsuck your backbone
ammeep
671
58k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Transcript
4USJQF#JMMJOHΛಋೖͯ͠ αϒεΫϦϓγϣϯ࣮ͨ͠
ࣗݾհ ຬาو ͔ΘΈͭ ͍Ϳ͖ גࣜձࣾ&#*-"#༗ݶձࣾΚͼϭϯδχΞ $0%&#"4&ϓϩάϥϛϯάεΫʔϧߨࢣ !QVSFNPSV ɾੜ·Εҭͪԭೄ ɾେֶ࣍ʹ3VCZΛ͖͔͚ͬʹϓϩάϥϛϯάΛ࢝ΊΔ ɾେֶ࣍ʹ౦ژͷελʔτΞοϓͰαʔϏεͷ্ཱ͔ͪ͛ΒϦϞʔτͰͷ
ɹΠϯλʔϯͱͯؔ͠ΘΔ ɾम͔࢜࣍Β&#*-"#ʹ8FCΤϯδχΞͱͯ͠ίϛοτ ɾ࠷ۙʮिҰOPUFνϟϨϯδʯͱ͍͏ͷΛͬͯ·͢ɻস ླྀٿେֶେֶӃใֶઐ߈म࢜࣍
+1@4USJQFTʹײँ
ڈͷ݄ࠒʹ։࠵͞Εͨ+1@4USJQFTԭೄ
લճΠϕϯτࢀՃલɿ4USJQFͦͦશવΘ͔ΒΜ ˣ લճΠϕϯτࢀՃޙɿͳΜ͔Ͱ͖ͦ͏ͳؾ͕͢Δ ˣ Χ݄ؒͷ։ൃظؒͰͳΜͱ͔αϒεΫ ࣮Ͱ͖ͨ ˣ ݱࡏɿΞτϓοτͷػձ͍͚ͨͩͯײँ
"HFOEB ɾࣗݾհ ɾΚͼ&#*-"#ͷհ ɾ4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ ɾαʔϏεશମͷߏʹ͍ͭͯ ɾ࣮ࡍͷ࣮खॱʹ͍ͭͯ
Κͼ &#*-"#ͬͯԿ͍ͬͯΔͷ
Κͼ&#*-"#ͷհ Ҏ্ଓ͘ɺҏͷฮͷҿ৯ళ
Κͼ&#*-"#ͷհ lγεςϜ։ൃzΛ͍ͬͯΔҿ৯ళ
Κͼ&#*-"#ͷհ גࣜձࣾ&#*-"#
Κͼ&#*-"#ͷհ ࣗͨͪͰγεςϜΛߏங͠ɺσʔλཧΛࣗಈԽ
Κͼ&#*-"#ͷհ
ଞͷҿ৯ళΛٹ͑ΔΈʹͳΔΜ͡Όͳ͍͔
Ϋϩεηϧσʔλ 01&/σʔλ૬ؔੳ Ξϯέʔτࣗಈऩू ళલϚʔέοτੳ
Κͼ&#*-"#ͷհ ࡢɺ.JDSPTPGUͷαςΟΞɾφσϥʹੈքΛද͢Δ%9ࣄྫͱͯ͠հ͞Εͨ
Κͼ&#*-"#ͷհ ʹαςΟΞɾφσϥʹӨڹΛ༩͑ͨਓͱͯ͠ฐࣾࣾһ͕հ͞Εͨ
"HFOEB ɾࣗݾհ ɾΚͼ&#*-"#ͷհ ɾ4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ ɾαʔϏεશମͷߏʹ͍ͭͯ ɾ࣮ࡍͷ࣮खॱʹ͍ͭͯ
4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ
4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ
4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ ɾ͋ΒΏΔഔମͱσʔλ࿈ܞΛߦ͏͜ͱͰ ɹళฮͷϦΞϧλΠϜͷσʔλΛՄࢹԽ ɹ͢Δ͜ͱ͕Ͱ͖Δ ɾ͓٬༷ͷχʔζʹ߹ΘͤͯΧελϚΠζΛߦ͏ ɹ͜ͱ͕Ͱ͖Δ ɾ༷ʑͳσʔλͱͷ࿈ܞΛߦ͏ͨΊ ࿈ܞʹඞཁͳ ɹσʔλΛ͓٬༷͔Β͘ඞཁ͕͋ͬͨΓͱɺܖ ɹ͕ܾ·͔ͬͯΒ࣮ࡍʹಋೖ։࢝͢Δ·Ͱͷظ͕ؒ
ɹ͋Δɻ
4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ ʮདྷ٬༧ଌ"*ʯΛऔΓ্͛ΒΕΔ͜ͱ͕ଟ͍
4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ 8FC݁Ͱ͖Δʮདྷ٬༧ଌ"*8FCʯΛ։ൃ
4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ 8FC݁·Ͱͷओͳ՝ ɾ༧ଌΛߦ͏ͨΊʹɺ͓٬༷ࣗͰച্ͳͲͷ ɹσʔλΛೖྗͯ͠͏ඞཁ͕͋ΔͷͰɺແཧͳ͘ ɹೖྗͯ͠Β͏ͨΊͷ6*69ઃܭ ɾຖ݄ͷࢧ͍ΛࣗಈͰߦͬͯΒ͍ɺ͔֤ͭϢʔβʔ ɹͷࢧঢ়گΛࣗಈͰཧͰ͖ΔΈ͕ඞཁ
4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ ɾ༧ଌΛߦ͏ͨΊʹɺ͓٬༷ࣗͰച্ͳͲͷ ɹσʔλΛೖྗͯ͠͏ඞཁ͕͋ΔͷͰɺແཧͳ͘ ɹೖྗͯ͠Β͏ͨΊͷ6*69ઃܭ ɾຖ݄ͷࢧ͍ΛࣗಈͰߦͬͯΒ͍ɺ͔֤ͭϢʔβʔ ɹͷࢧঢ়گΛࣗಈͰཧͰ͖ΔΈ͕ඞཁ 4USJQF#JMMJOHΛಋೖͯ͠ɺϢʔβʔͷࣗಈࢧͱࢧ ঢ়گΛཧͰ͖ΔͷͰͳ͍͔ͱߟ͑ͨ 8FC݁·Ͱͷओͳ՝
4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ IUUQTTUSJQFDPNKQCJMMJOH ෳͷϓϥϯΫʔϙϯτϥΠΞϧظؒͷઃఆͰ͖ɺ"1*ͷ༷ॻͱͯΘ͔Γқ͔ͬͨͷͰɺ ࣮ʹਐΉ͜ͱʹͳͬͨ
"HFOEB ɾࣗݾհ ɾΚͼ&#*-"#ͷհ ɾ4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ ɾαʔϏεશମͷߏʹ͍ͭͯ ɾ࣮ࡍͷ࣮खॱʹ͍ͭͯ
αʔϏεશମͷߏʹ͍ͭͯ ϑϩϯτΤϯυ αʔόʔαΠυ ܾࡁॲཧ Ϣʔβʔσʔλ ܾࡁσʔλ 8FC"1* ֎෦σʔλऔಘ ػցֶशͷ༧ଌ
"HFOEB ɾࣗݾհ ɾΚͼ&#*-"#ͷհ ɾ4USJQF#JMMJOHಋೖʹࢸͬͨഎܠ ɾαʔϏεશମͷߏʹ͍ͭͯ ɾ࣮ࡍͷ࣮खॱʹ͍ͭͯ
4USJQFͷμογϡϘʔυͰΛ࡞͢Δ
࡞ͨ͠ʹϓϥϯΛՃ͢Δ
4USJQFଆʹސ٬ͷొͱαϒεΫొΛߦΘͤΔ ͪ͜Βͷ8FCը໘Ͱܾࡁʹඞཁͳใ ొΛߦ͏ 4USJQF$IFDLPVUͷը໘
/VYU -BSBWFM 4USJQF#JMMJOHؒͷαϒεΫొϑϩʔ ܖ͢ΔϓϥϯͳͲͷೖྗใΛ -BSBWFMଆʹ͛Δ ೖྗใΛͱʹ $IFDLPVUͷTFTTJPO࡞ͷ ϦΫΤετΛૹΔ ࡞ͨ͠DIFDLPVUͷTFTTJPOΛ Ϩεϙϯεͱͯ͠ฦ͢
-BSBWFM͔Β࡞͞Εͨ TFTTJPOΛड͚औΔ ϨεϙϯεͷTFTTJPOΛͱʹ $IFDLPVUը໘ϦμΠϨΫτ TUSJQF্ͷސ٬ʹΧʔυใΛඥ͚ αϒεΫొΛ"1*ܦ༝Ͱߦ͏ ܾࡁ͕ྃͨ͠ΒΞϓϦέʔγϣϯ ϦμΠϨΫτ
/VYUKTଆͷιʔείʔυ
-BSBWFMଆͰͷ$IFDLPVUͷTFTTJPOΛ࡞͢Δ෦ -BSBWFMଆͷιʔείʔυ ·ͣɺೖྗ͞ΕͨϢʔβʔใΛܾͬͯࡁը໘ͷTFTTJPOΛ࡞͠ɺ/VYUଆฦ͢
-BSBWFMଆͰͷαϒεΫొ·ͰΛߦ͏෦ $IFDLPVUͰܾࡁใ͕ೖྗ͞ΕͨΒɺސ٬ͱΧʔυใͷඥ͚ͱ αϒεΫϦϓγϣϯͷొΛߦ͏
࣮͢Δ্ͰΜͩ෦ ɾαϒεΫొޙఆظతͳࢧ͍ΛࣗಈͰٻ ɹͯ͘͠ΕΔ͕ɺਖ਼ৗʹϢʔβʔ͕ࢧ͍Ͱ͖ͯ ɹ͍Δ͔Ͳ͏͔Λ֬ೝ͢Δඞཁ͕͋Δ ɾຖճ4USJQF"1*͔ΒαϒεΫϦϓγϣϯͷσʔλΛ ɹऔಘͯ͠ࢧ͍͕ਖ਼ৗʹͰ͖͍ͯΔ͔Λ֬ೝͯ͠ ɹΞϓϦέʔγϣϯͷར༻ΛڐՄͰ͖ΔΑ͏ʹ ɹ͠Α͏ͱɺॳߟ͍͑ͯͨ ɾ͔͠͠αϒεΫϦϓγϣϯʹؔΘΔσʔλߋ৽ස ɹ͕ͦ͜·Ͱߴ͘ͳ͍ͷͰɺϢʔβʔ͕ΞϓϦέʔγϣϯ
ɹʹΞΫηε͢Δͨͼʹ4USJQF͔ΒσʔλΛऔಘ ɹͤͨ͘͞ͳ͍ʜ
࣮͢Δ্ͰΜͩ෦ 4USJQF8FCIPPLΛͬͯɺΠϕϯτ͕༗ͬͨͱ͖ʹͷΈɺͪ͜Βͷ%#ͷαϒεΫʹؔΘΔϑϥά ΛՃߋ৽͢ΔΑ͏ʹͨ͠
4USJQF8FCIPPLΛͬͨαϒεΫσʔλߋ৽ 4USJQF8FCIPPL TVCTDSJQUJPOVQEBUFE JOWPJDFQBZNFOUTVDDFEFE JOWPJDFQBZNFOUGBJMFE ʜ 4USJQF্ͰͷαϒεΫʹؔΘΔΠϕϯτ͕͋Δͱ͖ʹͷΈɺ-BSBWFM"1*Λୟ͍ͯ αϒεΫͷར༻ʹؔΘΔϑϥάࢧ͍ཤྺใΛߋ৽
Πϕϯτ࣌ʹݺͼग़͞ΕΔ-BSBWFMଆͷ"1* αϒεΫϦϓγϣϯͷࢧ͍͕ޭͨ͠ JOWPJDFQBZNFOU@TVDDFFEFE ࡍʹ ݺͼग़͞ΕΔ"1*
࣮ࡍͷࢧཤྺը໘
·ͱΊ ɾॳΊͯࠓճɺ4USJQFΛ༻͍ͯαϒεΫϦϓγϣϯͷ࣮Λߦ͕ͬͨɺΘ͔Γ͍͢ ɹ"1*υΩϡϝϯτͱஸೡͳΧελϚʔαϙʔτͷํʑͷ͓͔͛Ͱ࣮·Ͱߦ͏͜ͱ͕ ɹͰ͖ͨ ײँʂ ɾෳͷϓϥϯͷઃఆΫʔϙϯͷద༻ͷઃఆ؆୯ʹߦ͏͜ͱ͕Ͱ͖ɺ8FCIPPL͕ ɹ༻ҙ͞Ε͍ͯͨΓɺΦϒδΣΫτʹಠࣗͷNFUBEBUBΛ֨ೲͰ͖ͨΓͱɺ༷ʑͳ ɹঢ়گʹରԠͰ͖Δ