0

我正在运行一个客户支付商品的交易网站。到目前为止,我正在使用我的支付处理器 (pp) 公司网页来处理付款,即客户端被重定向到 PP 服务器,并在付款完成后重定向回我的站点。一个很大的缺点是我不能自定义PP页面,或者很少。

现在,我想直接在我的网站上处理付款。我只需要将所有支付数据发布到我的支付处理器,它就会返回响应。我已经知道我需要符合 PCI 标准。我的网站是使用 AJAX 调用 RESTeasy WebServices 和 Java 服务器完成的。

现在我的问题是,我应该使用 javascript 验证客户端的每个字段,还是摆动服务器上的所有内容并在那里完成工作?我应该使用客户端上的 FORM 还是使用服务器上的 HttpUrlConnection 直接发布到支付处理器?市场上这样做的基准是什么?我发现了很多 PHP 示例,但不幸的是没有时间学习 PHP。

谢谢

4

3 回答 3

1

正如所指出的,您不能仅在客户端上进行验证,因为人们可以获取您的客户端代码并对其进行修改。此外,您需要提供您不希望用户看到的帐户信息。您的服务器必须验证并处理请求。

这是一项相当复杂的任务。您需要确保通过 SSL (HTTPS) 访问该页面,并且您需要安全地访问您的信用卡处理器。

您可以从服务器端代码执行一些基本验证。查看http://www.blackbeltcoder.com/Articles/ecommerce/validating-credit-card-numbers

除此之外,这实际上取决于您的处理器和它们为您提供的 API。您需要编写符合其规范的代码。

于 2011-03-20T05:48:12.923 回答
1

是否要将数据直接发布到支付处理器或收集信用卡信息取决于您的支付处理器以及是否要将您收集的某些信息存储在信用卡页面上(不要存储信用卡信息;存储如果需要,只需最后四位数字。)

将表格直接发布到支付处理商是最简单的方法。这也可能意味着您甚至不需要符合 PCI 4 级标准,因为信用卡信息都不会通过您的系统。看这里:

http://www.pcicomplianceguide.org/pcifaqs.php#2

另一方面,如果您想存储帐单地址或信用卡号的最后四位数字 - 或将此数据插入您想通过电子邮件发送的收据中 - 您将需要编写自己的服务器- 从信用卡页面收集信息并使用 HttpUrlConnection 将数据发布到支付处理器的端代码。如果您的支付处理器提供 API,您也可以使用它。

无论哪种情况,您都应确保您的付款页面只能通过 SSL 查看。在 Java Web 应用程序中,您可以使用 web.xml 中的传输保证条目来执行此操作:

  <security-constraint>
   <user-data-constraint>
     <transport-guarantee>CONFIDENTIAL</transport-guarantee>
   </user-data-constraint>
   <web-resource-collection>
     <url-pattern>your_payment_page.jsp</url-pattern>
   </web-resource-collection>
  </security-constraint>

这将确保即使用户通过纯 HTTP 访问您的支付页面,应用程序服务器也会重定向到 HTTPS。

从处理器的角度来看,此页面(来自我处理过的支付处理器)包含更多信息:

http://wiki.usaepay.com/developer/transactionapi

于 2011-03-20T12:46:01.003 回答
0

感谢大家的回答。最后,它要复杂得多,仅出于网页设计的目的,自己负责收集支付数据的责任太大了。我仍然会修改我的支付页面,通知用户他们将被重定向到支付处理器网页以完成支付。有点像我现在所拥有的混合体。这对他们和我来说更安全。

再次感谢。

于 2011-03-20T22:56:56.810 回答