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
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
250
AWSで始める実践Dagster入門
kitagawaz
1
620
💡Ruby 川辺で灯すPicoRubyからの光
bash0c7
0
110
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
220
roppongirb_20250911
igaiga
1
230
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
160
S3アクセス制御の設計ポイント
tommy0124
3
200
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
180
KotlinConf 2025_イベントレポート
sony
1
130
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
180
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
280
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
180
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
Fireside Chat
paigeccino
39
3.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Scaling GitHub
holman
463
140k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
It's Worth the Effort
3n
187
28k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Become a Pro
speakerdeck
PRO
29
5.5k
Context Engineering - Making Every Token Count
addyosmani
3
42
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ͰΑ͔ͬͨ
͓ΘΓ