PayPal经典API验证一个调用,但不验证下一个调用

本文关键字:调用 验证 下一个 一个 API 经典 PayPal | 更新日期: 2023-09-27 18:26:05

我正在尝试从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是否是我的有效交易之一,它是。

以前有人见过这个吗?

PayPal经典API验证一个调用,但不验证下一个调用

在给定变量的代码中似乎没有传递凭据。确保以下变量包含值:

Username="MyUserName",Password="MyPassword",Sgnature="MySignature"

您可以对API凭据进行硬编码,然后尝试。