私たちは、基本的にパートナーのサーバーから私たちのサーバーへの HTTP GET / POST であるこのコールバック メソッドを統合しようとしています。コールバック URL は次のようになります -
http://www.yourserver.com/callback.php?tid=[=tid=]&uid=[=order_id=]×tamp=[=timestamp=]&country=[=country=]&ip=[=ip=]&useragent=[=useragent=]&sid=[=subid=]&payout=[=payout=]¤cy=[=currency=]&udid=[=iphone_udid=]&campaign_id=[=campaign_id=]
トランザクションが発生するたびに、私たちがいる領域外にあるパートナーのサーバーがサーバーにポストされます。そこでは、必要な処理を行い、ポストからデータを受け取り、mysql データベースに書き込む callback.php サービスがあります。
ブラウザで上記の URL にアクセスすると、期待どおりにデータが取得され、データベースに書き込まれます。しかし、サーバーからサーバーへの HTTP 呼び出しが発生すると、ポスティング サーバーはエラー 400 を受け取ります。
このコールバック メソッドは、単純にするために https ではなく http を介して認証なしで実行されます。
使用している callback.php コードは以下のとおりです。
<?php
include "DBConnection.inc";
require("logging.php");
// Fetch data from callback url
$uid = $_REQUEST['uid'];
$tid = $_REQUEST['tid'];
$sid = $_REQUEST['sid'];
$timestamp = $_REQUEST['timestamp'];
$country = $_REQUEST['country'];
$ip = $_REQUEST['ip'];
$useragent = $_REQUEST['useragent'];
$payout = $_REQUEST['payout'];
$currency = $_REQUEST['currency'];
$udid = $_REQUEST['udid'];
$campaign_id = $_REQUEST['campaign_id'];
// Initialize the local variables
$errorLoggingPath = "callback-url.log";
// Insert data into database
$insertQuery = "INSERT INTO tb_callback_url VALUES ('$uid', '$tid', '$sid', '$timestamp', '$country', '$ip', '$useragent', '$payout', '$currency', '$udid', '$campaign_id')";
mysql_query($insertQuery);
if( mysql_errno() <> 0 )
{
LogError("INSERT failed in tb_callback_url: " . mysql_error(), __FILE__, __LINE__ , $errorLoggingPath);
}
mysql_close();?>
Web サーバーの設定や callback.php コードに関して、特に調査すべき点はありますか?
助けてくれてありがとう。