質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.60%

  • CentOS

    2641questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Apache

    1776questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • HTTPS

    252questions

    HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

サーバーへのHTTPリクエストが完了しない。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 182

wasabin

score 6

 問題点

とあるポイントサイトにて、ポイント購入の手続きで決済サービスから
管理しているサーバーに決済完了のリクエストを事前に指定したURL
で受け付けております。

その際、決済会社側ではリクエストが完了せずにタイムアウトにて、
エラーとなっているようで、現在対応を求められています。

しかし、サーバーのアクセスログにも記録が残り、
指定したURLのスクリプトも正常に実行されております。
(HTTPステータスコードは、決済会社のリクエストも 200 となっております。 )

イメージ説明

今回問題になっているのは、図の2のリクエストに対する3のレスポンスが
決済会社側ではタイムアウトになってしまう状況です。

問題の切り分けの為、スクリプト側の問題でないか判断するため
別ファイルを用意し、OKを返却するだけのページを設置しました。

https://example.com/test.php

<?php
//test.php
exit('OK');

ブラウザでの確認、ローカル環境/外部の別サーバーからcurlによる確認
など試した所、OKを取得することができました。
決済会社にも
https://example.com/test.php
へのリクエストを試していただきましたが、
タイムアウトになるとの回答で事でした。

今回の決済会社からのリクエストもアクセスログでは、200のステータスコードが
ログに残っておりました。

 期待される状態

  • 図の2〜3のリクエスト-レスポンスにて、決済会社がHTTPステータスコード200でOKを取得する。

 決済会社への確認

決済会社からは、
「リクエストが完了せずタイムアウトになるので200が返るようにして下さい。」
「こちら側は問題ないので御社で対応してください。」
との事で、現状これ以上の情報を引き出せていない状況となります。

 知りたいこと

この状況で試すべき事は何があるのか、
決済会社に確認依頼するべき内容はあるのか、
問題を切り分けるには、何を試してみるべきか教えていただけないでしょうか?

 補足情報

CentOS 7.2
Apache 2.4.6

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

決済会社側がもう少し丁寧にエラー情報を開示してくれれば、
調べるべき箇所を絞れるのかもしれませんが、
この質問文を読まされても多分誰も何も出来ない気がします。

・第三者がその状況を再現できない。
・サービスの名前も伏せられているので経験談を提供しようにも出来ない。

せめて、どういうやり取りを相手方としているのか、
時系列上にどっちからどういうパラメータを送って
どういう応答を期待しているのか、
などUMLのシーケンス図に起こしてくれないとわからない。

質問者さんの把握されている状況を第三者に伝えるために
何が必要か丁寧に考えてほしいです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/11 18:50 編集

    ご回答ありがとうございます。
    かなり言葉足りませんでした。申し訳ございません。
    把握している状況を加筆致します。

    キャンセル

checkベストアンサー

0

不思議な話ですね。

アクセスログがある以上TCPでのデータ受信には成功しており、
つまりスリーウェイハンドシェイクが完了しているのでL3では双方向に疎通しているのは確定かと思います。

L4は問題ないかどうか未確定です。
FINフラグが立っているパケットを破棄する存在が経路上にいるとかあるかも知れません。

怪しいところを削って行きましょう。

  • test.php ではなく test.html を返却する(phpを疑いの範囲から外す)
  • tcp 疎通確認コマンドをあちらに打ってもらう(L4を疑いの範囲から外す)

とかですかね。ぶっちゃけよく分からないです。
他の回答が状況を打開することを期待します。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/14 11:02

    ありがとうございます!
    一度その線で確認してみます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    画像をアップロードする時、画像のサイズをエコしたが0と表示。

    実は画像をアップロードして、小さいデータならうまく表示しますが、4Mや5M以上のデータですと、自分が書いたエラーチェックが出てきます。確認のためecho $_FILES['upfi

  • 解決済

    laravelのdb接続について質問

    前提・実現したいこと (ララ帳をもとにlaravelを勉強しているものです。) artisan migrate コマンドを使って、デフォルトで用意されているユーザーテーブルを作

  • 解決済

    mysqlのdate型をハイフンではなくスラッシュに変える

    前提・実現したいこと mysqlに保存したdate型はYYYY-MM-DDで出力されますが、 これをYYYY/MM/DDのようにハイフンではなくスラッシュ区切りで表示させたいと

  • 解決済

    PHPの日時の処理

    PHPの日時の処理について質問をさせていただきます。 例えば、フォームからのリクエストで下記のようなものがあるとします。 開始月: 2016-01-01 00:00:00

  • 受付中

    phpにかんしてです

    どのようにプルダウン式で選択後送信したらはんえいできます?詳しいサイトなどありますか?

  • 解決済

    phpのDateTime::diffで総分数を出したい

    phpのDateTimeで分差を出したいのですが、調べてみる限り用意されていないようなのです。 http://jp2.php.net/manual/ja/dateinterval

  • 解決済

    【PHP】配列の採番

    下記のようなタブ区切りのデータをX行目スタートでy行を取得するPHP(fget.php)を組みました。 <?php $p=$_GET['p']-1; $e=$_GET['e

  • 解決済

    【MySQL】アプリからのコネクションを確認する方法が分かりません。

    お世話になります。いつもありがとうございます。 表題の件、知見のある方がおられましたら、 ご教示お願いいたします。 前提・実現したいこと LAMP環境でアプリを作成しております

同じタグがついた質問を見る

  • CentOS

    2641questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Apache

    1776questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • HTTPS

    252questions

    HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。