ネットワークを介したクレジットカードや銀行口座引き落としによる決済とは、「オーソリ」と呼ばれる一つの電文によって行われます。
■ オーソリ
オーソリとは、「承認」(Authorization)の略語です。実際には、商品を購入する際に、クレジットカードによる購入、あるいは、銀行口座からの引き落とし行うことです。
これは、インターネットなどのネットワークを介したオーソリ電文(要求と応答)を使って行われます。
オーソリを実施するシステム構成は、以下のようなものとなります。
・端末(リーダライタ)
購入者(カードホルダ)のクレジットカード、キャッシュカード、電子マネーなどのカードを読み書きする端末
・オーソリサーバ
端末とオーソリ電文を送受信する中継サーバ。ストラタスと呼ばれるフォールトトレランスの機器が使われる
・クレジットサーバ
オーソリサーバとクレジット購入電文を送受信するクレジット会社のサーバ
・銀行サーバ
オーソリサーバと口座引き落とし電文を送受信する銀行の勘定系サーバ
■ オーソリ電文を送信するための条件
オーソリを送信する前には、次のことを実施する必要があります。これらがすべてOKだったときにのみ、オーソリ電文を暗号化し、送信する必要があります。
①本人認証
カードホルダが本当に本人かをパスワード、生体認証などによって確認する
②カード認証
カードが、正規のカード会社から発行されたものかどうか、カード会社が提供するアクセス鍵を使ってカードを読み出すことで確認する
③端末認証
カード会社のアクセス鍵を復号化する輸送鍵(出荷鍵)を端末内に焼き込んだ端末だけが、アクセス鍵を復号化し、使用できる
④サーバ認証
オーソリサーバとSSL(HTTPS)によるサーバ認証が必要であり、サーバ証明書の正当性を事前に端末に設定されたルート証明書を使って確認する
■ オーソリ電文
要求と応答のオーソリ電文に設定される主な項目としては、以下のようなものとなります。
同一電文のチェックは、STUN、取引日時、端末番号によって実施されます。
原則、同一の電文を送信することは不可であり、もし、同一電文をオーソリサーバが受信した場合、不正アクセスとして認識され、システム関係者へ警告メールなどが発せられます。
・オーソリ要求
①STUN(オーソリ電文のシーケンス番号)
オーソリ毎にインクリメントして設定
②取引日付
③端末番号
④MTI(メッセージタイプID)
オーソリ
⑤仕向先会社コード
クレジット、口座(引き落とし)の区別
⑥会員番号
⑦金額
⑧サイクル通番
端末側で保持されたサイクル通番を設定する
・オーソリ応答
①~⑦は要求と同じデータが設定される
①STUN(オーソリ電文のシーケンス番号)
②取引日付
③端末番号
④MTI
⑤仕向先会社コード
⑥会員番号
⑦金額
⑧サイクル通番
オーソリサーバ側で保持されたサイクル通番が設定される
⑨結果
OK / NG
■ サイクル通番
オーソリ電文にはサイクル通番という端末とオーソリサーバでオーソリ実施の同期をとる仕組みがあります。
サイクル通番は、端末とオーソリサーバで、常に同じ番号であることが求められます。
サイクル通番は、端末とオーソリサーバの両方で各々保持し、オーソリ要求と応答でやり取りされます。
具体的には、以下のような手順です。
①端末は、オーソリ要求のサイクル通番に端末の保持するサイクル通番を設定して送信
②オーソリサーバは、受信したオーソリ要求のサイクル通番を、オーソリサーバで保持しているサイクル通番と比較
一致していた場合、サイクル通番をインクリメントし、オーソリ応答に設定
不一致であった場合、サイクル通番をデクリメントして元に戻し、直前の取引を自動で取り消す(自動取消)
これによって、取引の不整合(サイクル通番の不整合)が発生しても、次のオーソリ要求の時点で訂正されます。
■ 障害取消
オーソリ電文によって実施された取引を端末から取消手段が「障害取消」です。
以下の障害取消電文を使って実施されます。
障害取消応答の結果がOKの場合、オーソリサーバのサイクル通番はデクリメントされますので、端末で保持するサイクル通番もデクリメントする必要があります。
・障害取消要求
①~③、⑤~⑥は、取り消すオーソリ要求で設定した値を指定する
①STUN
②取引日付
③端末番号
④MTI(メッセージタイプID)
障害取消
⑤会員番号
⑥金額
・障害取消応答
①~⑥は、障害取消要求と同じ値が設定される
①STUN
②取引日付
③端末番号
④MTI(メッセージタイプID)
⑤会員番号
⑥金額
⑦結果
OK/NG
障害取消は、以下のケースの際に実施されます。
1)オーソリ要求を送信時
オーソリ要求の送信異常となった際、要求が送信された可能性があるとき
オーソリサーバとの接続異常のように明らかに要求を送信できていない場合には、実施しない
2)オーソリ応答受信時
オーソリ要求送信完了後、オーソリ応答が受信できずタイムアウトになったとき
3)オーソリ応答受信後
オーソリ応答受信完了後、端末側の処理で異常となった場合、取引を取り消すとき
■ まとめ
オーソリは、誰かのお金を誰かに送金する機能です。さらに、ネットワークを介して実施されるため、異常が発生するリスクがあり、不整合が起きるケースも少なくありません。
サイクル通番による自動取消や障害取消によっても不整合が解消しないこともあります。
オーソリ要求や障害取消要求をリトライも技術的には可能ですが、2重で実施される可能性があるため、原則実施できません。
そのような場合、運用によって手動で取引を取り消さざるを得ないこともあります。
ソフトウェア開発・システム開発業務/セキュリティ関連業務/ネットワーク関連業務/最新技術に関する業務など、「学習力×発想力×達成力×熱意」で技術開発の実現をサポート。お気軽にお問合せ下さい