Codeigniter没有收到请求

时间:2014-08-22 18:27:40

标签: php codeigniter

我正在努力将付款/订阅解决方案(更具体地说,来自巴西的MoIP付款)实施到Codeigniter项目中。每次订阅以任何方式创建或更改时(如付款时),它都会向预先配置的URL发送通知。

我的问题是:我似乎无法在项目的指定URL /控制器上收到通知。当前的付款方式以类似的方式工作,收到的通知没有任何问题。

我已经使用test-cors.org进行了测试,对于POST和GET方法,结果是200 OK。手动访问该方法会生成日志输出。我尝试在htaccess文件中设置Header set Access-Control-Allow-Origin "*",在构造中设置header("Access-Control-Allow-Origin: *");但没有运气。改变htaccess实际上导致在test-cors.org上返回XHR代码0。

我创建了一个请求文件夹,向您展示请求的结构:http://requestb.in/1l3wms21?inspect(屏幕截图:http://i.imgur.com/kTVmJyb.png)。

可能是什么问题?我已经没想完了。这是接收器中的代码:

function process_notification() {
    log_message('info', 'http request: ' . $_SERVER['REQUEST_METHOD']);
    $data = file_get_contents("php://input");

    $findme = "{";
    $pos = strpos($data, $findme);

     if ($pos === 0) {
        $ponteiro = fopen(FCPATH . "data.txt", "w");
        fwrite($ponteiro, $data);
        fclose($ponteiro);
    }

    if (filesize('data.txt')) {
        $ponteiro = fopen("data.txt", "r");
        $dataTXT = fread($ponteiro, filesize("data.txt"));
        echo("JSON: [");
        print_r($dataTXT);
        echo("]<br>");
        echo(FCPATH . "data.txt");
        fclose($ponteiro);
    }
    echo(print_r($_POST));

    log_message('info', '');
    log_message('info', 'notification received');
    log_message('info', print_r($_POST, true));
    log_message('info', '');
}

编辑:添加日志

这是使用浏览器访问时的浏览器输出。控制台是空的。

Array ( ) 1

以下是通过浏览器访问时的codeigniter日志:

INFO  - 2014-08-22 16:19:03 --> http request: GET
INFO  - 2014-08-22 16:19:03 --> 
INFO  - 2014-08-22 16:19:03 --> notification received
INFO  - 2014-08-22 16:19:03 --> Array
(
)

INFO  - 2014-08-22 16:19:03 --> 

通过订阅触发通知不会输出任何日志。无论浏览器还是远程访问,data.txt文件都是空的。

0 个答案:

没有答案