Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  2 1696
Hei, lager et nogenlunde simpelt PHP script med tripletex sitt API.

Sliter litt med å lese JSON filene da jeg aldri har jobbet med det før.

JSON ser sånn ut (Har redigert sensitive detaljer til tilfeldige ting):

Kode

{
  "fullResultSize" : 1,
  "from" : 0,
  "count" : 1,
  "versionDigest" : "LLsJ1MhvEVCLCb2uNuADXQ==",
  "values" : [ {
    "id" : 123456,
    "version" : 4,
    "url" : "tripletex.no/v2/invoice/123456",
    "invoiceNumber" : 201875,
    "invoiceDate" : "2018-03-22",
    "customer" : {
      "id" : 78990,
      "url" : "tripletex.no/v2/customer/78990"
    },
    "invoiceDueDate" : "2018-04-05",
    "kid" : "",
    "comment" : "",
    "orders" : [ {
      "id" : 11223344,
      "url" : "tripletex.no/v2/order/11223344"
    } ],
    "voucher" : {
      "id" : 55667788,
      "url" : "tripletex.no/v2/ledger/voucher/55667788"
    },
    "deliveryDate" : "2018-03-22",
    "amount" : 7500.0,
    "amountCurrency" : 7500.0,
    "amountExcludingVat" : 6000.0,
    "amountExcludingVatCurrency" : 6000.0,
    "currency" : {
      "id" : 1,
      "url" : "tripletex.no/v2/currency/1"
    },
    "isCreditNote" : false
  } ]
}
Det jeg skal ha ut av denne JSON responsen som jeg får som en variabel med navn $response er IDen fra values (Øverst i fila) og deretter amount.

Den ideele situasjonen er å bruke PHP med json_decode($response) og få de 2 detaljene ut som variabler i form av $eksempel.

Tusen takk på forhånd om noen vet en god metode å løse dette. Har allerede lest litt på div forumer og nettsider om det, men får bare en PHP feil. (Sannsynligvis skapt fordi jeg gjør noe galt).
Limited edition
Moff's Avatar
Det er egentlig ganske straight forward. Jeg pleier å sette assoc-parameteret til true for json_decode, slik at du får ut et array i stedet for et objekt.

Kode

<?php

$str = '{
  "fullResultSize" : 1,
  "from" : 0,
  "count" : 1,
  "versionDigest" : "LLsJ1MhvEVCLCb2uNuADXQ==",
  "values" : [ {
    "id" : 123456,
    "version" : 4,
    "url" : "tripletex.no/v2/invoice/123456",
    "invoiceNumber" : 201875,
    "invoiceDate" : "2018-03-22",
    "customer" : {
      "id" : 78990,
      "url" : "tripletex.no/v2/customer/78990"
    },
    "invoiceDueDate" : "2018-04-05",
    "kid" : "",
    "comment" : "",
    "orders" : [ {
      "id" : 11223344,
      "url" : "tripletex.no/v2/order/11223344"
    } ],
    "voucher" : {
      "id" : 55667788,
      "url" : "tripletex.no/v2/ledger/voucher/55667788"
    },
    "deliveryDate" : "2018-03-22",
    "amount" : 7500.0,
    "amountCurrency" : 7500.0,
    "amountExcludingVat" : 6000.0,
    "amountExcludingVatCurrency" : 6000.0,
    "currency" : {
      "id" : 1,
      "url" : "tripletex.no/v2/currency/1"
    },
    "isCreditNote" : false
  } ]
}';

$json = json_decode($str, true);

echo $json['values'][0]['customer']['id'];

?>
Her er det 3 statements; jeg vet ikke hvor du får JSON-stringen fra, men her har jeg bare limt den inn i $str-variabelen. Derfra tar jeg json_decode med true som andre parameter, og kan hente ut hva som helst ved å bruke riktig serie med keys. Se på JSON-strukturen for å finne veien inn, og være oppmerksom på de stedene hvor det er en array-verdi uten nøkler, slik som under "values". Der er det usorterte objekter, så jeg må bruke en indeks (0) for å hente ut data. Her kan du også bruke foreach for å gå gjennom alle verdier.
Her er hele kodefilen om du vil se hvordan den hentes.

Kode

<?php
$faktura = $_POST['faktura'];
?>
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://tripletex.no/v2/invoice?invoiceDateFrom=2000-01-01&invoiceDateTo=2050-12-31&invoiceNumber=$faktura",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Authorization: Basic DENNE SKAL IKKE DU HA",
    "Cache-Control: no-cache",
    "Postman-Token: IKKE DIN"
  ),
));

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

curl_close($curl);

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

?>

<?php
$fakturaid1 = json_decode($response);
foreach ($fakturaid1 as $fakturaid2) {
  echo $characters['values'][0]['id'];
}

 ?>
Tusen takk BTW. Tror jeg nå forstår hvordan jeg må gå frem for å få det til.
Sist endret av FreeMyKiwi; 24. mars 2018 kl. 00:27. Grunn: Automatisk sammenslåing med etterfølgende innlegg.