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
610
CQRSを学ぶついでにCloud FunctionsとFirestoreを連動させる時の小技も学ぶ
hecateball
3
4.1k
Firebase Summit 2019 ~Webのはなし~
hecateball
0
120
Other Decks in Technology
See All in Technology
srekaigi2025-hajimete-ippo-aws
masakichieng
0
230
レイクハウスとはなんだったのか?
akuwano
15
1.8k
プロダクト価値を引き上げる、「課題の再定義」という習慣
moeka__c
0
190
さいきょうのアーキテクチャを生み出すセンスメイキング
jgeem
0
170
Site Reliability Engineering on Kubernetes
nwiizo
6
4.2k
パブリッククラウドのプロダクトマネジメントとアーキテクト
tagomoris
4
690
ソフトウェア開発現代史:製造業とソフトウェアは本当に共存できていたのか?品質とスピードを問い直す
takabow
14
5k
reinvent2024を起点に振り返るサーバーレスアップデート
mihonda
1
180
2週に1度のビッグバンリリースをデイリーリリース化するまでの苦悩 ~急成長するスタートアップのリアルな裏側~
kworkdev
PRO
8
6.3k
一人から始めたSREチーム3年の歩み - 求められるスキルの変化とチームのあり方 - / The three-year journey of the SRE team, which started all by myself
vtryo
7
5.5k
Tokyo RubyKaigi 12 - Scaling Ruby at GitHub
jhawthorn
2
170
大学教員が押さえておくべき生成 AI の基礎と活用例〜より効率的な教育のために〜
soh9834
1
180
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Embracing the Ebb and Flow
colly
84
4.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
6
220
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
BBQ
matthewcrist
85
9.4k
Six Lessons from altMBA
skipperchong
27
3.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
192
16k
Building Adaptive Systems
keathley
39
2.4k
Optimising Largest Contentful Paint
csswizardry
33
3k
A better future with KSS
kneath
238
17k
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
まとめ: よいモデリングとは • 可能な限り現実世界を忠実に再現する
おわり