谢谢大家。 我正在使用一个支付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
,以便在我的控制器方法中将付款标记为已完成???
非常感谢。
答案 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
。
这非常有效......
感谢控制器的想法