KyashのQUICPayを支える決済システム概要

この記事はKyash Advent Calendar 2020 - Adventar 11日目の記事です。

Kyashの堀川と申します。サーバーサイドエンジニアとして働いています。 普段はVisaやQUICPayの決済システムを開発するチームでシステム開発・保守を行っています。 今日は弊社で開発しているApple Pay, Google Pay関連の決済システムについてお話をしたいと思います。

KyashのApple Pay, Google Pay対応について

Kyashで発行するカードはApple Pay, Google Payの対応を行っています。ウォレットアプリからKyashのカードを登録すれば、QUICPayマークがついているお店で会計時にQUICPayで支払う旨を伝え専用リーダーにデバイスをかざすだけで、簡単に支払いができるようになります。

カード登録の裏側ではカード番号を乱数などで生成したトークンに置き換え、保存・利用されます。この仕組みや支払い時のオーソリはQUICPay(CARDNET)のサービスを利用することで実現しています。

QUICPayとは

QUICPayApple Pay, Google Payに対応している電子マネーサービスです。

iPhoneまたはAndroidバイスにてQUICPayが利用できるカードを登録するとコンタクトレス決済が利用できるようになります。

Kyashのシステム構成

f:id:nilpoona:20201211105401p:plain

カード登録時と支払い時にCARDNETを介してKyashのサーバー(以下fep)に電文が送信されるようになっています。

どちらもfepで受け取るようになっており、受信した電文の種類によって適切な処理がオンラインで行われており、これらの処理はGoで実装されています。

電文のプロトコルは、国際標準規格(ISO8583)に準拠したものとなっており、電文全体が暗号化されて送信されます。

fepの主な仕事は電文のパースとバリデーションです。電文のパース処理も自前で実装しています。KyashはMicroservices Architectureを採用しているため、カード会員データの暗号化/復号、残高操作、PUSH通知の送信など電文の操作とは関係のない処理は別のサービスやライブラリに問い合わせることで実現しています。

 

ローカル環境での開発

開発を行う際は開発者のマシンにて行います。 ローカル環境で実装を進めていき、実装が完了したら動作確認を行います。 動作確認を行う際は電文を送信することが出来るデバッグ用のWebアプリを利用します。 フォームに必要な情報を入力してボタンを押下するとローカルで起動しているfepに対してオーソリ電文を送信することが出来ます。

 

f:id:nilpoona:20201211110853p:plain

 

さいごに

QUICPay(CARDNET)と接続するシステムの概要について説明しました。 システムの性質上公に言えないことが多いのですが、是非開発してみたい!という方がいらっしゃいましたら、こちらからエントリーお願いします。