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 Connect を使ったサービス構築の裏側
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takayuki
April 20, 2020
Programming
650
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Stripe Connect を使ったサービス構築の裏側
Stripe Connect を使ったサービス構築の裏側
Takayuki
April 20, 2020
More Decks by Takayuki
See All by Takayuki
Build an MCP Server in Laravel to Enable “AI-Operated” Recruiting Tools(English)
bumptakayuki
0
55
Laravel Applications with DDD x Clean Architecture x Vibe Coding
bumptakayuki
1
130
Laravel × Clean Architecture
bumptakayuki
1
620
エンジニアのキャリア論
bumptakayuki
1
310
地方カンファレンス主催のススメ
bumptakayuki
1
280
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
2
1.4k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
830
沖縄観光、名物を一挙紹介!
bumptakayuki
2
850
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
3.6k
Other Decks in Programming
See All in Programming
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
180
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
580
Family mrubyの進捗
kishima
1
100
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
120
信頼性の目標を誰も求めてない
shubox
0
490
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
470
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
2
2.6k
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
4
2.8k
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
160
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
Featured
See All Featured
Paper Plane (Part 1)
katiecoart
PRO
1
11k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
430
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
Visualization
eitanlees
152
17k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
570
Rails Girls Zürich Keynote
gr2m
96
14k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
510
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
340
Transcript
Stripe Connect ΛͬͨαʔϏε ߏஙͷཪଆ
1 ձࣾհɾࣗݾհ 2 Stripeಋೖʹࢸͬͨഎܠ Agenda 3 Stripe ConnectΛಋೖ͢ΔϝϦοτ 4 ࣮ํ๏ɾಋೖͯ͠Έͯؾ͍ͮͨ͜ͱ
1 ձࣾհɾࣗݾհ
4 ࣗݾհ ◆໊લ ླ ೭(Suzuki Takayuki) ※ಉಉ໊ଟͯ͘ࠔͬͯ·͢ɻɻɻ ◆ࣗݾհ ɾ1990ɺਆಸݝੜ·Εɻ ɾࣾձਓʹͳ͔ͬͯΒɺϓϩάϥϛϯάΛ࢝ΊΔɻ
ɾ2015ʹϑϧεϐʔυʹೖࣾ͠ɺ2017ʹಠཱɻ ɾϑϦʔϥϯεͰϦϞʔτϫʔΫΛͬͨޙʹԭೄͰى ۀ ◆झຯ ίεϓϨɺԻָϥΠϒɺϚϥιϯେձʹग़Δɺٿ؍ઓ JP_StripesԭೄΛӡӦͯ͠·͢ʂ BDD(Ϗʔνۦಈ։ൃ)
Copyright Re:Build.inc All Rights Reserved. ࣗݾհ
Copyright Re:Build.inc All Rights Reserved. 1.ձࣾհ ◆ձ໊ࣾ גࣜձࣾRe:Build ◆ॅॴ ԭೄݝಹࢢٱໜ2-2-2
λΠϜεϏϧ ◆ࣄۀ༰ ɾࣗࣾWEBαʔϏεͷاըɾ։ൃɻ ɾडୗ։ൃ ◆ࣾһ 7໊ ◆ΤϯδχΞͷಇ͖ํ ϦϞʔτϫʔΫՄೳͳࣗ༝ͳಇ͖ํΛਪͯ͠·͢ʂ
2 Stripeಋೖʹࢸͬͨഎܠ
8 ࣗࣾWebαʔϏεͷ։ൃ ɾαʔϏε໊ Tadoru ɾγεςϜ֓ཁ Ϋϥυιʔγϯά ΫϨδοτܾࡁ ͳͲ ɾ͍ͬͯΔٕज़ ݴޠ
: PHP,JavaScript ϑϨʔϜϫʔΫ: laravel5,Nuxt.jsͳͲ
Re:Build اۀͷ୲ऀ͕ ΤʔδΣϯτΛબͿ ΤʔδΣϯτ͕ࣗͷܨ ͕Γͷ͋ΔΤϯδχΞ· ͨνʔϜʹΛ͔͚Δ ࣄͷۭ͖͕͋Δϫʔ Χʔ͕͍Εɺ໘Λߦ ͏ ΤʔδΣϯτ
ࣄલʹ৹੍ࠪ ΤϯδχΞνʔϜ ΤϯδχΞ ϫʔΧʔ ΤʔδΣϯτ اۀ ϏδωεϞσϧ ࠾༻ใु
1 0 ཁ݅ ɾܾࡁΛϓϥοτϑΥʔϜ্Ͱߦ͏ɻ ɾۜߦৼࠐ໘ͳͷͰɺϓϥοτ ϑΥʔϜ্Ͱ͓ۚͷΓऔΓΛ݁ͤ͞ ͍ͨɻ
3 Stripe ConnectΛಋೖ͢ΔϝϦοτ
1 2 Stripe Connectͱ ɾCustomerʢސ٬ʣ: ߪೖऀͰ͋Γ͓ۚΛࢧ͏ํɻӈͷਤ Ͱɻ ɾPlatformʢϓϥοτϑΥʔϜʣ: ͦͷ໊ͷ௨ΓϓϥοτϑΥʔϜΛఏڙ ͢Δํɻӈͷਤͷ੨ɻ
ɾConnected accounts: ϓϥοτϑΥʔϜΛར༻ͯ͠αʔϏε Λఏڙ͠ɺೖۚΛड͚ΔํʢࢠΞΧ ϯτͱݺΕ·͢ʣɻӈͷਤͷϐϯ Ϋɻ ࢀߟɿhttps://qiita.com/y_toku/items/7bfa42793801dfc5415d
1 3 Stripe Connectͱ ΤʔδΣϯτ Tadoru اۀ
1 4 ܾࡁର اۀ ʢCustomerʣ ΤʔδΣϯτ ʢࢠΞΧϯτʣ ʢϓϥοτϑΥʔϜʣ հखྉ Ϛονϯά࣌ͷใु
BtoCϞσϧ
1 5 ϝϦοτ ॊೈͳΧελϚΠζػೳ Connect ͷڧΈ API ɻϓϥοτ ϑΥʔϜͷ࠷దͳΤΫεϖϦΤϯεΛσ βΠϯͰ͖·͢ɻϢʔβొϑϩʔͷΧ
ελϚΠζɺೖۚαΠΫϧͷઃఆɺෳ ࡶͳࢿۚҠಈͷΧελϚΠζॲཧɺ౷߹ ͞ΕͨܦཧϨϙʔςΟϯάػೳɻ ਝʹಋೖͰ͖Δ ϓϥοτϑΥʔϜͷͨΊͷܾࡁΠϯϑ ϥετϥΫνϟߏஙͰɺ͢Ͱʹ͞ Εͨ UI ཁૉΛऔΓೖΕͯɺϩʔϯνΛ εϐʔυΞοϓɺΦϖϨʔγϣϯΛγϯ ϓϧʹͰ͖·͢ɻ άϩʔόϧల։͍͢͠ ੈք 25ΧࠃҎ্ͷചΓखࢧ͍Մ ೳɻϚʔέοτ͝ͱͷݱࢠձࣾ ۜߦ࿈ܞඞཁ͋Γ·ͤΜɻෳࡶͳ ॲཧ Connect ͕Ҿ͖ड͚·͢ɻ 1 2 3 https://stripe.com/connect
4 ࣮ํ๏ɾಋೖͯ͠Έͯؾ͍ͮͨ͜ͱ
ϑϩϯτΤϯυ αʔόαΠυ શମߏ Gitlab CI ϥΠϒϥϦͳͲ Firebase ϥΠϒϥϦͳͲ
શମͷΞʔΩςΫνϟ(̐ͭͷυϝΠϯผ) ϑϩϯτΤϯυ αʔόαΠυ blade MPAߏ ϑϩϯτΤϯυ αʔόαΠυ SPAߏ αʔόαΠυ ϑϩϯτΤϯυ
αʔόαΠυ blade MPAߏ ϫʔΧʔը໘ ΤʔδΣϯτը໘ اۀը໘ SPAߏ ϑϩϯτΤϯυ ӡӦը໘ MPA SPA
1 9 ͔͔ͬͨ ɾλυϥʔը໘(Laravel) - 5͘Β͍ ɾاۀཧը໘(Nuxt.js) - 3͘Β͍
ɾεέδϡʔϧײ ߹ܭ2िؒऑ͘Β͍
2 0 اۀଆͷ࣮༰ ɾ࣮ͨ͠ػೳ - ΫϨδοτΧʔυͷొ - ܾࡁͷ࣮ߦ ɾͬͨϥΠϒϥϦ https://stripe.com/docs/stripe-js/reference
2 1 اۀଆͷ࣮༰
2 2 اۀଆͷ࣮༰
2 3 اۀଆͷ࣮༰
2 4 اۀଆͷ࣮༰
2 5 اۀଆͷ࣮༰
2 6 اۀଆͷ࣮༰
2 7 ΤʔδΣϯτଆͷ࣮༰ ɾ࣮ͨ͠ػೳ - ΞΧϯτใ ※2~3ͷ৹͕ࠪ͋Δ - ޱ࠲ใͷొ ɾͬͨϥΠϒϥϦ
https://github.com/stripe/stripe-php
2 8 ΤʔδΣϯτଆͷ࣮༰
2 9 ৹ࠪͷΠϝʔδ ޱ࠲ใূ໌ॻͷొ ̎ʙ̏Ͱ݁Ռ͕͘Δ
3 0 ΤʔδΣϯτଆͷ࣮༰
3 1 ཧը໘ͷݟ͑ํ
3 2 ࣮Ͱେมͩͬͨ͜ͱ ɾStripeͷࢠΞΧϯτΛ࡞Δࡍʹೖྗ߲͕ଟ͍ ɾຊਓ֬ೝνΣοΫͷεςʔλε֬ೝΛ͢Δඞཁ͕͋Δ - APIΛݺɺঝೝࡁΈ͔৹ࠪத͕Θ͔Δ - webhookͰSlackϝʔϧʹඈ͢Մೳ
3 3 ಋೖͯ͠Έͯؾ͍ͮͨ͜ͱ ϫʔΧʔͱͯ͠ ϩάΠϯ λυϥʔਃ (1िؒఔͰࣄہ ΑΓ৹ࠪ݁ՌΛϝʔ ϧ௨) ৼΓࠐΈޱ࠲ొ
ൃاۀʹ૬ஊ͞ ΕͨҊ݅Λ ϫʔΧʔʹհ STEP1 STEP2 STEP3 STEP4 01 02 03 04 ΤʔδΣϯτͷొϑϩʔ͕͕ͯ͘ଟ͔ͬͨɻɻɻ
3 4 ಋೖͯ͠Έͯؾ͍ͮͨ͜ͱ ΤʔδΣϯτ ޱ࠲ใΛొ͢Δ·Ͱ Ұ෦͚ͩػೳ༻੍ݶΛ͢Δͷ͕ॲ ཧ͕ෳࡶʹͳΓେมͩͬͨ
3 5 ಋೖͯ͠Έͯؾ͍ͮͨ͜ͱ ɾϢʔβͷ్தͰͷ͕ଟ͔ͬͨͷͰɺޙ͔Βޱ࠲ొͯ͠ग़ۚਃ͢Δܗʹ ͢Εྑ͔ͬͨɻ ɾग़ۚਃͷ࣌ϢʔβϞνϕʔγϣϯ্͕͕ΔͷͰɺೖྗͯ͘͠Εͦ͏ ΤʔδΣϯτ ʢࢠΞΧϯτʣ ग़ۚਃ ཧܗ
اۀ ʢCustomerʣ Stripeܾࡁ ૹۚ ΤʔδΣϯτ ʢࢠΞΧϯτʣ հྉΛTadoru ଆͰҰ࣌తʹड ͚औΔ
3 6 ·ͱΊ ɾϓϥοτϑΥʔϜͰखྉΛऔΔϏδωεϞσϧʹ͍͍ͯ Δ ɾϢʔβͷϞνϕʔγϣϯʹΑͬͯɺޱ࠲ใΛొͤ͞Δ λΠϛϯάಋઢؾΛ͚ͭͳ͍ͱϢʔβ͕ΞΫςΟϒʹͳΓ ʹ͍͘ɻ
3 7 ࢀߟจݙ https://qiita.com/y_toku/items/7bfa42793801dfc5415d https://stripe.com/connect