Браузер отправил на сервер неверный запрос

Мне нужно вызвать URL-адрес api веб-службы и получить результат ....

Полезная нагрузка JSON предоставлено командой API:

{
"request_id": "R09",
"client_name": "CLIENT",
"services": [
{
"service_code": "REGULAR",
"service_details": [
{
"service_leg": "FORWARD",
"service_data": {
"vendor_name":"Ekart",
"amount_to_collect": 1000,
"dispatch_date": "",
"customer_promise_date": "",
"delivery_type": "SMALL",
"source": {
"address": {
"first_name": "AVThamizhmahan",
"address_line1": "3/1675 ES Garden Vazhudaretty Post Villupuram",
"address_line2": "Tamil Nadu",
"pincode": "400066",
"city": "Villupuram",
"state": "Tamil Nadu",
"primary_contact_number": "88888888"
}
},
"destination": {
"address": {
"first_name": "AVThamizhmahan",
"address_line1": "3/1675 ES Garden Vazhudaretty Post Villupuram",
"address_line2": "Tamil Nadu",
"pincode": "400066",
"city": "Villupuram",
"state": "Tamil Nadu",
"primary_contact_number": "88888888"
}
},
"return_location": {
"address": {
"first_name": "AVThamizhmahan",
"address_line1": "3/1675 ES Garden Vazhudaretty Post Villupuram",
"address_line2": "Tamil Nadu",
"pincode": "400066",
"city": "Villupuram",
"state": "Tamil Nadu",
"primary_contact_number": "88888888"
}
}
},
"shipment": {
"client_reference_id": "ABCD",
"tracking_id": "CLTC0000000001",
"shipment_value": 2000,
"shipment_dimensions": {
"length": {
"value": 1
},
"breadth": {
"value": 1
},
"height": {
"value": 1
},
"weight": {
"value": 1
}
},
"return_label_desc_1": "",
"return_label_desc_2": "",
"shipment_items": [
{
"product_id": "134883075",
"item_content":{},
"category": "Apparel",
"product_title": "Mast&HarbourBlackHandbag: Handbags",
"quantity": 1,
"cost": {
"total_sale_value": 500,
"total_tax_value": 100 ,
“tax_breakup”:{
“cgst”:0.0,
“sgst”:0.0,
“igst”:0.0
}
},
"seller_details": {
"seller_reg_name": "Seller Registered Legal Name",
"vat_id": "",
"cst_id": "",
“tin_id”:””,
“gstin_id”:””
},
“hsn” :””,
“ern”:””,
“discount”:0.0,
"legal_entity": "",
"billable_entity": "",
"cod_remittance_entity": "",
"item_attributes": [
{
"name": "order_id",
"value": "ABCD"
},
{
"name": "invoice_id",
"value": "INV1234"
},
{
"name": "item_dimensions",
"value": "l:b:h:w"
},
{
"name": "brand_name",
"value": "Peter England"
}
],
"handling_attributes": [
{
"name": "isFragile",
"value": "false"
},
{
"name": "isDangerous",
"value": "false"
}
]
}
]
}
}
]
}
]
}

Я вызываю JSon как массив и передаю URL:

<?php

$url = "https://staging.logistics.com/v2/shipments/create";

