是否要将数据直接发布到支付处理器或收集信用卡信息取决于您的支付处理器以及是否要将您收集的某些信息存储在信用卡页面上(不要存储信用卡信息;存储如果需要,只需最后四位数字。)
将表格直接发布到支付处理商是最简单的方法。这也可能意味着您甚至不需要符合 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