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
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. –
Penso di aver aggiunto quello che hai chiesto al post principale –
Ci siamo, il contenuto :) –