在codeigniter中附加到控制器方法的php文件中的访问变量

时间:2018-03-10 22:57:32

标签: php json codeigniter

谢谢大家。 我正在使用一个支付api,我提供了一个回调网址,以便我收到数据通知我的系统并更新付款为"付费"。 api在成功时发布原始json数据,并将事务的详细信息保存在realfile.php中。

realfile.php如下:

<?php 
$post = file_get_contents('php://input');  
$data = json_decode($post); 
$reference=$data->reference; 
$reason=$data->reason;  
?>

我的回调网址如下:

 http://localhost/index.php/controller/method/realfile.php

我的问题:

如何从URL访问变量$txid, $reason, $reference,以便在我的控制器方法中将付款标记为已完成???

非常感谢。

2 个答案:

答案 0 :(得分:0)

因此,如果您提供付款API的URL,那么我认为这是您做出第一个重要决定的地方。你说你的回调网址是:

/index.php/controller/method/realfile.php

但是使用CodeIgniter,根据您的配置,您可以简单地将URL设置为:

/index.php/realfile

这将允许您使用以下内容创建Realfile.php控制器:

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Realfile extends CI_Controller 
{
    public function index()
    {
        $post      = file_get_contents('php://input');  
        $data      = json_decode($post); 
        $reference = $data->reference; 
        $reason    = $data->reason;

        // Actually, you have access to anything that is inside data:
        echo '<pre>';
        var_dump( $data );
        echo '</pre>';
    }
}

通过这样做,您可以完全访问所有CodeIgniter的核心类,库,帮助程序,数据库等。

答案 1 :(得分:0)

我实际上并没有使用file_get_contents('php://input')获得结果...所以我阅读了这些文档并遇到了这个问题:

`$这 - &GT;负载&GT;辅助(&#34;安全&#34);

    $stream = $this->security->xss_clean( $this->input->raw_input_stream );

    $data = json_decode(trim($stream), true);`

我现在可以作为关联数组访问$data。 这非常有效...... 感谢控制器的想法