アフィリエイト広告を利用しています

2020年11月12日

セッションがたまに消えることへの対応

こんなシステムで


自作のカード決済用システム。言語はPHP。

まず、氏名や住所等の個人情報を登録してもらい、
次画面でカード番号等の決済に必要な情報を登録してもらう。
カード番号等を決済代行会社のシステムに送り、
決済結果を受け取って、データ登録を完了する。

起きること


決済情報を送って、決済結果を受け取るまでの間、氏名・住所等は
セッション変数として保存しているのだが、ときどき消えることがある。
発生確率は0.02%未満だが、先日、数年振りに発生した。

どう対応したか


セッションが消える原因をWebで調べてみたが、こちらの環境に当てはまる
ものがない。抜本的解決はあきらめて、回避策を考えた。

受領する決済結果の中に決済番号がある。決済番号の一部に仮登録IDが埋め
込んである。決済処理を行う前に氏名・住所をデータベースに仮登録してい
て、そのときに仮登録IDを発番している。
仮登録IDが分かれば、氏名・住所を抽出できるので、それらのデータをデー
タベースに本登録して、登録処理を完了できる。

セッションが消えていた場合は、決済番号から仮登録IDを抜き出し、
それをキーにして個人情報を抽出する処理を追加して、回避策は完成した。

喜ぶべきか、悲しむべきか。


セッションが消えても消えなくても、データ登録を完了できるようになった。
喜ばしいことなのだが、この問題、発見から解決まで10年以上かかった。
情けない気持ちもあるので、不思議な心境。

不思議と言えば、10年以上解決できなかった問題をなぜ今、
解決できたのかも不思議。







posted by db-engineer at 00:00 | Comment(0) | PHP

この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

検索
最新記事
カテゴリーアーカイブ
プロフィール
db-engineerさんの画像
db-engineer
プロフィール
タグクラウド