$data = array
( 
"request_id"=> "R09",
"client_name"=> "DOC",
"services"=> [
array (
"service_code"=> "REGULAR",
"service_details"=> [
array (
"service_leg"=> "FORWARD",
"service_data"=> array (
"vendor_name"=>"Ekart",
"amount_to_collect"=> 1000,
"dispatch_date"=> "",
"customer_promise_date"=> "",
"delivery_type"=> "SMALL",
"source"=> array (
"address"=> array (
"first_name"=> "AVThamizhmahan",
"address_line1"=> "31675 ES Garden Vazhudaretty Post Villupuram",
"address_line2"=> "Tamil Nadu",
"pincode"=> "400066",
"city"=> "Villupuram",
"state"=> "Tamil Nadu",
"primary_contact_number"=> "88888888"
)
),
"destination"=> array (
"address"=> array (
"first_name"=> "AVThamizhmahan",
"address_line1"=> "31675 ES Garden Vazhudaretty Post Villupuram",
"address_line2"=> "Tamil Nadu",
"pincode"=> "400066",
"city"=> "Villupuram",
"state"=> "Tamil Nadu",
"primary_contact_number"=> "88888888"
)
),
"return_location"=> array (
"address"=> array (
"first_name"=> "AVThamizhmahan",
"address_line1"=> "31675 ES Garden Vazhudaretty Post Villupuram",
"address_line2"=> "Tamil Nadu",
"pincode"=> "400066",
"city"=> "Villupuram",
"state"=> "Tamil Nadu",
"primary_contact_number"=> "88888888"
)
)
),
"shipment"=> array (
"client_reference_id"=> "ABCD",
"tracking_id"=> "DOCC0000000001",
"shipment_value"=> 2000,
"shipment_dimensions"=> array (
"length"=> array (
"value"=> 1
),
"breadth"=> array (
"value"=> 1
),
"height"=> array (
"value"=> 1
),
"weight"=> array (
"value"=> 1
)
),
"return_label_desc_1"=> "",
"return_label_desc_2"=> "",
"shipment_items"=> [
array (
"product_id"=> "134883075",
"item_content"=>array (),
"category"=> "Apparel",
"product_title"=> "Mast&HarbourBlackHandbag=> Handbags",
"quantity"=> 1,
"cost"=> array (
"total_sale_value"=> 500,
"total_tax_value"=> 100 ,
"tax_breakup"=>array (
"cgst"=>0.0,
"sgst"=>0.0,
"igst"=>0.0
)
),
"seller_details"=> array (
"seller_reg_name"=> "Seller Registered Legal Name",
"vat_id"=> "",
"cst_id"=> "",
"tin_id"=>"",
"gstin_id"=>""
),
"hsn" =>"",
"ern"=>"",
"discount"=>0.0,
"legal_entity"=> "",
"billable_entity"=> "",
"cod_remittance_entity"=> "",
"item_attributes"=> [
array (
"name"=> "order_id",
"value"=> "ABCD"
),
array (
"name"=> "invoice_id",
"value"=> "INV1234"
),
array (
"name"=> "item_dimensions",
"value"=> "l=>b=>h=>w"
),
array (
"name"=> "brand_name",
"value"=> "Peter England"
)
],
"handling_attributes"=> [
array (
"name"=> "isFragile",
"value"=> "false"
),
array (
"name"=> "isDangerous",
"value"=> "false"
)
]
)
]
)
)
]
)
]
);
echo $data=json_encode($data);
$data_string = json_encode(array(
    "Payload" => $data
));

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Content-Type : application/json"
));

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     "Authorization : Basic ZGFpbHlvcmRlcnM6ZHVtbf4fsww="
));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);

curl_setopt($ch, CURLOPT_POST, 1); 
curl_close($ch);

echo "$result";

?>

Ответ:

400 Bad request
Your browser sent an invalid request.

Я отправляю в правильном формате?

Вот документ APi: https://drive.google.com/open?id=13AstBwus-uErvElg2-FN0knIy1m9lMHa

Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация ....

Я использую ekart api .....

Заранее спасибо....

Обновлять

Ниже приведен результат POSTMAN:

enter image description here

Обновление 2:

Ошибка:

{"ответ": [{"status": "REQUEST_REJECTED", "message": ["X_Merchant_Code is null"]}], "request_id": "2aa4cf98-0b59-4e2d-ba10-79c39663d6b6"}

<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ALL & ~MYSQLI_REPORT_INDEX);

$url = "https://staging.ekartlogistics.com/v2/shipments/create";

