为了账号安全,请及时绑定邮箱和手机立即绑定

用PHP接收JSON帖子

用PHP接收JSON帖子

PHP
MYYA 2019-06-03 15:09:27
用PHP接收JSON帖子我试图在一个支付界面网站上收到一个JSON帖子,但我无法破解它。当我打印: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;当我尝试这样做时,我会变成空:$data = json_decode( file_get_contents('php://input') );var_dump( $data->operation );当我这么做的时候:$data = json_decode(file_get_contents('php://input'), true);var_dump($data);我得到:NULLJSON格式是(根据支付站点文档):{    "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"        }     }}付款网站日志显示一切正常。有什么问题吗?
查看完整描述

4 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

试一试;

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

从您的json和您的代码来看,您似乎拼写了这个单词。操作在你的头上是对的,但它不在JSON里面。

编辑

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

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


查看完整回答
反对 回复 2019-06-03
?
慕后森

TA贡献1802条经验 获得超5个赞

例如,如果您已经将参数设置为$_POST[‘EG’],并且不希望更改它,那么只需这样做:

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

这将省去将所有$_POST更改为其他内容的麻烦,并且如果希望删除这一行,则允许您仍然发出正常的POST请求。


查看完整回答
反对 回复 2019-06-03
?
HUH函数

TA贡献1836条经验 获得超4个赞

使用$HTTP_RAW_POST_DATA而不是$_POST.

它会给你提供真实的数据。

您将能够使用json_decode()后来。


查看完整回答
反对 回复 2019-06-03
  • 4 回答
  • 0 关注
  • 770 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信