Форматирование PHP для соединения с внешним API

Я пытаюсь отправить заказ на продажу из woocommerce на внешний API. Мне удалось POST запрос json и я вижу, что он прибывает, но я не могу получить правильную структуру, поэтому API принимает запрос.

Запрос json должен быть структурирован, как показано ниже

{
"customer": "",
"delivery_instructions": "",
"delivery_address": {
"address1": "",
"address2": ""},
"payment": {
"method": "",
"transaction_id": "",
"amount": ""},
"info": [
{
"type": "",
"code": "",
"quantity": ""}
]
}

У меня проблемы с форматированием, это то, что PHP отправляет запрос в API, потому что мне не хватает квадратных скобок вокруг информационного массива.

Это мой текущий PHP:

// The data to send to the API

$postData = [
'customer' => '',
'delivery_instructions' => '',
'delivery_address' => [
'address1' => '',
'address2' => ''
],
'payment' => [
'method' => 'PP',
'transaction_id' => '',
'amount' => ''
],
'info' => [
'type' => '',
'item_code' => '',
'quantity' => ''
],
];

Но когда я POST это результат

{
"customer": "",
"delivery_instructions": "",
"delivery_address": {
"address1": "",
"address2": ""},
"payment": {
"method": "",
"transaction_id": "",
"amount": ""},
"info": {
"type": "",
"code": "",
"quantity": ""}
}

Любое руководство будет с благодарностью.

0

Решение

Я надеюсь, что это поможет вам 🙂

<?php

$postData =  [
'customer' => '',
'delivery_instructions' => '',
'delivery_address' => [
'address1' => '',
'address2' => ''
],
'payment' => [
'method' => 'PP',
'transaction_id' => '',
'amount' => ''
],
'info' => [
'type' => '',
'item_code' => '',
'quantity' => ''
],
];$val = array();
$val["type"] = '';
$val["item_code"] = '';
$val["quantity"] = '';

$data = array();
$data['info'][] = $val;
//echo json_encode($data);
$myvalues = array_merge($postData,$data);

echo '<pre>';
echo json_encode($myvalues);
echo '</pre>';
?>

Выход

{
"customer":"",
"delivery_instructions":"",
"delivery_address":{
"address1":"",
"address2":""},
"payment":{
"method":"PP",
"transaction_id":"",
"amount":""},
"info":[
{
"type":"",
"item_code":"",
"quantity":""}
]
}

НОТА: Здесь я просто создаю один массив данных массива данных, а затем это вывод слиться с нашим на самом деле postData массив, а затем эхо ..

0

Другие решения

Я предлагаю вам эту структуру:

$postData = new stdClass;
$postData->customer = '';
$postData->delivery_instructions = '';
$postData->delivery_address = (object)array('address1' => '', 'address2' => '');
$postData->payment = (object)array('method' => '', 'transaction_id' => '', 'amount' => '');
$postData->info = array( (object)array('type' => '', 'code' => '', 'quantity' => '') );

print_r( json_encode($postData) );
0

В Php, JSON данные приближенного массива данных

-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector