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
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. –
Myślę, że dodałem to, o co prosiłeś, do głównego posta. –
No to idziemy, treść :) –