決済APIに対してHTTPステータス200ではなく302が返る
今とあるAPIを使って決済を実装しているのだが、決済部分で表題の問題が発生している。
(※私は結局解決できませんでした)
環境は PHP Codeigniter EC2 ELB(AWSのロードバランサ)
流れは以下のとおり
1.APIを使ってユーザをリダイレクトさせるURLを取得
この際、決済確定通知用のURLと決済確定後遷移するURL(コールバックURL)を渡す
2.1で受け取ったURLにユーザをリダイレクト
3.ユーザは遷移先の画面で決済を確定もしくはキャンセルする
4.プラットフォーム側は決済確定通知用のURLに決済情報をGETに乗せて通知
このレスポンスとしてHTTPステータス200のレスポンスを返す必要がある
5.4でHTTPステータス200を確認すると、プラットフォーム側はコールバックURLにユーザをリダイレクトする
で赤字になっている4の場面において、レスポンスが302になってしまう。
調べたところもっとも近い症状がcodeigniterのメーリスに乗っていた。
302 エラーで困ってます (Codeigniter-users) - CodeIgniter日本語化 - OSDN
で、もう症状が近いというかまったく一緒なんじゃないかと。
調査した点は以下のとおり
- ブラウザからアクセスすると200を返す
- htaccessを消しても効果なし
- リダイレクトをしているところもなし
とりあえず上記サイトに乗ってるところは調べたが特に問題なし。
普通にアクセスすると200を返すのに、プラットフォーム側からのアクセスだと
302を返すのがよくわからない。
うーむ。。。