首页 > 解决方案 > 从 json_encode PHP POST 请求获取 JSON 返回状态

问题描述

我需要使用json_encode. 我只是得到以下参考:

$key = 'my_key';
$url = 'url';

$data = array (
   'username' => 'user', 
   'api_key' => 'key',
   'orderid' => 'ORDERID-0001'
   'shipper_name' => 'SENDER',
   'shipper_contact' => 'SENDER',
   'shipper_phone' => 'sender_phone',
   'shipper_addr' => 'sender address',
   'origin_code' => 'CITYCODE',
   'receiver_name' => 'RECEIVER',
   'receiver_phone' => 'receiver_phone',
   'receiver_addr' => 'receiver address',     
   'receiver_zip' => 'receiver zip',
   'destination_code' => 'DESTCODE',
   'receiver_area' => 'SDA001',
   'qty' => '1',
   'weight' => '1',
   'goodsdesc' => 'TESTING!!',
   'servicetype' => '1',
   'insurance' => '50000',
   'orderdate' => '2019–2-10 22:02:00',
   'item_name' => 'hat',
   'cod' => '200000',
   'sendstarttime' => '2017–2-10 08:00:00',
   'sendendtime' => '2017–2-10 22:00:00',
   'expresstype' => '1',
   'goodsvalue' => '1000',
);

$data_json = json_encode(array('detail'=>array($data)));
$data_request = array (
    'data_param'=>$data_json, 
    'data_sign'=> base64_encode(md5($data_json.$key))
);

我使用 Postman 发送了上面的数据,但它返回“参数不能为空”。然后我尝试使用 curl 但响应 HTTP 500。

有人可以告诉我获得最佳响应的最佳做法吗?

顺便说一句,如果上面的代码成功,这是示例响应:

{
   "success":true,
   "desc":"request success",
   "detail":
   [
      {
         "orderid" : "ORDERID-0001",
         "status" : "Error",
         "reason" : "username or api key wrong!",
      }
      {
         "orderid" : "ORDERID-0002",
         "awb_no" : "AWBJNT-001"
         "status" : "Success",
      }
   ]
}

标签: phpjson

解决方案


首先设置标题如下

header('Content-Type: application/json');

然后生成响应并回显它。

$response[] = array(
                        'status' => 'true',
                        'desc' => 'request success',
                        'detail'=> $data,
                    );

echo json_encode(array('response' => $response));

注意:我在这里添加了基本参数,您可以根据需要添加其他详细信息。


推荐阅读