$data1 = array
( 
"request_id"=> "835",
"client_name"=> "DOC",
"services"=> [
array (
"service_code"=> "REGULAR",
"service_details"=> [
array (
"service_leg"=> "FORWARD",
"service_data"=> array (
"vendor_name"=>"Ekart",
"amount_to_collect"=> 1000,
"dispatch_date"=> "",
"customer_promise_date"=> "",
"delivery_type"=> "SMALL",
"source"=> array (
"address"=> array (
"first_name"=> "AVThamizhmahan",
"address_line1"=> "31675 ES Garden Vazhudaretty Post Villupuram",
"address_line2"=> "Tamil Nadu",
"pincode"=> "560034",
"city"=> "Villupuram",
"state"=> "Tamil Nadu",
"primary_contact_number"=> "88888888"
)
),
"destination"=> array (
"address"=> array (
"first_name"=> "AVThamizhmahan",
"address_line1"=> "31675 ES Garden Vazhudaretty Post Villupuram",
"address_line2"=> "Tamil Nadu",
"pincode"=> "110037",
"city"=> "Villupuram",
"state"=> "Tamil Nadu",
"primary_contact_number"=> "88888888"
)
),
"return_location"=> array (
"address"=> array (
"first_name"=> "AVThamizhmahan",
"address_line1"=> "31675 ES Garden Vazhudaretty Post Villupuram",
"address_line2"=> "Tamil Nadu",
"pincode"=> "110037",
"city"=> "Villupuram",
"state"=> "Tamil Nadu",
"primary_contact_number"=> "88888888"
)
)
),
"shipment"=> array (
"client_reference_id"=> "ABCD",
"tracking_id"=> "DOCC0000000001",
"shipment_value"=> 2000,
"shipment_dimensions"=> array (
"length"=> array (
"value"=> 1
),
"breadth"=> array (
"value"=> 1
),
"height"=> array (
"value"=> 1
),
"weight"=> array (
"value"=> 1
)
),
"return_label_desc_1"=> "",
"return_label_desc_2"=> "",
"shipment_items"=> [
array (
"product_id"=> "134883075",
"item_content"=>array (),
"category"=> "Apparel",
"product_title"=> "Mast&HarbourBlackHandbag=> Handbags",
"quantity"=> 1,
"cost"=> array (
"total_sale_value"=> 500,
"total_tax_value"=> 100 ,
"tax_breakup"=>array (
"cgst"=>0.0,
"sgst"=>0.0,
"igst"=>0.0
)
),
"seller_details"=> array (
"seller_reg_name"=> "Seller Registered Legal Name",
"vat_id"=> "",
"cst_id"=> "",
"tin_id"=>"",
"gstin_id"=>""
),
"hsn" =>"",
"ern"=>"",
"discount"=>0.0,
"legal_entity"=> "",
"billable_entity"=> "",
"cod_remittance_entity"=> "",
"item_attributes"=> [
array (
"name"=> "order_id",
"value"=> "ABCD"
),
array (
"name"=> "invoice_id",
"value"=> "INV1234"
),
array (
"name"=> "item_dimensions",
"value"=> "l=>b=>h=>w"
),
array (
"name"=> "brand_name",
"value"=> "Peter England"
)
],
"handling_attributes"=> [
array (
"name"=> "isFragile",
"value"=> "false"
),
array (
"name"=> "isDangerous",
"value"=> "false"
)
]
)
]
)
)
]
)
]
);
echo $data=json_encode(array("payload"=>$data1));
echo "<br/><br/>";//die;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

curl_setopt($curl, CURLOPT_HTTPHEADER, Array("Content-Type: application/json", "X_Merchant_Code: DOC"));


curl_setopt($curl, CURLOPT_USERPWD, "dailyorders:dummyKey"); //Your credentials goes here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //IMP if the url has https and you don't want to verify source certificate

$curl_response = curl_exec($curl);

curl_close($curl);

print_r($curl_response);die;


?>

как вы отправляете json? разместить его в POSTMAN, используя запрос ajax, что-то еще? Как вы читаете опубликованный JSON в своем PHP-скрипте?

chiliNUT 26.10.2018 08:22

@chiliNUT Спасибо за ответ, я использую для этого curl ....

user8444404 26.10.2018 08:24

@chiliNUT, если я звоню не так, пожалуйста, посоветуйте мне, как правильно звонить, чтобы получить правильный ответ .....

user8444404 26.10.2018 08:31

вам не хватает метода PUT на ur CURL

Julius Limson 26.10.2018 08:44

@YuukkaLimson Я использую post, мне все еще нужен PUT?

