我们一直在尝试集成这个回调方法,它基本上是从我们合作伙伴的服务器到我们的服务器的 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=]
每当交易发生时,我们所在领域之外的合作伙伴的服务器都会发布到我们的服务器上,我们有一个 callback.php 服务,该服务处理所需并从帖子接收数据并写入 mysql 数据库。
我们注意到在浏览器上点击上面的 URL 会按预期获取数据并将其写入数据库。但是当服务器到服务器 HTTP 调用发生时,发布服务器会收到 ERROR 400。
这个回调方法是在没有通过 http 而不是 https 进行身份验证的情况下执行的,只是为了暂时保持简单。
我们正在使用的 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 代码方面有什么特别值得我们研究的吗?
在此先感谢您的帮助。