程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

使用 PHP 接收 JSON POST

发布于2023-03-21 14:23     阅读(315)     评论(0)     点赞(17)     收藏(1)


我正在尝试在支付接口网站上接收 JSON POST,但我无法对其进行解码。

当我打印时:

echo $_POST;

我得到:

Array

当我尝试这个时我什么也没得到:

if ( $_POST ) {
    foreach ( $_POST as $key => $value ) {
        echo "llave: ".$key."- Valor:".$value."<br />";
    }
}

当我尝试这个时我什么也没得到:

$string = $_POST['operation'];
$var = json_decode($string);
echo $var;

当我尝试这个时我得到 NULL:

$data = json_decode( file_get_contents('php://input') );
var_dump( $data->operation );

当我做:

$data = json_decode(file_get_contents('php://input'), true);
var_dump($data);

我得到:

NULL

JSON 格式是(根据支付站点文档):

{
   "operacion": {
       "tok": "[generated token]",
       "shop_id": "12313",
       "respuesta": "S",
       "respuesta_details": "respuesta S",
       "extended_respuesta_description": "respuesta extendida",
       "moneda": "PYG",
       "monto": "10100.00",
       "authorization_number": "123456",
       "ticket_number": "123456789123456",
       "response_code": "00",
       "response_description": "Transacción aprobada.",
       "security_information": {
           "customer_ip": "123.123.123.123",
           "card_source": "I",
           "card_country": "Croacia",
           "version": "0.3",
           "risk_index": "0"
       }
    }
}

支付站点日志显示一切正常。有什么问题?


解决方案


尝试;

$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
echo $data["operacion"];

从您的 json 和您的代码来看,您似乎已经正确拼写了单词operation,但它不在 json 中。

编辑

也许还值得尝试从 php://input 回显 json 字符串。

echo file_get_contents('php://input');


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1944124/d2f20ef46c4f6c57a31d/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

17 0
收藏该文
已收藏

评论内容:(最多支持255个字符)