user8444404 26.10.2018 08:45

@chiliNUT мне нужно передать json format в php вместо array?

user8444404 26.10.2018 08:53

@YuukkaLimson мне нужно передать json format в php вместо array?

user8444404 26.10.2018 08:53

$ result = curl_exec ($ ch); curl_setopt ($ ch, CURLOPT_POST, 1); вы поменяли местами эти два

Julius Limson 26.10.2018 08:54

@YuukkaLimson interchanged все тот же результат ....

user8444404 26.10.2018 08:55

попробуйте еще раз проверить свои параметры. вы вкладываете свои данные json в PayLoad, чего документ не требует. попробуйте только curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ data);

Julius Limson 26.10.2018 09:00

Позвольте нам продолжить обсуждение в чате.

user8444404 26.10.2018 09:01

Ах, теперь я понимаю. Думаю проблема в data_string, попробуй без этого, итак: curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

chiliNUT 26.10.2018 09:01

также я не думаю, что вам нужно устанавливать какие-либо другие опции после curl_exec

chiliNUT 26.10.2018 09:02

@YuukkaLimson пробовал, как вы сказали, но результат тот же ....

user8444404 26.10.2018 09:04

@chiliNUT обновился, как вы сказали, по-прежнему получаю тот же результат ....

user8444404 26.10.2018 09:04

@YuukkaLimson вот обновленный код, проверьте: pastebin.com/HCBp7FTU

user8444404 26.10.2018 09:06

@chiliNUT вот обновленный код, проверьте: pastebin.com/HCBp7FTU

user8444404 26.10.2018 09:06

@vickeycolors попробуйте использовать почтальон, если ваши параметры верны. также вы видите эту опцию. stackoverflow.com/questions/12331224/…

Julius Limson 26.10.2018 09:17

@YuukkaLimson, я до сих пор не пользовался почтальоном, сейчас попробую с помощью Google .....

user8444404 26.10.2018 09:21

@YuukkaLimson, когда я добавил этот curl_setopt($ch, CURLOPT_HEADER, true);, я получил это: HTTP/1.0 400 Bad request Cache-Control: no-cache Connection: close Content-Type: text/html

user8444404 26.10.2018 09:23

Вы уверены, что данные должны быть в кодировке JSON дважды, как вы сейчас делаете с показанным выше кодом ...?

misorude 29.10.2018 14:29

И где в документации, на которую вы ссылаетесь, даже говорится, что все это должно быть передано как один единственный параметр с именем Payload?

misorude 29.10.2018 14:36

@misorude, пожалуйста, проверьте update 2, о которой идет речь .....

user8444404 30.10.2018 06:19
1
23
1 715
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Похоже, в вашем массиве JSON есть ошибка:

“vendor_name”:”Ekart”,

Не цитируется правильно:

"vendor_name":"Ekart",

Должно работать лучше.

Есть еще несколько подобных ошибок. Вы должны использовать редактор JSON, чтобы проверить свой массив JSON.

извините, это была опечатка, проблема не в этом, я обновил вопрос ....

user8444404 26.10.2018 08:36

Окей, прости. Я также редактировал ^^ Я отредактирую этот ответ, если найду какое-то решение.

Jean-Marc Zimmer 26.10.2018 08:37

мне нужно передать json format в php вместо array?

user8444404 26.10.2018 08:53

спасибо за предложение, скажите, пожалуйста, как использовать json через http-запрос в моем случае, какой код мне нужно обновить?

user8444404 26.10.2018 09:28

HTTP-запрос здесь управляется curl. Идея состоит в том, чтобы данные json_encode() перед отправкой - что вы уже сделали - декодировать, чтобы использовать в функции управления запросами. Это проще, потому что если вы хотите, например, вызвать ту же функцию сервера через HTTP-запрос AJAX, вы имеют будете использовать JSON.

Jean-Marc Zimmer 26.10.2018 09:43

Позвольте нам продолжить обсуждение в чате.

user8444404 26.10.2018 09:45

предполагая, что ваши параметры верны.

пытаться:

