2013-04-01 7 views
9

Ich nutze PayPals IPN, um Zahlungen zu empfangen und zu verarbeiten, und speichere die Transaktions-ID als Referenz.Wie erhalten Sie den PayKey von einer Transaktions-ID?

Die Zeit ist gekommen, um Zahlungen durch das System, das ich entwickle, zurückzuzahlen, und hier liegt der Kampf.

Wenn ein transactionId in das payKey Feld in einem aktualisierten PHP SDK, Details der korrekten Authentifizierung auf die GetPaymentDetails.php Probe unter Verwendung der Eingabe und Anwendungs-ID, die ich erhalte:

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

Dies ist verständlich, da es ein erwartetes wird PayKey. Jetzt kann ich die $pdRequest->payKey = $payKey; zu $pdRequest->transactionId = $payKey; gemäß der Spezifikation ändern. Dies sollte nun die transactionId als transactionId und Arbeit schicken, aber ich habe diese als Antwort:

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

Ok, so gebrochen etwas ist. Ich vermute, dass sie transactionId nicht als Referenz verwenden und ihre Dokumentation nicht aktualisiert haben (typisch). Der Grund, warum ich das vermute, ist, dass das ursprüngliche SDK, das ich verwendet habe, ein Feld für transactionId, sowie trackingId und einen anderen Bezeichner enthielt. Aber jetzt fragt das aktualisierte SDK nur nach dem PayKey.

Jetzt bin ich fest. Ich habe tausende Live-Transaktions-IDs gesammelt. Weißt du, wie ich einen PayKey für jede Transaktion bekommen oder das ursprüngliche Problem beheben kann?

Dank

Mehr Info:

Hier sind die HTTP-Header gesendet:

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 

Und hier ist der Inhalt

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

Um

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

Können Sie Ihre NVP-Zeichenfolge teilen? Achten Sie darauf, die Anmeldeinformationen zu löschen. Ich verwende die API, um Rückerstattungen von einem System auszugeben, das ich entwickelt habe (ohne ihr SDK zu benutzen), und ich verwende auch die transactionID. –

+0

Ich denke, ich fügte hinzu, was Sie an den Hauptpost –

+0

Da gehen wir, der Inhalt :) –

Antwort

1

Es gibt bereits eine Ressource auf der offiziellen Website von Paypal. Hier Link der Dokumention https://cms.paypal.com/mx/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_APPaymentDetails

Darin heißt es, dass Sie payKey oder transactionID.And passieren kann sowohl als Antwort zurückgegeben werden, so dass Sie payKey & transactionID zu bekommen.

Ich nehme an Sie haben alle Transaktions-IDs gespeichert in Ihrem DB: hier immer Tutorial http://coding.smashingmagazine.com/2011/09/05/getting-started-with-the-paypal-api/

2

ich habe einen Vorschlag

Und wenn Sie irgendein Problem bei der Verwendung api haben, können Sie die paypal API finden begonnen

,

Schleife für alle Datensätze, die Transaktions-IDs erhalten, die paykey von Transaktions-ID erhalten und die entsprechenden Aufträge,

dann können Sie die Transaktion und paykey Werte haben, gemeinsam für ein einzelner Datensatz

+0

yep, die Sache, die ich versuche herauszufinden, ist, wie man den PayKey von der Transaktion erhalten Ich würde. Danke –

+0

Bitte lesen Sie dieses Dokument. https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/ipnguide.pdf – Naeem

1

Verwenden Sie die vorhandene Tracking-ID unter Verwendung von PaymentDetails API Operation. Der PayKey und andere Informationen über die Zahlung werden als Antwort zurückgegeben.