# 概要
カード決済システムの設計・開発を 2017 年頃に行いました。2017年11月に入社&開発着手〜2018年6月頃リリース。現在も運用を行っています。
クラウドインフラ上での設計/構築、オンプレでの作業、決済を処理するソフトウェアを書く、ビジネスパートナーとドキュメントを交わしてやりとりをする、といったことをやっています。良く言えば何でもやっていると思います。主に AWS、PostgreSQL、Go、Python を扱っています。
# もう少し具体的に書くと...
## 構成図
ユーザ ---> 加盟店 ---> Visa ---> カード決済システム
^ |
| |
+-------<------カード発行-----<-------+
「カード決済システムと表記」されている箇所が開発したシステムです。
## やったこと
- ユーザが会員登録するとカードの発行を行います。PCI DSS というセキュリティ基準を満たすようにカード情報や個人情報を暗号化・秘匿かして扱う設計を行った。
- カードが発行され、ユーザが加盟店でカードを利用すると決済データが Visa を経由して飛んできます。決済データはISO8583と呼ばれるバイナリプロトコルとなっています。それを処理するためのパーザーを書き、ユーザの残高を増減させるような処理を書きました。
- 肝となるDB設計はメンバーとの議論やパフォーマンス検証を行い、データを示しながら根拠のある形で運用まで見据えた設計を行いました。
決済システムのDB設計と運用に関する自社ブログ記事
https://tech.kanmu.co.jp/entry/2021/06/29/131649
クレジットカードのプロトコルについての解説
https://speakerdeck.com/hiroakis/kurezitutokadofalsetong-xin-purotokoru-iso8583-tozhan-u
## 何が言いたいか?
- カード決済システムの設計は初めてであったが、未経験の分野についても理解してそれをシステム化することができる
- 設計時にデータに基づいた事実や計測結果に基づいた数字を示し、根拠のある形で意見を提示することができる
- 新規開発からリリースし、その後数年に渡って運用可能なシステム・体制を作ることができる