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
110
Other Decks in Technology
See All in Technology
とあるユーザー企業におけるリスクベースで考えるセキュリティ業務のお話し
4su_para
3
330
Aurora_BlueGreenDeploymentsやってみた
tsukasa_ishimaru
1
130
マネジメント視点でのre:Invent参加 ~もしCEOがre:Inventに行ったら~
kojiasai
0
470
「視座」の上げ方が成人発達理論にわかりやすくまとまってた / think_ perspective_hidden_dimensions
shuzon
2
4.7k
急成長中のWINTICKETにおける品質と開発スピードと向き合ったQA戦略と今後の展望 / winticket-autify
cyberagentdevelopers
PRO
1
160
いまならこう作りたい AWSコンテナ[本格]入門ハンズオン 〜2024年版 ハンズオンの構想〜
horsewin
9
2.1k
Datachain会社紹介資料(2024年11月) / Company Deck
datachain
3
16k
VPC間の接続方法を整理してみた #自治体クラウド勉強会
non97
1
850
ガバメントクラウド単独利用方式におけるIaC活用
techniczna
3
270
新卒1年目が向き合う生成AI事業の開発を加速させる技術選定 / ai-web-launcher
cyberagentdevelopers
PRO
7
1.5k
「 SharePoint 難しい」ってよく聞くけど、そんなに言うなら8歳の息子に試してもらった
taichinakamura
1
630
AIを駆使したゲーム開発戦略: 新設AI組織の取り組み / sge-ai-strategy
cyberagentdevelopers
PRO
1
130
Featured
See All Featured
The Invisible Side of Design
smashingmag
297
50k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
The Cost Of JavaScript in 2023
addyosmani
45
6.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Visualization
eitanlees
144
15k
The Art of Programming - Codeland 2020
erikaheidi
51
13k
A designer walks into a library…
pauljervisheath
202
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
328
21k
Speed Design
sergeychernyshev
24
570
What's in a price? How to price your products and services
michaelherold
243
12k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
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
まとめ: よいモデリングとは • 可能な限り現実世界を忠実に再現する
おわり