2013-04-01 28 views
9

Używam IPN PayPals do odbierania i przetwarzania płatności, przechowując identyfikator transactionId jako odniesienie.W jaki sposób otrzymasz klucz payKey z transactionId?

Nadszedł czas, aby móc dokonać zwrotu płatności za pośrednictwem opracowywanego przeze mnie systemu, a tu leży walka.

Podczas korzystania wprowadzając transactionId w polu payKey na próbce w zaktualizowanym PHP SDK GetPaymentDetails.php, z odpowiednimi szczegółami uwierzytelniania i identyfikator aplikacji, otrzymuję:

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

Jest to zrozumiałe, gdyż spodziewa się payKey. Teraz mogę zmienić $pdRequest->payKey = $payKey; na $pdRequest->transactionId = $payKey; zgodnie ze specyfikacją. Powinno to teraz wysłać transactionId jako transactionId i pracy, ale mam to w odpowiedzi:

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

Ok, więc coś jest zepsute. Podejrzewam, że nie zezwalają one obecnie na używanie identyfikatora transakcji jako odniesienia i nie aktualizują swojej dokumentacji (typowej). Powodem, dla którego podejrzewam, jest to, że oryginalny zestaw SDK, którego użyłem, zawierał pole dla identyfikatora transakcji, a także identyfikator śledzenia i inny identyfikator. Ale teraz zaktualizowany pakiet SDK prosi tylko o klucz payKey.

Teraz utknąłem. Zbierałem tysiące transakcji live transaction. Czy wiesz, w jaki sposób mogę uzyskać klucz payKey dla każdej transakcji lub naprawić pierwotny problem.

Dzięki

Więcej informacji:

Oto nagłówki HTTP wysyłane:

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 

A oto treść

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

Aby

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

Czy możesz udostępniać swój ciąg NVP? Pamiętaj, aby usunąć poświadczenia. Używam API do wydawania zwrotów z opracowanego przeze mnie systemu (nie używając SDK) i ja też używam transactionID. –

+0

Myślę, że dodałem to, o co prosiłeś, do głównego posta. –

+0

No to idziemy, treść :) –

Odpowiedz

1

Istnieje zasób już dostępny na oficjalnej stronie internetowej PayPal. Oto link do dokumentację, https://cms.paypal.com/mx/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_APPaymentDetails

Stwierdza, że ​​można przekazać payKey lub transactionID.And oba są zwracane w odpowiedzi, dzięki czemu można uzyskać payKey & transactionId.

A jeśli masz jakieś problemy w korzystaniu z interfejsu API można znaleźć paypal API podręczny poradnik tutaj http://coding.smashingmagazine.com/2011/09/05/getting-started-with-the-paypal-api/

2

Mam jedną sugestię:

przypuszczam masz wszystkie identyfikatory transakcji zapisane w DB ,

pętla dla wszystkich rekordów, uzyskać identyfikatory transakcji, uzyskać paykey przez ID transakcji i aktualizuje odpowiednie rozkazy,

wtedy można mieć wartości transakcji i paykey, razem jeden rekord.

+0

tak, rzeczą, którą próbuję wymyślić jest JAK dostać payKey od transakcji ID. Dziękujemy –

+0

, przejrzyj ten dokument. https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/ipnguide.pdf – Naeem