ajax - 如果您在服务器上使用他们的 SDK,Paypal REST API 真的符合 PCI 标准吗?可能的客户端解决方案?

标签 ajax paypal sdk authorization pci-compliance

我一直在研究 Paypal 的 Payflow Pro 和他们提供的 REST API。我目前正在研究具有自己的购物车的 .NET MVC Visual Studio 解决方案。由于所有 PCI 合规性问题,最安全的途径(唯一途径?)似乎是使用 AJAX 将所有安全数据直接发布到 paypal。对我来说,这意味着直接使用 jQuery AJAX 发布所有抄送编号、安全代码、到期日期等。没有什么安全的东西会攻击我的服务器,因为它是直接从客户端到 Paypal 的。这也意味着我将无法使用 Paypal 的 SDK,因为大部分这些东西都将在客户端处理。至少我认为是这样。

这是我打算做的,如果我错了请评论/纠正我。

  1. 用户决定“结帐”并完成销售(在一个或多个表单中输入运费、账单、CC# 等之后)。
  2. 用户提交表单,我需要在提交付款请求之前向 Paypal 请求安全 token 。为此,我将对我的服务器使用 AJAX 方法。服务器方法为 auth token 创建幕后请求(并且无法使用 Fiddler 等进行嗅探)(将 Authorization header 中的 ClientID 和 Secret 发送到 oauth2/token)。安全 token 在响应中返回。 AJAX 请求将此时间敏感 token 传递回客户端。
  3. 直接到 Paypal 的请求是动态创建的(添加带有 Bearer token 的授权 header 和其他必需的 json 属性 - intent、payer、funding_instruments 等)
  4. 此直接请求的响应包含批准状态。客户端显示付款状态,其他 AJAX 方法在服务器上记录批准的详细信息以供审计跟踪。

因此,根据我上面的描述,几乎没有使用 Paypal 的 SDK。我不能在客户端上使用它,并且对初始安全 token 的请求非常简单(这对我有帮助,尽管我做的有点不同:Token Request Details)。请求主体的动态 json 构建起来可能很难看,但除此之外,我认为这没什么大不了的(除了要花时间才能正确处理!)。

有没有人发现我在这里尝试的任何问题?

最佳答案

最重要的是,依赖于客户端提供您的服务器交易/支付特定数据(Paypal 对#4 中客户端脚本 的响应)。

  • 我想您可以为此添加一个服务器端验证步骤,以便您可以验证本质上是“客户端提供的信息”(不受信任)。

  • 客户端错误怎么办?您可能需要添加更多检查以与 Paypal“同步”所有 交易(webhooks?)

除非 Paypal 人员纠正,否则我不确定 REST API 中是否包含“透明重定向”(我认为你想要的)......或者我错过了它,实际上这就是你想要实现的(在一种不同的方式,用于 PCI 合规性 - 顺便说一句:))。

也就是说,他们确实有 transparent redirect in the Classic API .

我没有专门使用过 Paypal 的透明重定向(其他提供商),但如果最大限度地减少 PCI 问题是您的目标,也许这是实现目标的更好方法。

简而言之,您将获得一个 token ,您的 HTML 表单 将连同付款人数据一起直接提交给提供商(永远不会访问您的服务器)。然后提供商将处理请求并将用户的浏览器http redirect 返回到您预定义的 URL。然后,该预定义 URL 将从您的提供商处获取结果。

在此流程中,用户并不真正“知道”他们离开了您的网站(也称为“透明重定向”)。

嗯...

关于ajax - 如果您在服务器上使用他们的 SDK,Paypal REST API 真的符合 PCI 标准吗?可能的客户端解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28817171/

相关文章:

javascript - JQuery AJAX 检索对象数组

php - Jquery AJAX POST 没有将任何东西传递给 PHP

javascript - 如何制作类似 Paypal 的星巴克小部件?

javascript - 帮助 AJAX 和 HTML

php - 使用 PHP 验证 Paypal 交易 ID?

paypal - 如何更新沙箱中未清除的电子支票交易的状态

ios - 我是否必须将替代广告网络的 SDK 添加到应用程序项目中?

android - 在更高 API 级别的 Android 上执行代码时出现问题

iphone - textFieldShouldBeginEditing + UIKeyboardWillShowNotification + OS 3.2

javascript - 是否可以通过 Jquery .ajax() 方法使用路径获取 webmethod 中的文件?