【发布时间】:2017-10-23 05:03:31
【问题描述】:
我正在使用 API 在我的 codeigniter 项目中发送短信。发送后会返回一个json形式的response数组到我项目中的回调url。我需要在我的数据库中更新这个响应。这是我的代码:
响应数组将如下所示:
{"req_id":"809ff62f-74a9-45a5-9cb5-5e60763289af","status":"0" ,"comment":"OK"}
我的回调 url 重定向到我的控制器中的以下函数
public function templateCallback() {
$json = file_get_contents('php://input');
$json = urldecode($json);
$obj = json_decode($json, TRUE);
$reqID = $obj->req_id;
$status = $obj->status;
print_r($obj);
$this->db->where('TemplateRequestID', $reqID);
$this->db->set('TemplateApproved', $status);
$this->db->update('templatemaster_tbl');
}
但它永远不会更新。我的代码有什么问题?我不擅长json。所以我不确定这是在 php 中获取和解码 json 数组的正确方法。有人请帮帮我。
为了测试这一点,我在我的项目中创建了一个视图,并通过 ajax 函数发送相同的数组,例如:
var base_url = '<?php echo base_url()?>';
$('#test').click(function() {
var val = $('#testvalue').text();
$.ajax({
type: 'post',
url: base_url + 'API/templateCallback',
data: {
val
},
success: function (response) { console.log(response);
}
});
});
并尝试在控制器功能中同时打印$json 和$obj。
$json 显示如下字符串:val=%7B%22req_id%22%3A%228b3eef97-330a-4271-8450-0676fbac8885%22%2C%22status%22%3A%220%22%2C%22comment%22%3A%22OK%22%7D
而$obj 什么也不显示
【问题讨论】:
-
print_r($obj);的值是多少? -
任何错误或消息?
-
@madalinivascu 它什么也没显示
-
@AZinkey 没有错误
-
先试试
urldecode($json);
标签: php json codeigniter