【发布时间】:2020-02-06 09:44:13
【问题描述】:
我有一个 .Net Core 3 项目,我想集成 Paypal。
在过去的项目中,我使用的是Paypalpackage,但现在我正在阅读他们的documentation,他们建议使用他们的 API 版本 2。 (之前我使用的是带有 Paypal SDK 的版本 1)。如果我去 nuget.com 并检查 Paypal 包,我发现这个包的第 2 版仍然是 rc:
Version Downloads Last updated
2.0.0-rc2 143,570 2018-04-12T18:17:40Z
现在已经快 2 年了,所以看起来并不乐观。如果我再次查看他们的文档,我发现他们建议使用以下软件包:PayPalCheckoutSdk。链接到他们的docs。如果我尝试复制粘贴一个示例,它甚至无法编译(主要是由于某些属性重命名)。这真的没有给使用这个包很大的信心。我最后的办法是直接调用 paypal API,而不使用他们提供的 SDK。
将 paypal 与我在 .Net Core 3.1 上运行的服务器集成的最佳方式是什么?
选项:
- 使用
paypal 2.0.0-rc2 - 使用
PayPalCheckoutSdk - 直接调用API
【问题讨论】:
-
我是一个 REST API,所以你不需要真的需要 SDK。此外,所有支付提供商提供的 SDK 的质量都是……嗯,他们不是在销售软件,是吗? “SDK”通常是从其模式生成的类,带有一些有问题的样板代码。有时,样板来自将 Java 代码迁移到 .NET。例如,现在每个人都应该知道 HttpClient 应该被重用,但 the Paypal SDK creates a new instance for each call。这对于大型电子商务网站来说可能非常糟糕(猜猜我是怎么知道的)
-
您可以从 SDK 的代码中借用 DTO,然后将它们与您自己的代码一起使用。这将为您节省很多无聊的工作。您可以研究他们的代码以了解身份验证的工作原理。确保您避免像using injectors 这样的“不幸”想法来添加
Gzip标头,只需设置一个DefaultHeader 即可轻松完成!授权注入器也是如此。PayPalHttpClient并没有通过简单的 HttpClient 或工厂配置提供任何东西 -
查看SDK后,它只是一个DTO和一个过于复杂的HttpClient。这些示例适用于 Java 的 HttpClient 类 - .NET 的 HttpClient 没有
exectue方法。 -
感谢您的回复。 SDK似乎真的很差。我选择了 API。
-
如果您正在寻找 ASP.NET Core MVC 和 C# 中 PayPal 支付网关集成的最新解决方案,请查看演示 --> techtolia.com/PayPal - 目标框架:.NET Core – ASP.NET Core 3.1 – 语言:c#
标签: .net-core paypal .net-core-3.1