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
決済システムを設計するときに忘れてはならないたった1つの大切なこと
Search
hecateball
December 23, 2020
Technology
1
15k
決済システムを設計するときに忘れてはならないたった1つの大切なこと
2020年12月23日に開催された『 設計 モデリング LT会【初心者の方・やっていきも大歓迎】』の登壇資料です。
https://rakus.connpass.com/event/196648/
hecateball
December 23, 2020
Tweet
Share
More Decks by hecateball
See All by hecateball
Vue 3の導入を急ピッチでやってみた
hecateball
3
630
CQRSを学ぶついでにCloud FunctionsとFirestoreを連動させる時の小技も学ぶ
hecateball
3
4.2k
Firebase Summit 2019 ~Webのはなし~
hecateball
0
120
Other Decks in Technology
See All in Technology
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
200
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
4
570
GitHub Copilot の概要
tomokusaba
1
140
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
5
4.1k
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
340
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
140
MySQL5.6から8.4へ 戦いの記録
kyoshidaxx
1
270
AWS テクニカルサポートとエンドカスタマーの中間地点から見えるより良いサポートの活用方法
kazzpapa3
2
570
Prox Industries株式会社 会社紹介資料
proxindustries
0
330
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.3k
KubeCon + CloudNativeCon Japan 2025 Recap Opening & Choose Your Own Adventureシリーズまとめ
mmmatsuda
0
130
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
1
240
Featured
See All Featured
Become a Pro
speakerdeck
PRO
28
5.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Being A Developer After 40
akosma
90
590k
Rails Girls Zürich Keynote
gr2m
94
14k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
The Language of Interfaces
destraynor
158
25k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Making Projects Easy
brettharned
116
6.3k
Producing Creativity
orderedlist
PRO
346
40k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
BBQ
matthewcrist
89
9.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Transcript
決済システムを設計するときに 忘れてはならない たった1つの大切なこと
みなみ • Web屋 • Twitter: @hecateball • ブログ: https://shiodaifuku.io •
著書 ◦ Firestoreの本 ◦ Nuxt.js + Firebaseの本 @hecateball
決済システムとは • 決済代行などの外部の決済サービスを利用する • 自社のサービスを有償で提供する ◦ ECサイト全般 ◦ SaaS ◦
ゲーム • なんとかPay
決済システムとの戦いの歴史 • 某大手金融事業 ◦ クレジットカード ◦ 電子マネー ◦ ポイント •
某大手プラットフォーム事業の決済系 ◦ 前払式支払手段 • BtoC: SaaSの課金 ◦ サブスクリプション • BtoB: SaaSの課金 ◦ サブスクリプション
たったひとつのことが 守られていなかったために その全てで後悔した
ユーザ(のモデル) と お財布(のモデル) を 分ける
ユーザ • ユーザアカウント
お財布 • お財布・口座に相当する概念 ◦ 前払式支払手段の残高 ▪ 電子マネー ▪ ポイント ▪
石 ◦ 決済手段に関する情報 ▪ クレジットカードトークン ▪ 外部サービスのアカウント情報 ◦ サブスクリプション契約
分ける • お財布(のモデル) を用意する • ユーザとお財布のリレーションをN:1にする ◦ ユーザ側がN(要件によってはN:Nもあり)
苦しむ例
比較的少ない苦しみで済む例
その日が来るまでは1:1でもいい • ユーザ:お財布 = 1:1は現実に即していない ◦ 他人のお財布でも借りてくればお買い物に使える ◦ 正当にお財布を共有するユースケースは多数存在する ▪
同一人物による複数アカウント ▪ 家族アカウント ▪ 会社の経理
たぶん時間が足りてないので https://shiodaifuku.io/articles/FkPnu4HUemFFx8hnZCDZ
まとめ: よいモデリングとは • 可能な限り現実世界を忠実に再現する
おわり