echo $data=json_encode($data);
//$data_string = json_encode(array(
//    "Payload" => $data
//));
   $username = "";
   $password = "";
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);     
    curl_setopt($ch, CURLOPT_HEADER, true); 
    //curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    //    "Authorization : yourtoken",
    //));
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
         "Content-Type : application/json"
    ));
    curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);//since you are using basic auth  
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $return = curl_exec($ch);

    curl_close ($ch);

Позвольте нам продолжить обсуждение в чате.

Julius Limson 29.10.2018 15:28

@vickeycolors круто! Разместите свой ответ, чтобы мы знали.

Julius Limson 31.10.2018 14:04
Ответ принят как подходящий

При установке заголовков у вас есть пробел между именем заголовка и разделяющим двоеточием. Это приводит к тому, что Curl использует два заголовка: заголовок Content-Type : application/json и заголовок Content-Type: application/x-www-form-urlencoded, который используется по умолчанию при публикации данных. Сервер может идентифицировать тип контента как «x-www-form-urlencoded», используя второй заголовок, однако первый заголовок вызовет ответ 400, потому что между заголовком и двоеточием не должно быть пробела. Из rfc7230, раздел 3.2.4:

No whitespace is allowed between the header field-name and colon. In the past, differences in the handling of such whitespace have led to security vulnerabilities in request routing and response handling. A server MUST reject any received request message that contains whitespace between a header field-name and colon with a response code of 400 (Bad Request).

<! - -!>

Ваш код должен вернуть успешный ответ с использованием заголовков ниже.

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     "Authorization: Basic ZGFpbHlvcmRlcnM6ZHVtbf4fsww=", 
     "Content-Type: application/json"
));

При отладке таких проблем лучше всего включить подробный режим, в котором выводится полезная информация о соединении.

curl_setopt($ch, CURLOPT_VERBOSE, true);

В запросе Postman вы отправляете заголовок HTTP_X_MERCHANT_CODE; вы должны включить это в свой запрос Curl.

