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でよかった
Search
nof
December 15, 2018
Technology
0
140
Stripeでよかった
JP_Stripes (Stripe ユーザーグループ)in 岡山 キックオフ
WebPayから乗り換えた話・仮売上の例
nof
December 15, 2018
Tweet
Share
More Decks by nof
See All by nof
オープンセミナー2020@広島 発表資料
nof
1
1.1k
Rails使いのNuxt.js入門 - 銀座Rails#12
nof
1
2.2k
Other Decks in Technology
See All in Technology
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
440
GitLab Duo Agent Platform × AGENTS.md で実現するSpec-Driven Development / GitLab Duo Agent Platform × AGENTS.md
n11sh1
0
130
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
190
プロポーザルに込める段取り八分
shoheimitani
1
220
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
42k
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.3k
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
110
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
配列に見る bash と zsh の違い
kazzpapa3
1
140
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
560
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
550
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
150
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Prompt Engineering for Job Search
mfonobong
0
160
Game over? The fight for quality and originality in the time of robots
wayneb77
1
110
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
The untapped power of vector embeddings
frankvandijk
1
1.6k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
54
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
90
Unsuck your backbone
ammeep
671
58k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
49
Transcript
StripeͰΑ͔ͬͨ ࣮ྫΛަ͑ͯྑ͔ͬͨ͜ͱΛհ SonicGarden ࡔխढ़
୭Ͱ͔͢ • ౡ͔Βདྷ·ͨ͠ • ࡔխढ़ ʮ͔͞ʯ ͱݺΕ͍ͯ·͢ • Ԭࢁͷษڧձʹͨ·ʹདྷ·͢ •
גࣜձࣾιχοΫΨʔσϯ ϓϩάϥϚ • Rails͍ͬͯ·͢
͢͜ͱ • Webpay ͔Β Γ͑ͨ • Ծച্ͷྫ • ࠓͷʹͰͨ Stripe
API
WebPay͔ΒΓ͑ͨ
WebPayαʔϏεऴྃ (Stripeͱͷग़ձ͍) • 2016/10/31 Ξφϯε • 2017/04/30 ՝ۚػೳఀࢭ • ͞Εͨ࣌ؒ
6ϲ݄ WebPayͰ՝ۚॲཧΛ࣮͍ͯ͠Δ αʔϏε͕͋ͬͨͷͰҠߦ͕ඞཁ
Ҡߦઌͷબఆɿ Stripe ʹܾΊͨཧ༝ • ࠓճҠߦ͕ඞཁʹͳͬͨαʔϏεͰ͍ͬͯͨ͜ͱ • ձඅɿఆظ՝ۚ • دۚɿ՝ۚ •
ޓੑ͕ߴ͍ • Charge, Customer جຊతͳΦϒδΣΫτͲ͏ΒҰॹͷߏ • Χʔυձࣾͷ࠶৹ࠪෆཁ • ళࢠػೳ (Stripe Connect) ʹڵຯ
ͬͨ͜ͱ • ϓϩάϥϜमਖ਼ • ςετ • CustomerσʔλҠɾఆظ՝ۚҾ͖ܧ͗ • WebPayΞΧϯτ͕Ұ্ͭͩͬͨؔɺҠͷࡍʹ͓٬͞ΜΛ ަ͑ͨΩϟονϘʔϧΛ
• Ҡ࡞ۀͪ 10/31 12݄ 1݄ 3݄ WebPayऴྃΞφϯε બఆ मਖ਼ ςετ 2݄ 3݄ Stripe՝ۚରԠϦϦʔε CustomerσʔλҠߦ ఆظ՝ۚҾ͖ܧ͗
ϓϩάϥϜमਖ਼ (৽نͷ՝ۚॲཧΛStripeʹ͚Δ) • charge_key ɺܾࡁΛҰҙʹ͢ΔΩʔΛσʔλϕʔεʹΧϥϜՃ • WebPay API ͍ͬͯΔͱ͜ΖΛ Stripe
API ͏Α͏ʹΤϯυϙΠ ϯτมߋ • WebHook ॲཧՃ ఆظ՝ۚ༻ʹStripeͱWebPayΛಉ࣌ར༻ • Stripeಛ༗ͷॲཧՃ ఆظ՝ۚ༻ʹPlanͱ͍͏֓೦ొ
ςετ • stripe-ruby-mock gem • mockαʔόʔͰͳ͘ɺstripe-ruby ͷAPIίʔϧ෦Λmock
σʔλҠ • ᶃ WebPay - Stripe ސ٬ใɾΧʔυใҠ • WebPay -
Stripe ؒͰސ٬ใҠ (PCI DSS४ڌ͍ͯ͠ΔͨΊՄೳ) • StripeଆͰ৽͘͠࡞ΒΕͨCustomerใΛJSONͰఏڙ͍͖ͨͩɺγεςϜͷUserใͱඥ͚ • ᶄ ఆظ՝ۚ༻σʔλ࡞ • Plan ࡞ • WebPayͷRecursionΛఀࢭɺ৽͘͠StripeଆʹSubscriptionΛ࡞Δ (trial_end ʹ͍Εͯɺ͔ͦ͜Β։ ࢝)
ײ • Stripe αϙʔτ͞Μʹ૬ஊ͠ͳ͕Β࣮ࢪͰ͖ͨ • ಙӬ͞ΜʹΑΖ͓͑͘͠Լ͍͞ • σʔλߏ΄΅ಉͩͬͨ͡ͷͰɺॿ͔ͬͨ • WebPayΞΧϯτ͕ҰͭͳͷͰɺҠͷࡍʹ͓٬͞ΜΛަ͑ͨ
ΩϟονϘʔϧΛΔ͜ͱʹɻStripeෳΞΧϯτΛඥ͚ΒΕ ΔͷͰྑ͍ • StripeͰΑ͔ͬͨ
Ծച্ͷྫ
Ծച্ • ·ܾͩࡁ͠ͳ͍͚Ͳ༩৴͚ͩ֬อ • ͋ͱ͔ΒܾࡁͰ͖Δ • τϨʔχϯάͷ༧γεςϜͰ͍·ͨ͠
• capture: false Ͱ Charge ͢Δ͚ͩ • ޙɺCharge.capture Ͱܾࡁྃ
ߟྀ࿙Ε • ༩৴ͷ֬อظݶ7ؒ • 7ؒΑΓઌͷ༧Λͱͬͯ͠·ͬͨ • τϨʔχϯάʹΤϥʔɻܾࡁͰ͖ͳ͍ • ྉۚΛ͔͘ɺޙৼࠐΈ͔ɻɻɻ •
େৎͩͬͨʂ • Stripe͔ͬͯͨΒେৎͩͬͨʂ
͔Β͘Γ • Stripe Ͱސ٬ใΛཧͯ͘͠ΕΔ Customer Λ࡞͍ͬͯͨ • Customer ʹΫϨδοτΧʔυใؚ·ΕΔ •
৽͘͠ Charge Λ࡞ܾͬͯࡁޭ • StripeͰΑ͔ͬͨ • ॿ͔ͬͨͱಉ࣌ʹɺCustomerใݫॏʹѻΘͶͱ࠶ೝࣝ • ͖ͳ͚ܾͩࡁͰ͖ͪΌ͏ʁ
ࠓͷʹग़ͨ Stripe API
Customer (͓٬͞Μ) • ՝ۚͰ͋Ε࡞Βͳͯ͘ྑ͍͚Ͳɺ࡞ͬͯ͋Δͱ Customer Λ࣠ʹ ߦಈΛัଊͰ͖ͯศར • γεςϜͷϢʔβʔͱඥ͚·͢ •
ΫϨδοτΧʔυͷใͱඥ͍͍ͯ·͢
Charge (ܾࡁ) • ྉۚΛઃఆͯ͠create͢Ε՝ۚͰ͖·͢ • Customerͱඥ͚Մೳ • ࡞Δͱ͖ʹ࣮ച্ɺԾച্Λ੍ޚͰ͖·͢ (capture =
true/false)
Refund (ฦۚ) • ฦۚ͠·͢ • Ծച্ʹͨ͠ChargeͷऔΓফ͜͠ͷAPIͰΓ·͢
Plan (ఆظ՝ۚͷϓϥϯ) • ఆظ՝ۚͷϧʔϧͰ͢ • ྉۚɺΠϯλʔόϧ(ɺिɺ݄ɺ)ΛܾΊ·͢
Subscription (ఆظॲཧ) • Customer͝ͱͷఆظॲཧϧʔϧ • PlanʹैͬͯChargeΛ࡞ͬͯ͘Ε·͢ • ։࢝ɾऴྃΛઃఆͨ͠Γ • τϥΠΞϧظؒޙɺఆظॲཧ։࢝
Έ͍ͨͳ͜ͱͰ͖·͢
ଞʹ • ֤ΦϒδΣΫτʹmetadataΛೖΕ͓͚ͯɺμογϡϘʔυͰݕࡧ Ͱ͖ͨΓ • ΤϯδχΞ͚ʹΘ͔Γ͍͢υΩϡϝϯταϯϓϧ • ૉΒ͍͠ Stripe ίϛϡχςΟ
• StripeͰΑ͔ͬͨ
͓ΘΓ