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.1k
Other Decks in Technology
See All in Technology
増え続ける脆弱性に立ち向かう: 事前対策と優先度づけによる 持続可能な脆弱性管理 / Confronting the Rise of Vulnerabilities: Sustainable Management Through Proactive Measures and Prioritization
nttcom
1
230
株式会社島津製作所_研究開発(集団協業と知的生産)の現場を支える、OSS知識基盤システムの導入
akahane92
1
1.3k
製造業の課題解決に向けた機械学習の活用と、製造業特化LLM開発への挑戦
knt44kw
0
110
OpenTelemetry の Log を使いこなそう
biwashi
5
1.2k
2025-07-31: GitHub Copilot Agent mode at Vibe Coding Cafe (15min)
chomado
2
290
ecspressoの設計思想に至る道 / sekkeinight2025
fujiwara3
12
2.2k
風が吹けばWHOISが使えなくなる~なぜWHOIS・RDAPはサーバー証明書のメール認証に使えなくなったのか~
orangemorishita
10
2.8k
「AI駆動開発」のボトルネック『言語化』を効率化するには
taniiicom
1
230
CSPヘッダー導入で実現するWebサイトの多層防御:今すぐ試せる設定例と運用知見
llamakko
1
280
公開初日に個人環境で試した Gemini CLI 体験記など / Gemini CLI実験レポート
you
PRO
3
1.2k
私とAWSとの関わりの歩み~意志あるところに道は開けるかも?~
nagisa53
1
140
手動からの解放!!Strands Agents で実現する総合テスト自動化
ideaws
3
420
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
70
11k
Scaling GitHub
holman
461
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.7k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Practical Orchestrator
shlominoach
190
11k
Navigating Team Friction
lara
188
15k
Thoughts on Productivity
jonyablonski
69
4.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
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ͰΑ͔ͬͨ
͓ΘΓ