我正在经营一个交易网站,在那里客户支付商品。到目前为止,我正在使用我的支付处理器( PP )公司网页来处理付款,即客户端重定向到PP服务器,并在付款完成后重定向回我的网站。一个很大的缺点是我不能定制PP页面,或者很少。
现在,我想直接在我的网站上处理付款。我只需要将所有的支付数据发送到我的支付处理器,它就会返回响应。我已经知道我需要与PCI兼容。我的网站是使用AJAX调用RESTeasy WebServices和Java服务器完成的。
现在我的问题是,我是应该使用javascript来验证客户端的每个字段,还是应该在服务器上执行swing所有的工作?我应该直接使用客户端上的表单或使用服务器上的HttpUrlConnection发送到支付处理机?市场上这样做的基准是什么?我发现了很多PHP示例,但不幸的是没有时间学习PHP。
谢谢
发布于 2011-03-20 20:46:01
您是否要将数据直接发送到支付处理机或收集信用卡信息取决于您的支付处理机,以及您是否要存储在信用卡页面上收集的一些信息(不要存储信用卡信息;如果需要,只存储最后四位数)。
将表单直接发送到支付处理机是最简单的方法。这可能还意味着您甚至不需要符合PCI level 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-20 13:48:13
正如所指出的,您不能只在客户端进行验证,因为人们可以获取您的客户端代码并对其进行修改。此外,您还需要提供用户不希望看到的帐户信息。您的服务器必须验证并处理请求。
这是一项相当复杂的任务。您需要确保通过SSL (HTTPS)访问该页面,并且需要安全地访问您的信用卡处理器。
您可以从服务器端代码执行一些基本的验证。查看http://www.blackbeltcoder.com/Articles/ecommerce/validating-credit-card-numbers。
除此之外,这实际上取决于您的处理器和它们提供给您的API。您需要编写符合其规范的代码。
发布于 2011-03-21 06:56:57
感谢你们所有人的回答。最后,这要复杂得多,仅仅为了网页设计的目的而自己收集支付数据是一项太大的责任。我仍然会修改我的付款页面,通知用户他们将在付款处理器网页上重定向以完成付款。有点像我现在拥有的东西的混合体。这对他们和我来说都更安全。
再次感谢。
https://stackoverflow.com/questions/5366435
复制相似问题