$headers = array(
    "Authorization: Basic ZGFpbHlvcmRlcnM6ZHVtbXlLZXk=",
    "Content-Type: application/json", 
    "HTTP_X_MERCHANT_CODE: DOC",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

Это исправит ошибку «X_Merchant_Code is null», но сервер вернет новое сообщение об ошибке: «Ожидаемый BEGIN_OBJECT, но был BEGIN_ARRAY», указывающий на: ...shipment.shipment_items[0].item_content, поскольку данные json не имеют требуемого формата. Ключ item_content - это пустой массив, который кодируется как [], но сервер ожидает объект json ({}). Мы можем исправить эту проблему, если используем нулевой объект.

$data['services'][0]['service_details'][0]['shipment']['shipment_items'][0]['item_content'] = (object)null;

Полный код:

<?php

$data = [
    "request_id" => "835",
    "client_name" => "DOC",
    "services" => [
        [
            "service_code" => "REGULAR",
            "service_details" => [
                [
                    "service_leg" => "FORWARD",
                    "service_data" => [
                        "vendor_name" => "Ekart",
                        "amount_to_collect" => 1000,
                        "dispatch_date" => "",
                        "customer_promise_date" => "",
                        "delivery_type" => "SMALL",
                        "source" => [
                            "address" => [
                                "first_name" => "AVThamizhmahan",
                                "address_line1" => "3/1675 ES Garden Vazhudaretty Post Villupuram",
                                "address_line2" => "Tamil Nadu",
                                "pincode" => "400066",
                                "city" => "Villupuram",
                                "state" => "Tamil Nadu",
                                "primary_contact_number" => "88888888"
                            ]
                        ],
                        "destination" => [
                            "address" => [
                                "first_name" => "AVThamizhmahan",
                                "address_line1" => "3/1675 ES Garden Vazhudaretty Post Villupuram",
                                "address_line2" => "Tamil Nadu",
                                "pincode" => "400066",
                                "city" => "Villupuram",
                                "state" => "Tamil Nadu",
                                "primary_contact_number" => "88888888"
                            ]
                        ],
                        "return_location" => [
                            "address" => [
                                "first_name" => "AVThamizhmahan",
                                "address_line1" => "3/1675 ES Garden Vazhudaretty Post Villupuram",
                                "address_line2" => "Tamil Nadu",
                                "pincode" => "400066",
                                "city" => "Villupuram",
                                "state" => "Tamil Nadu",
                                "primary_contact_number" => "88888888"
                            ]
                        ]
                    ],
                    "shipment" => [
                        "client_reference_id" => "ABCD",
                        "tracking_id" => "DOCC0000000001",
                        "shipment_value" => 2000,
                        "shipment_dimensions" => [
                            "length" => [
                                "value" => 1
                            ],
                            "breadth" => [
                                "value" => 1
                            ],
                            "height" => [
                                "value" => 1
                            ],
                            "weight" => [
                                "value" => 1
                            ]
                        ],
                        "return_label_desc_1" => "",
                        "return_label_desc_2" => "",
                        "shipment_items" => [
                            [
                                "product_id" => "134883075",
                                "item_content" => (object)null,
                                "category" => "Apparel",
                                "product_title" => "Mast&HarbourBlackHandbag => Handbags",
                                "quantity" => 1,
                                "cost" => [
                                    "total_sale_value" => 500,
                                    "total_tax_value" => 100
                                ],
                                "seller_details" => [
                                    "seller_reg_name" => "Seller Registered Legal Name",
                                    "vat_id" => "",
                                    "cst_id" => ""
                                ],
                                "legal_entity" => "",
                                "billable_entity" => "",
                                "cod_remittance_entity" => "",
                                "item_attributes" => [
                                    [
                                        "name" => "order_id",
                                        "value" => "ABCD"
                                    ],
                                    [
                                        "name" => "invoice_id",
                                        "value" => "INV1234"
                                    ],
                                    [
                                        "name" => "item_dimensions",
                                        "value" => "l:b:h:w"
                                    ],
                                    [
                                        "name" => "brand_name",
                                        "value" => "Peter England"
                                    ]
                                ],
                                "handling_attributes" => [
                                    [
                                        "name" => "isFragile",
                                        "value" => "false"
                                    ],
                                    [
                                        "name" => "isDangerous",
                                        "value" => "false"
                                    ]
                                ]
                            ]
                        ]
                    ]
                ]
            ]
        ]
    ]
];

$url = "https://staging.ekartlogistics.com/v2/shipments/create";
$data = json_encode($data);

$headers = array(
    "Content-Type: application/json", 
    "HTTP_X_MERCHANT_CODE: DOC",
);

$curl = curl_init($url);

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "dailyorders:dummyKey"); //Your credentials goes here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //IMP if the url has https and you don't want to verify source certificate
curl_setopt($curl, CURLOPT_VERBOSE, true);

$curl_response = curl_exec($curl);
curl_close($curl);
echo $curl_response ."\n";

?>

Спасибо, да, отображается 401, поэтому я декодировал и получил имя пользователя и пароль, я заменил приведенный выше код на curl_setopt($curl, CURLOPT_USERPWD, "dailyorders:dummyKey");, теперь я получаю {"response":[{"status":"REQUEST_REJECTED","message":["X_Merc‌​hant_Code is null "]}],"request_id":"b03e36cd-a9d8-4ac8-bb6d-0cc3b211a13d"}, но я передаю Merchant code в параметре ... вот ссылка

user8444404 30.10.2018 07:09

Я ничего не могу с этим поделать, так как у меня нет учетных данных.

t.m.adam 30.10.2018 07:11

Я разместил php-код с соответствующими учетными данными ..... попробуйте с локального хоста или только на своем сервере ......

user8444404 30.10.2018 07:12

Хорошо, я попробую, если вы мне доверяете, но не забудьте как можно скорее изменить свои учетные данные.

t.m.adam 30.10.2018 07:15

Думаю, мне удалось получить успешный ответ, завтра обновлю ответ :)

t.m.adam 30.10.2018 22:10

Я ценю вашу помощь, спасибо за вашу поддержку, я тоже нашел решение :)

user8444404 31.10.2018 14:01

