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.
  3 1986
Hei!
Holder på med et prosjekt som gjør at jeg kan ringe ansatte, hvor de ansatte må trykke inn et tastevalg.
Utsending går veldig greit, men sliter med å få sjekket statusen på tastevalgene.

Under ligger "respons"/svaret fra serveren som kommer når jeg ønsker å sjekke status.

Hvordan kan jeg behandle dette i PHP?
Dette dreier seg om ca 80 ansatte samtidig.
Hadde håpet å få PHP til å sende svaret inn i en database.

Å sende data til databasen er en smal sak, men trenger først å hente ut telefonnummer, sendestatus og dtmf på alle.

Selve spørringen mot serveren gjør jeg med cURL.

Kode

$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml_data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
Noen som er flike til dette?

Responce/svar:

Kode

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <getStatusResponse xmlns="http://LINK.NO/ws/vb/">
      <getStatusResult>
        <STATUS>
          <ReferenceNumber>long</ReferenceNumber>
          <ItemNumber>int</ItemNumber>
          <SendingStatus>string</SendingStatus>
          <ItemStatus>
            <StatusCode>int</StatusCode>
            <StatusShort>string</StatusShort>
            <StatusText>string</StatusText>
          </ItemStatus>
          <SecondsSpent>int</SecondsSpent>
          <FinishedTime>long</FinishedTime>
          <LastStatusUpdate>long</LastStatusUpdate>
          <SendingAttempts>int</SendingAttempts>
          <PhoneNumber>string</PhoneNumber>
          <CountryCode>string</CountryCode>
        </STATUS>
        <STATUS>
          <ReferenceNumber>long</ReferenceNumber>
          <ItemNumber>int</ItemNumber>
          <SendingStatus>string</SendingStatus>
          <ItemStatus>
            <StatusCode>int</StatusCode>
            <StatusShort>string</StatusShort>
            <StatusText>string</StatusText>
          </ItemStatus>
          <SecondsSpent>int</SecondsSpent>
          <FinishedTime>long</FinishedTime>
          <LastStatusUpdate>long</LastStatusUpdate>
          <SendingAttempts>int</SendingAttempts>
          <PhoneNumber>string</PhoneNumber>
          <CountryCode>string</CountryCode>
        </STATUS>
      </getStatusResult>
    </getStatusResponse>
  </soap12:Body>
</soap12:Envelope>
Sist endret av 4asd13; 12. april 2018 kl. 13:14.
m0b
m0b's Avatar
DonorAdministrator
Du kan bruke PHP sin SoapClient for å trøkke responsen i et fornuftig format i stedet for å strippe tekst og navigere API-kall manuelt. Bruk deretter soap-objektet sine verdier til å sende inn til databasen.
Sist endret av m0b; 12. april 2018 kl. 13:33.
Trådstarter
Har forsøkt å lese litt på SoapClient, men blir for avansert.
Noen som kan forsøke å putte sammen en kodesnutt?

Kode

$client = new SoapClient($url, array("trace" => 1, "exception" => 0));

$result = $client->__soapCall("metodenavn-soap", []);
Et nedkortet eksempel fra php.net.

$url er urlen til apiet du kaller.
Sist endret av Yochi; 13. april 2018 kl. 13:57.