paypal SoapClient non funziona
-
29-09-2019 - |
Domanda
Sto usando classe SoapClient di PHP per la connessione a PayPal. Ho un certo numero di problemi:
- I paramaters mi passano per la chiamata del sapone sono
array('ReturnAllCurrencies'=>0, 'Version'=>'63.0')
, ma come si può vedere nella richiesta qui di seguito,63.0
viene messo in<param1>
qualunque essa sia. Non so nemmeno vedo ReturnAllCurrencies nella richiesta.
In questa richiesta sto eseguendo un comando GetBalance
:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:ebay:api:PayPalAPI" xmlns:ns2="urn:ebay:apis:eBLBaseComponents">
<SOAP-ENV:Header>
<ns1:RequesterCredentials>
<ns2:Credentials>
<ns2:Username>xxxx</ns2:Username>
<ns2:Password>xxx</ns2:Password>
<ns2:Signature>xxx</ns2:Signature>
</ns2:Credentials>
</ns1:RequesterCredentials>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:GetBalanceReq/>
<param1>63.0</param1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Ho trovato la richiesta di cui sopra tramite SoapClient :: __ getLastRequest (). Esso non exacly apparire come l'esempio sul sito web PayPal. Che cosa è con il tag GetBalanceReq
? Perché ha il suffisso * Req?
2. Quando utilizzando i file del server di produzione e WSDL, ottengo un errore di php:
SOAP-ERRORE: Analisi WSDL: Impossibile caricare da ' https://www.paypal.com/wsdl/PayPalSvc.wsdl'; : Inizio tag previsto, '<' non trovato
Inoltre, se provo a visitare l'url certificato di produzione in FireFox ( https://api.paypal.com /2.0/ ) ottengo un ssl_error_handshake_failure_alert
dovrei scaricare il file WSDL e puntare a una versione locale nel primo argomento di SoapClient :: __ construct o sono semplice dovrei punto alla copia paypal ospitato? Originariamente ho pensato quest'ultimo, ma ora non sono sicuro
Nessuna soluzione corretta
Altri suggerimenti
In primo luogo, "ReturnAllCurrencies" dovrebbe essere una stringa, non un numero intero. Inoltre, è necessario per avvolgere i campi GetBalanceRequestType all'interno di un elemento GetBalanceRequest per farlo funzionare. Per maggiori informazioni per quanto riguarda la prima parte della tua domanda insieme ad una soluzione di lavoro, guarda qui:
semplice esempio php SoapClient per paypal necessario
La seconda parte del tuo suoni questione come un problema temporaneo con l'infrastruttura di Paypal. Le migliori pratiche è NON utilizzare una copia locale del WSDL che rivolgersi WSDL caching e lasciare PHP decidere quando per aggiornarlo.