絞り込み検索
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トレンドで探す
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トレンドで探す
2022.2.22技術ブログ

コロナ禍で再注目!知られざるコード決済の裏側

コロナ禍で一層浸透が進むスマホコード決済は、今や人々の生活を支える重要な金融サービスである。
本稿では、その仕組みや課題に触れながら、安心・安全で安定的に提供するために必要なポイントについて、筆者の決済システム開発経験を交えて解説する。

目次

1.コード決済が注目される背景

近年、政府方針(※1)を追い風にキャッシュレス決済の需要が高まっています。
当社においても、国庫金キャッシュレスサービス(※2)を提供するなど、社会的な仕組み作りに貢献しています。

クレジットカードや電子マネーなど様々なキャッシュレス決済がある中でも特に成長著しいのがコード決済であり、その市場規模は2025年度までに約12兆円にまで拡大すると予測されています。(図1)
さらにコロナ禍を受けて再注目されており、その理由として以下のようなメリットがあげられます。
利用者:現金いらずの非接触なやり取りで安心感を得ることができる
加盟店:経済的な不安が高まる中で専用端末の導入や手数料の負担を減らすことができる

図1:国内のコード決済市場規模推移・予測(※3)

図1:国内のコード決済市場規模推移・予測(※3)

(※1)経済産業省 キャッシュレス・ビジョン

https://www.meti.go.jp/press/2018/04/20180411001/20180411001.html

(※2)NTT DATA 国内初、中央省庁の窓口納付をキャッシュレス化する新サービスの提供を開始

https://www.nttdata.com/jp/ja/news/services_info/2021/062400/

(※3)出典:株式会社矢野経済研究所「国内コード決済市場に関する調査(2021年)」(2021年10月21日発表)

https://www.yano.co.jp/press-release/show/press_id/2834

2.コード決済の仕組み

2.1 そもそもコード決済とは?

図2のようにスマートフォン上の決済アプリを利用してQRコード(※4)やバーコードを読み取ることにより店舗で決済を行う仕組みです。利用者がコードを提示するCPM(Consumer Presented Mode)とお店がコードを提示するMPM(Merchant Presented Mode)の2つの方式があります。

図2:コード決済の流れ(CPMの場合)

図2:コード決済の流れ(CPMの場合)

2.2 コード決済を実現するシステムアーキテクチャー

アーキテクチャーの一例を図3に示します。
スマホアプリと加盟店からのリクエストを受け付けて処理を行う、金融機関等の外部と連携する、といった一連の機能(表1)を実装することで決済サービスを実現します。
加盟店・金融機関と連携するために決済代行業者(※5)決済NW(※6)とのシステム的な接続が必要となります(自前で構築するケースもあります)。

図3:コード決済のシステムアーキテクチャー

図3:コード決済のシステムアーキテクチャー

表1:機能概要

No. 機能 概要
1 利用者向け スマホアプリからリクエストを受け付け、チャージ等の処理を行います。
2 加盟店向け 加盟店からリクエストを受け付け、決済等の処理を行います。
間に決済代行業者がいる場合は個々の加盟店と直接連携は行いません。
3 バリュー管理 利用者の持つバリュー(※7)をデータベースで管理します。例えばチャージではバリューを加算、決済ではバリューを減算した結果を保持します。それらを対向の決済NWや金融機関の情報と整合性を保って処理する必要があります。
4 外部接続 利用者の資産をコード決済事業者側に移動するため、銀行やクレジットカード会社などの金融機関と連携します(キャリア決済やコンビニATMと接続する事業者もいます)。
また、必要に応じて認証、ID連携などを行うための外部サービスと接続します。
5 利用者管理 利用者の状態やサポート問合せを管理するための機能です。
6 セキュリティ FISC安全対策基準(※8)のような金融業に求められる高レベルなセキュリティ対策です。特に決済という性質上、eKYC(※9)を使った厳格な本人確認やAML(※10)による不正利用の検知・防止は欠かせません。
7 プラットフォーム サーバ、ストレージ、ネットワークなどのインフラ機能です。
ログ収集・可視化、監視・通知などのシステムを運用する上で必要な機能も実装します。
(※4)QRコード

株式会社デンソーウェーブの登録商標

(※5)決済代行業者

複数の加盟店を取りまとめ、決済に関わる通信や精算処理などを代行する仲介業者

(※6)決済NW

複数の銀行やクレジットカード会社をとりまとめ、決済に関わる通信を中継するネットワーク

(※7)バリュー

利用者の銀行口座の残高などの資産をコード決済事業者側で管理するための論理的な通貨

(※8)FISC安全対策基準

https://www.fisc.or.jp/publication/guideline.php

(※9)eKYC(electronic Know Your Customer)

銀行口座開設などに必要な本人確認をオンラインで電子的に行う仕組み

(※10)AML(Anti-Money Laundering)

マネーロンダリングやテロ資金供与を防ぐための仕組み

3.コード決済が抱える課題

キャッシュレス決済の波に乗るべく、ここ4~5年で多くの企業が事業参入しています。少しでも他社と差別化を図るべくいち早く機能をリリースして、利用者や加盟店に価値提供することが至上命題となってきます。こうした背景があり、より開発アジリティを高めることができるパブリッククラウドの積極的な活用が進んでいます。

一方で、決済事業という特性上、システム障害やセキュリティインシデントが発生した際にそれらが社会に与える影響が大きいことも忘れてはいけません。例えば、数日間決済ができない、不正アクセスを受けて金銭的被害が出るといった事態が起こりえます。その場合、単に利用者が不利益を被るだけでなく、サービスを提供する企業のブランド価値を傷付けてしまう可能性があります。そこで、そのような事態を回避すべくパブリッククラウド上でいかにアジリティと堅牢性を両立するかが重要な課題となります。

4.アジリティと堅牢性を両立したコード決済システムを実現するためのポイント

実際に筆者が携わったコード決済システム開発の中でも特に重要だと感じたポイントについて、AWS(※11)を例にとって説明します。

4.1 システム全体での一貫した高可用性の設計・実装

AWSでは可用性を高めるベストプラクティスの一つにマルチAZ(※12)があります。しかし、サーバをマルチAZに配置して終わりではなく、その上で稼働するアプリケーション・MWなど連係動作するシステム構成要素も含めてトータルでマルチAZを意識した作りになっていないと意味がありません。例えば片方のAZに障害が発生してサーバがダウンした場合、もう片方の正常なサーバに切り替わった後も処理を継続できるようにアプリケーションをステートレスな作り(Webセッションを共有化するなど)にしておく必要があります。その上で、ELB(※13)のヘルスチェック間隔を減らす、アプリケーションのDNSキャッシュの保持期間を短くするなどして切替時間を減らし、利用者影響を極小化する営みも必要になってきます。
デプロイも例外ではありません。前述した通りリリース頻度を増やしたい側面があるわけですが、アプリケーションをデプロイする度にいちいちサーバを止めるわけにはいきません。そこでCodeDeploy(※14)のような仕組みを活用し、無停止デプロイをリリースのライフサイクルに取り入れるようにします。

このように一貫した高可用性を考えることが安心・安全なサービス提供に繋がります。

4.2 柔軟なスケーラビリティと物量に耐えうる実装の考慮

数百万~数千万規模の利用者が想定されるサービスゆえに、あらゆる実装で柔軟なスケーラビリティを考慮する必要があります。例えば、筆者が過去に設計したシステムではAutoScaling(※15)を採用して負荷状況に応じたサーバの水平スケールを実装しました。AutoScaling単体ではアプリケーションのデプロイやOS・MWの設定まで追随できないため、CodeDeployやIaC(Infrastructure as Code)と上手く組み合わせるようなことも必要になります。また、ログやリソース情報の収集・モニタリングといったインフラ機能についてもマネージドサービス主体に組み立てることで、サービスイン後に容易に拡張でき、ビジネス成長に応じて安定的にキャパシティプランニングを運用できる環境を整えました。

もう1点、大事な点としては独自実装を入れる部分に対して、数の暴力に耐えうる実装を忘れないことです。実際に過去にログ加工・転送処理の実装の中でAWSのログ転送用APIをそのまま利用した際に処理遅延を引き起こしてしまったことがあります。少ないログ量であれば何も問題はないのですが、決済のような膨大な数のログを短時間で捌く場合、繰り返し転送するコストが高くなっていたことが原因でした。そこで、ログ量に応じて丁度よい塩梅でバルク転送を行うように改修することで遅延を解消したことがあります。

4.3 忘れてはいけないセキュリティガバナンス

表1のセキュリティはもとより、パブリッククラウド利用のセキュリティガバナンスをいかに効かせるかも重要です。4.14.2で説明したような可用性・拡張性が簡単に手に入る反面、使い方次第ではセキュリティホールを生み出してしまうからです。例えば、適切な操作権限が設定されていなければ、S3(※16)に保管した機密情報を誰かが知らない間に全世界に公開してしまうもしれません。また、インターネット前提で外部サービスとの連携が容易にできてしまう、便利な新機能が続々と追加される、といった側面もあるため、仮にクラウドに使い慣れていたとしても意図せず情報漏洩に繋がる操作を行なってしまうリスクが潜んでいます。そうした不測の事態を防ぐため、当社で提供するA-gate(※17)のような仕組みを取り入れて適切な権限分掌や違反操作の取り締まりを行うことが重要です。

(※11)Amazon Web Services

https://aws.amazon.com/jp/

(※12)マルチAZ(Availability Zone)

1AZとはAWSのサービスが稼働する1データセンタのことで、マルチAZは複数のデータセンタにサーバなどのリソースを分散して配置することで可用性を高める仕組み

(※13)ELB(Elastic Load Balancing)

https://aws.amazon.com/jp/elasticloadbalancing/

(※16)S3(Simple Storage Service)

https://aws.amazon.com/jp/s3/

5.まとめ

世の中的に盛り上がりを見せているコード決済の仕組みを紹介し、アジリティと堅牢性を兼ね揃えたシステムを作る上でのポイントを説明しました。
NTTデータではCAFIS(※18)をはじめとした決済プラットフォームの提供やお客さまの個別の事業計画に寄り添ったビジネス企画やシステム開発を数多く手掛けています。
今後もそのナレッジを活かして社会における決済の在り方を創造していきます。

- NTTデータは、「これから」を描き、その実現に向け進み続けます -
お問い合わせ