2013-04-01 24 views
9

Utilizzo PayPals IPN per ricevere ed elaborare pagamenti, archiviando il transactionId come riferimento.Come si ottiene la paykey da un transactionId?

È giunto il momento di poter rimborsare i pagamenti tramite il sistema che sto sviluppando e qui sta la lotta.

Quando si utilizza entrare in un transactionId nel campo payKey sul campione GetPaymentDetails.php in una versione aggiornata di PHP SDK, con corretti i dati di autenticazione e ID applicazione, ottengo:

Error ID: 580022 
Domain: PLATFORM 
Severity: Error 
Category: Application 
Message: Invalid request parameter: payKey with value [REMOVED (transactionId)] 
Parameter: Array 

Questo è comprensibile, in quanto è in attesa di un payKey. Ora, posso cambiare il $pdRequest->payKey = $payKey; a $pdRequest->transactionId = $payKey; secondo le specifiche. Questo dovrebbe ora inviare il transactionId come transactionId e di lavoro, ma ottenere questo in risposta:

Error ID: 520002 
Domain: PLATFORM 
Severity: Error 
Category: Application 
Message: Internal Error 

Ok, quindi qualcosa si è rotto. Sospetto che non consentano l'utilizzo di transactionId come riferimento e che non abbiano aggiornato la documentazione (tipica). La ragione per cui sospetto che questo sia l'SDK originale che ho usato includeva un campo per transactionId, come trackId e un altro identificatore. Ma ora l'SDK aggiornato richiede solo la paykey.

Ora sono bloccato. Ho raccolto migliaia di transactionIds dal vivo. Sai come posso ottenere una paykey per ogni transazione o correggere il problema originale.

Grazie

Ulteriori informazioni:

Ecco le intestazioni HTTP inviate:

X-PAYPAL-SECURITY-SIGNATURE: [removed] 
X-PAYPAL-SECURITY-USERID: [removed] 
X-PAYPAL-SECURITY-PASSWORD: [removed] 
X-PAYPAL-APPLICATION-ID: [removed] 
X-PAYPAL-REQUEST-SOURCE: PHP_SOAP_SDK_V1.4 
X-PAYPAL-DEVICE-IPADDRESS: 127.0.0.1 
X-PAYPAL-MESSAGE-PROTOCOL: SOAP11 
X-PAYPAL-REQUEST-SOURCE: PHP_SOAP_SDK_V1.4 

Ed ecco il contenuto

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:Body><PaymentDetailsRequest> 
    <requestEnvelope> 
     <errorLanguage>en_US</errorLanguage> 
    </requestEnvelope> 
    <transactionId>[removed]</transactionId> 
</PaymentDetailsRequest></soap:Body> 
</soap:Envelope> 

Per

https://svcs.paypal.com/AdaptivePayments/PaymentDetails 
+0

Puoi condividere la tua stringa NVP? Assicurati di eliminare le credenziali. Io uso l'API per emettere rimborsi da un sistema che ho sviluppato (non usando il loro SDK) e anch'io uso lo transactionID. –

+0

Penso di aver aggiunto quello che hai chiesto al post principale –

+0

Ci siamo, il contenuto :) –

risposta

1

C'è una risorsa già disponibile nel sito web ufficiale di paypal. Ecco link del documention https://cms.paypal.com/mx/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_APPaymentDetails

Essa afferma che è possibile passare payKey o transactionID.And entrambi vengono restituiti in risposta modo da poter ottenere payKey & transactionID.

E se avete qualsiasi problema riscontrato nell'uso api, è possibile trovare l'API di PayPal iniziare tutorial qui http://coding.smashingmagazine.com/2011/09/05/getting-started-with-the-paypal-api/

2

ho un suggerimento:

suppone che si sia tutti gli ID di transazione salvati nel DB ,

ciclo per tutti i record, ottenere gli ID di transazione, ottenere il paykey per transazione id e aggiornare i relativi ordini,

allora si possono avere i valori di transazione e paykey, insieme per un singolo record.

+0

sì, la cosa che sto cercando di capire è come ottenere il payKey dalla transazione Id. Grazie –

+0

si prega di rivedere questo documento. https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/ipnguide.pdf – Naeem