Domanda

Sto usando classe SoapClient di PHP per la connessione a PayPal. Ho un certo numero di problemi:

  1. 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top