由于我已经进行了几次PayPal集成工作(虽然是几年前的事情),所以让我总结一下我的想法(请注意,事情可能略有变化)。
PayPal拥有如此众多的API / 集成方法的原因在于他们希望能够从各种不同的地方支持付款。
如果你只有博客、静态HTML托管、现成的电子商务网站或其他“原始”Web技术,那么
提交隐藏的HTML表单几乎是你唯一的选择。我认为这是PayPal最初使用的机制,虽然他们必须永远支持它,但你不会想从像SpringMVC这样的现代Web框架中使用这种方法。
NVP API是另一种长期存在的集成方案,在你的客户端只能有效地将参数拼接成URL时是合适的。当REST JSON API可用时,没有太大的理由使用此API-大多数人发现JSON比URL编码的参数更容易阅读。
按时间顺序引入的下一个我怀疑是
SOAP API,它反映了XML将统治世界的时代。在某些(非常严格和/或传统的)场合,它仍然如此。同样,在有选择的情况下,这些天你可能不会走这条路-与Java的使用通常涉及与SOAP框架(如
Apache CXF)的紧密集成和大量机器生成的
.java
文件。
REST API是最现代化和(在我的意见中)从Java-land中使用最好的选项,也是我推荐的选项。看起来PayPal也希望你使用它,所以我将在这个答案的剩余部分中谈论它。
作为Java开发人员,当您选择REST API时,您还可以选择使用
PayPal的SDK或自行编写集成方案。如果考虑到以下因素,请考虑使用SDK:
作为一个已经通过cURL使用API并理解调用和它们的顺序的人,您可能对此还没有决定。如果您没有太多时间压力,我建议使用(并学习)
Apache HttpClient与像
Jackson这样的JSON库来自己开发 - 它们是您工具箱中宝贵的工具,并且您几乎肯定会在未来的集成中再次使用它们。
另一个开发提示,适用于任何REST API选项 - 如果您使用“存根服务器”(例如
this one)来模拟PayPal连接的一端,它将记录接收到的每个请求的详细信息并做出适当的响应。这对于调试“通过电线”传输的确切内容和/或反复测试事物非常有用。