Ajouter ou rechercher une suggestion

technique@cmrp.fr

Création d'une facture par API

Bonjour, L'API permettant de créer une facture fonctionne correctement quand on lui passe la liste des produit en dur dans le script, exemple : "positions" => [ ["name" => "Produit 11", "tax" => "20", "total_price_gross" => "82.50", "quantity" => "1"], ["name" => "Produit 21", "tax" => "20", "total_price_gross" => "12.50", "quantity" => "3"] ] En revanche, quand nous construisons un tableau en automatique, l'api nous retourne une erreur 500. D'après ce que je comprends, cela vient du fait que le tableau qu'on envoi possède des indices pour chaque nouveau tableau. En effet, le code suivant : $tab_prod1 = [ 'name' => 'Produit 11', "tax" => "20", "total_price_gross" => "82.50", "quantity" => "1" ]; $tab_prod2 = [ 'name' => 'Produit 22', "tax" => "20", "total_price_gross" => "12.50", "quantity" => "3" ]; $tab_contenu=array($tab_prod1, $tab_prod2); Nous retournes ceci : array(2) { [0]=> array(4) { ["name"]=> string(53) "Produit 11" ["tax"]=> string(5) "20.00" ["total_price_gross"]=> float(82.50) ["quantity"]=> string(4) "1.00" } [1]=> array(4) { ["name"]=> string(57) "Produit 22" ["tax"]=> string(5) "20.00" ["total_price_gross"]=> float(12.50) ["quantity"]=> string(4) "3.00" } } Avez-vous une idée? Cordialement,
Réponse principale Damian 06/12/2023 14:12
Pour que notre service technique puisse vous aider, nous aurons besoin de l'intégralité du code. Malheureusement, sur la base des extraits de code que vous avez fournis, il est difficile de définir le problème. De plus, veuillez noter que normalement, nous ne fournissons pas d'aide pour écrire ou débuguer des codes qui ne sont pas rédigés par VosFactures. 
  
Commentaires (3)

Customer Reviews

technique@cmrp.fr

Bonjour,

Le problème a été corrigé, je partage donc mon retour si ça peut aider d’autres personnes.
L’erreur que je faisais était de laisser les [ ] pour le champ “positions”. Vu que ma variable $tab_contenu était déjà un array, il n’y a pas besoin de rajouter les crochets.

technique@cmrp.fr

Voici l’ensemble du code :

$tab_prod1 = [
‘name’ => ‘Produit 11’,
“tax” => “20”,
“total_price_gross” => “82.50”,
“quantity” => “1”
];
$tab_prod2 = [
‘name’ => ‘Produit 22’,
“tax” => “20”,
“total_price_gross” => “12.50”,
“quantity” => “3”
];

$tab_contenu=array($tab_prod1, $tab_prod2);

$headers = [
‘Accept: application/json’,
‘Content-Type: application/json’,
];
$data_api = [
‘api_token’ => $api_token,
‘invoice’ => [
“kind” => “vat”,
“number” => “null”,
“sell_date” => “2023-10-12”,
“issue_date” => “2023-10-12”,
“payment_to” => “2023-10-19”,
“department_id” => “XXXX”,
“client_id” => “XXXX”,
“test” => “true”,
“positions” => [
$tab_contenu
]
]
];
var_dump($data_api);

$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data_api));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url_api);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$retour_api = curl_exec($ch);

curl_close ($ch);

A noter que si dans position je remplace $tab_contenu par : [“name” => “Produit 11”, “tax” => “20”, “total_price_gross” => “82.50”, “quantity” => “1”], [“name” => “Produit 22”, “tax” => “20”, “total_price_gross” => “12.50”, “quantity” => “3”] tout fonctionne bien.

Damian

Réponse principale
Pour que notre service technique puisse vous aider, nous aurons besoin de l'intégralité du code. Malheureusement, sur la base des extraits de code que vous avez fournis, il est difficile de définir le problème. De plus, veuillez noter que normalement, nous ne fournissons pas d'aide pour écrire ou débuguer des codes qui ne sont pas rédigés par VosFactures. 
  

Ajouter un commentaire