Я пытаюсь загрузить историю транзакций из PayPal. Для этого я вызываю TransactionSearch
чтобы получить базовый список транзакций в диапазоне дат. Затем я вызываю GetTransactionDetails
чтобы получить полную информацию о каждой транзакции.
using (var client = new PayPalService.PayPalAPIInterfaceClient())
{
var credentials = new PayPalService.CustomSecurityHeaderType
{
Credentials = new PayPalService.UserIdPasswordType
{
Username = "MyUserName",
Password = "MyPassword",
Signature = "MySignature"
}
};
TransactionSearchReq request = new TransactionSearchReq();
request.TransactionSearchRequest = new TransactionSearchRequestType();
request.TransactionSearchRequest.StartDate = DateTime.Now.AddHours(-12);
request.TransactionSearchRequest.EndDate = DateTime.Now;
request.TransactionSearchRequest.Version = "117.0";
TransactionSearchResponseType transactionSearchResponseType = client.TransactionSearch(ref credentials, request);
foreach (PaymentTransactionSearchResultType t in transactionSearchResponseType.PaymentTransactions)
{
var reqType = new GetTransactionDetailsRequestType
{
TransactionID = t.TransactionID,
Version = "117.0"
};
reqType.DetailLevel = new DetailLevelCodeType[1];
reqType.DetailLevel[0] = DetailLevelCodeType.ReturnAll;
var treq = new GetTransactionDetailsReq
{
GetTransactionDetailsRequest = reqType
};
GetTransactionDetailsResponseType transaction = client.GetTransactionDetails(ref credentials, treq);
}
}
Первый вызов TransactionSearch
работает и возвращает мне список транзакций. Второй вызов GetTransactionDetails
возвращает ошибку:
Error Code: "10002"
Long Message: "You do not have permissions to make this API call"
Short Message: "Authentication/Authorization Failed"
Correlation ID: 67970b9729a82
Ack: Failure
Build: 000000
Version: "117.0"
Any: null
PropertyChanged: null
У меня есть тройная проверка того, что TransactionId
я передаю в вызове, является одной из моих действительных транзакций, и это так.
Кто-нибудь видел это раньше?
Кажется, что некоторые, как учетные данные не передаются в вашем коде для данных переменных. Убедитесь, что значения ниже переменных содержат значения:
Username = "MyUserName", пароль = "MyPassword", Sgnature = "MySignature"
Вы можете жестко закодировать учетные данные API, а затем попробовать.