0

Estoy utilizando la librería CURL en PHP para enviar datos de una página a otra. La variable (la cual contiene todos los datos necesario) que enviaré, debe tener esta estructura:

{"pObjecto":{
    "N_Requerimiento":$N_Requerimiento,
    "productos":[{
        "N_Proforma":$N_proforma_prod,
        "N_PrecioOfertado":$N_PrecioOfertado
     }],
     "entregas":[{
        "N_Plazo": $N_Plazo,
        "N_AplicaIGV":$N_AplicaIGV,
        "m_RProductoEntrega":[{
            "N_PCompraDetalle_Entrega":$N_PCompraDetalle_Entrega,
            "N_CostoEnvio":$N_CostoEnvio
        }]
    }]
  }
}

Y los datos que debo añadir son:

$N_Requerimiento = $value['N_Requerimiento'];
    $N_proforma_prod = $value['N_proforma_prod'];
    $N_PrecioOfertado = $value['N_PrecioOfertado'];
                
    $N_Plazo = $value['N_Plazo'];
    $N_AplicaIGV = $value['N_AplicaIGV'];
      $N_PCompraDetalle_Entrega = $value['N_PCompraDetalle_Entrega'];
      $N_CostoEnvio = $value['N_CostoEnvio'];

No reconozco si es un array de objetos o un objeto que contiene arrays, pero quisiera saber como armar esa estructura. Estos datos se incorporan en la expresión que mencioné arriba. La estructura CURL que uso es esta:

curl_setopt($ch, CURLOPT_URL, 'https://administradorcatalogos.azurewebsites.net/Accesos');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);      

Donde la variable $data almacenará la estructura que mencione arriba

1 respuesta 1

0

El formato se llama JSON y lo puedes obtener a partir de un arreglo con la función json_encode():

$json = json_encode( array( 'pObjecto' => array( 'N_Requerimiento'  => $value['N_Requerimiento']
                                               , 'productos' => array( array( 'N_Proforma' => $value['N_proforma_prod']
                                                                            , 'N_PrecioOfertado' => $value['N_PrecioOfertado']
                                                                            )
                                                                     )
                                               , 'entregas'  => array( array( 'N_Plazo' => $value['N_Plazo']
                                                                            , 'N_AplicaIGV' => $value['N_AplicaIGV']
                                                                            , 'm_RProductoEntrega' => array( new stdClass )
                                                                            )
                                                                     )
                                               )
                          )
                   );

Después para curl:

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

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta o formula tu propia pregunta.