【发布时间】:2021-08-15 00:17:12
【问题描述】:
我一直在反复研究如何获取交易清单(需要说明的是,我是一名 PayPal 商家,我想要的交易是向我们支付的款项)并且我一直在寻找旧的、已弃用和误导性的信息.
备份,我的问题是这样的:
当我们有订单时,我们使用 PayPal 的 IPN 系统通知我们。这在 99% 的时间里都很好用。每隔一段时间,PayPal 就会丢球,从不发送 IPN。我有一个用 VB6 编写的旧应用程序,用于查询我们的 PayPal 帐户并创建我自己的模拟 IPN 条目,但它很笨重并且有时会崩溃。无论如何我都不喜欢它,因为它必须在用作网络服务器的 PC 上运行,并调用一堆我个人没有编写的 PHP 脚本。出于某种原因,我现在无法对程序进行更改,所以我需要用 C#.NET 中的内容替换它
我知道你们喜欢代码示例,所以这就是我所拥有的。我很容易就能让 OAuth 凭据正常工作,但我终其一生都无法弄清楚如何查看向我们支付的款项(或我们发放的退款)。这个例子是我遇到的兔子洞之一,结果证明 Payment.List 给了我我们支付的款项,而不是支付给我们的款项。我研究了这么多不同的功能/方法/你们喜欢怎么称呼它们,我找不到任何可以产生支付给我们的付款清单的东西,你只需要指定一个日期范围(它没有帮助拥有一个我需要指定交易 ID 的功能,因为交易 ID 是我正在寻找的东西之一。
private void cmdPayPalTest_Click(object sender, EventArgs e)
{
var config = ConfigManager.Instance.GetProperties();
config.Add("clientId","<<PayPalclientId Goes here>>");
config.Add("clientSecret", "<<PayPal clientSecret Goes here>>");
var accessToken = new OAuthTokenCredential(config).GetAccessToken();
var apiContext = new APIContext(accessToken);
var bob = PayPal.Api.Payment.List(apiContext, 20, "", 0);
var sam = bob.ConvertToJson();
}
有没有人知道获取支付给我们作为商家的交易清单的现代、非弃用、批准的方法?我很沮丧,多次碰壁。
编辑:
因为我在用于搜索交易的 REST API 的文档中找不到任何内容,所以我尝试添加一些代码来翻译 PayPal 为 TransactionSearch 提供的 Curl(我完全不清楚这是 REST 还是 NVP/SOAP )。我从 Preston PHX 的以下答案中看到,也许 TransactionSearch 是我唯一的选择,但我编写的代码给了我一个错误 - “StatusCode:403, ReasonPhrase: 'Forbidden'...”这是否与Preston PHX 的回答中提到了 9 小时?我有另一个应用程序不断在另一台计算机上运行,该计算机在某些 PHP 脚本中使用 TransactionSearch。如果我的问题是“9 小时”所指的任何问题,我会暂时关闭它,我将在早上尝试我的新代码。同时,如果有人对我的 403 错误有其他解释,我很想听听。这是我从上面的代码中提供 Oauth 令牌 accessToken 的代码:
private async void CurlRequest(string MrToken)
{
using (var httpClient = new HttpClient())
{
using (var request = new HttpRequestMessage(new HttpMethod("GET"), "https://api-m.paypal.com/v1/reporting/transactions?start_date=2020-01-01T00:00:00-0700&end_date=2021-05-25T23:59:59-0700&fields=all&page_size=100&page=1"))
{
request.Headers.TryAddWithoutValidation("Authorization", MrToken);
var response = await httpClient.SendAsync(request);
MessageBox.Show(response.ToString());
}
}
}
响应字符串显示我提到的 403 错误。如果这意味着什么,也很高兴提供其余的错误消息,但我认为也许真的没有。
【问题讨论】:
-
developer.paypal.com/docs/api/overview... 这个链接应该有所有的信息
-
如果您使用的是 PayPal-NET-SDK...请从 Git 中查看这些示例。github.com/paypal/PayPal-NET-SDK/tree/master/Samples
-
如果您正在寻找 ASP.NET 中 PayPal 支付网关集成的最新解决方案,请查看演示:techtolia.com/PayPal
标签: c# api rest paypal transactions