0

我们一直在尝试集成这个回调方法,它基本上是从我们合作伙伴的服务器到我们的服务器的 HTTP GET / POST。回调 URL 如下所示 -

http://www.yourserver.com/callback.php?tid=[=tid=]&uid=[=order_id=]&timestamp=[=timestamp=]&country=[=country=]&ip=[=ip=]&useragent=[=useragent=]&sid=[=subid=]&payout=[=payout=]&currency=[=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 代码方面有什么特别值得我们研究的吗?

在此先感谢您的帮助。

4

0 回答 0