【发布时间】:2014-12-04 08:27:22
【问题描述】:
我正在尝试从 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 的完整回复,包括相关 ID?
-
@Eshan 感谢您的回复。我在帖子中添加了更多内容。
-
我试图用这个相关 id 检查我的,但找不到太多。您可以在 www.paypal.com/mts 提交票证并在此处 ping 我票证吗?
-
对于“获取事务详细信息”API 来说,凭据没有被传递似乎有些方式。即使代码包含凭据,您能否确保它包含该值?
-
@Eshan 你是对的,它由于某种原因丢失了凭据(不知道它为什么会这样做并且没想到要检查!)。我在第二次通话之前再次设置了它们,现在它工作正常。把它写下来作为答案。非常感谢