Передача ключа Продавца в надлежащей форме решила проблему ....

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://staging.ekartlogistics.com/v2/shipments/create",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n  \"request_id\": 835,\n  \"client_name\": \"DOC\",\n  \"services\": [\n    {\n      \"service_code\": \"REGULAR\",\n      \"service_details\": [\n        {\n          \"service_leg\": \"FORWARD\",\n          \"service_data\": {\n            \"vendor_name\": \"Ekart\",\n            \"amount_to_collect\": \"5382.00\",\n            \"delivery_type\": \"SMALL\",\n            \"source\": {\n              \"address\": {\n                \"first_name\": \"Ebay\",\n                \"address_line1\": \"sqsq\",\n                \"address_line2\": \"gvhvh\",\n                \"pincode\": \"110037\",\n                \"city\": \"gvhbj\",\n                \"state\": \"Delhi\",\n                \"primary_contact_number\": \"9987654321\"\n              }\n            },\n            \"destination\": {\n              \"address\": {\n                \"first_name\": \"Dgwdh\",\n                \"address_line1\": \"C-238\",\n                \"address_line2\": \"Nagar, Amrut Nagar, Ghatkopar (W)\",\n                \"pincode\": \"560034\",\n                \"city\": \"Delhi\",\n                \"state\": \"South West Delhi\",\n                \"primary_contact_number\": \"9716632816\"\n              }\n            },\n            \"return_location\": {\n              \"address\": {\n                \"first_name\": \"Primasource Products and \",\n                \"address_line1\": \"No 99 4th Cross , Prithvi Layout\",\n                \"address_line2\": \"ECC Raod\",\n                \"pincode\": \"560034\",\n                \"city\": \"Bangalore\",\n                \"state\": \"Karnataka\",\n                \"primary_contact_number\": \"9987654321\"\n              }\n            }\n          },\n          \"shipment\": {\n            \"tracking_id\": \"DOCC0000000837\",\n            \"shipment_value\": 2000,\n            \"shipment_dimensions\": {\n              \"length\": {\n                \"value\": \"12\"\n              },\n              \"breadth\": {\n                \"value\": \"12\"\n              },\n              \"height\": {\n                \"value\": \"12\"\n              },\n              \"weight\": {\n                \"value\": \"1\"\n              }\n            },\n            \"return_label_desc_1\": \"\",\n            \"return_label_desc_2\": \"\",\n            \"shipment_items\": [\n              {\n                \"product_id\": \"895\",\n                \"product_title\": \"dwdwd\",\n                \"quantity\": 23,\n                \"cost\": {\n                  \"total_sale_value\": \"5382.00\",\n                  \"total_tax_value\": 5382,\n                  \"tax_breakup\": {\n                    \"cgst\": 0,\n                    \"sgst\": 0,\n                    \"igst\": 0\n                  }\n                },\n                \"seller_details\": {\n                  \"seller_reg_name\": \"Ebay\",\n                  \"vat_id\": \"\",\n                  \"cst_id\": \"\",\n                  \"tin_id\": \"\",\n                  \"gstin_id\": null\n                },\n                \"hsn\": \"123456\",\n                \"ern\": \"\",\n                \"discount\": \"0.00\",\n                \"item_attributes\": [\n                  {\n                    \"name\": \"order_id\",\n                    \"value\": 835\n                  },\n                  {\n                    \"name\": \"invoice_id\",\n                    \"value\": \"NA\"\n                  },\n                  {\n                    \"name\": \"item_dimensions\",\n                    \"value\": \":\"\n                  },\n                  {\n                    \"name\": \"brand_name\",\n                    \"value\": null\n                  }\n                ]\n              }\n            ]\n          }\n        }\n      ]\n    }\n  ]\n}",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "HTTP_X_MERCHANT_CODE: DOC",
    "Authorization: Basic ZGFpbHlvcmRlcnM6ZHVtbXlLZXk=",
    "Postman-Token: bf0fd969-0618-432a-a222-d4a67bff6cd2",
    "cache-control: no-cache"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Ах, я думаю, что заголовок http x код продавца решает проблему ur.

Julius Limson 01.11.2018 00:39

Другие вопросы по теме