【发布时间】:2025-11-25 06:40:01
【问题描述】:
我一直在尝试使用 C# Paypal API 处理一个非常简单的快速结帐沙盒交易,但在重定向后,Paypal 网站上不断出现会话超时错误。
我要强调的是,我从 SetExpressCheckout 获得了成功的 ACK 响应以及 Token 字符串。
这是我一直尝试重定向到的结帐 URL 示例:
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-9RY2628262462061J
我的返回地址是 localhost,但我在 Sandbox 中看不到任何地方会出现问题。
在尝试重定向到沙盒时,我到达的不是结帐 URL,而是这个地址:
并看到以下错误消息:
“此交易已过期。请返回收件人的网站以使用他们的常规结帐流程完成您的交易。”
当 [1] 我有一个成功的 API 响应和一个令牌并且 [2] 我在获得令牌后立即重定向到那里时,事务怎么会超时。
有人知道这里发生了什么吗?
如果这有帮助的话,我编写的用于访问 API 的 C#。如前所述,我得到一个成功的 ACK 响应和一个令牌。
try
{
var details = ToPaymentDetails(data);
var request = new SetExpressCheckoutReq();
request.SetExpressCheckoutRequest = new SetExpressCheckoutRequestType
{
SetExpressCheckoutRequestDetails = details,
Version = Version
};
var result = await client.SetExpressCheckoutAsync(credentials, request);
var response = result.SetExpressCheckoutResponse1;
FailOnError(response);
return Result.Success(response.Token);
}
catch (Exception ex)
{
return Result.Error<string>("Received an error from Paypal.SetExpressCheckout.", exception: ex);
}
【问题讨论】:
标签: c# api paypal paypal-sandbox