Avatar billede Mik2000 Professor
05. december 2017 - 12:20 Der er 3 kommentarer og
1 løsning

PHP problem (soap)

Hvis man skal kalde en soap service og skal indsætte noget til den, og den ser sådan ud i dokumentationen
---------------------------------
public virtual resultValidation validateInvoice(
    Invoice invoice
)

invoice:
    Type: invoiceWebService.DTO.invoice
---------------------------------

og der skal sendes følgende med (har forkortet antal ting der sendes med for at gøre det overskueligt):
"productNameInvoice" (VÆRDI: "Produkt 1")
"amount" (VÆRDI: 500)
"type" (VÆRDI: 1)

Jeg får denne fejl:
Fatal error: Uncaught SoapFault exception: [s:Client] Non-static method requires a target

Når jeg prøver nedenstående
--------------------------------------------
$client = new soapClient(...)  // Som jeg plejer når der skal hentes
$validateInvoice = new stdClass();
$validateInvoice->productNameInvoice = "Product 1";
$validateInvoice->amount = 500;
$validateInvoice->type = 1;
$response = $client->validateInvoice($validateInvoice);
--------------------------------------------

Håber der er en der kan hjælpe med hvad jeg skal gøre?
Avatar billede jakobdo Ekspert
05. december 2017 - 15:19 #1
Måske det kunne hjælpe folk, hvis du skriver hvilken service du forsøger at snakke med.
Avatar billede Mik2000 Professor
05. december 2017 - 18:05 #2
Det vil jeg gerne men det er en lukket man skal have adgang til bl.a. på IP tjek - og ikke en kendt.
Jeg har dog adgang da jeg godt kan benytte andre ting i den til f.eks. at hente data.

Så håbede lidt det måske var en generel fejl, eller der var noget generelt jeg kunne se efter? eller noget jeg havde gjort forkert?

Har desværre ikke så meget andet dokumentation end
public virtual resultValidation validateInvoice(
    Invoice invoice
)

invoice:
    Type: invoiceWebService.DTO.invoice
   
public class invoice : StakeholderBase
Avatar billede Mik2000 Professor
17. december 2017 - 22:34 #3
Dem der har den påstår det er en PHP fejl der ikke har noget med deres service at gøre, så tænker kaldet måske køres forkert
Avatar billede Mik2000 Professor
17. december 2017 - 22:53 #4
Fandt svaret

$client = new soapClient(...)  // Som jeg plejer når der skal hentes
$validateInvoice = new stdClass();
$validateInvoice->productNameInvoice = "Product 1";
$validateInvoice->amount = 500;
$validateInvoice->type = 1;

$params = array(
    "invoice" => $validateInvoice
);

$response = $client->__soapCall("validateInvoice", array($params));
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester