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
600
CQRSを学ぶついでにCloud FunctionsとFirestoreを連動させる時の小技も学ぶ
hecateball
3
4k
Firebase Summit 2019 ~Webのはなし~
hecateball
0
120
Other Decks in Technology
See All in Technology
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
170
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
17
4.8k
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
150
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
200
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
170
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.3k
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
120
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
170
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
140
LINEヤフーのフロントエンド組織・体制の紹介【24年12月】
lycorp_recruit_jp
0
530
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
850
Featured
See All Featured
KATA
mclloyd
29
14k
Bash Introduction
62gerente
608
210k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Navigating Team Friction
lara
183
15k
A better future with KSS
kneath
238
17k
How to Ace a Technical Interview
jacobian
276
23k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
450
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
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
まとめ: よいモデリングとは • 可能な限り現実世界を忠実に再現する
おわり