2011-03-20 51 views
0

我正在運行一個客戶支付貨物的交易網站。到目前爲止,我正在使用我的付款處理器(pp)公司網頁來處理付款,即客戶被重定向到PP服務器,並在付款完成後重定向回我的網站。一個很大的缺點是我無法自定義PP頁面,或者很少。什麼是安全的網絡支付體系結構

現在,我想直接在我的網站上處理付款。我只需要將所有付款數據發送到我的付款處理器,並返回響應。我已經知道我需要符合PCI標準。我的網站使用AJAX調用RESTeasy WebServices和Java服務器完成。

現在我的問題是,我應該驗證客戶端上的每個字段,使用JavaScript,或擺動服務器上的所有內容並在那裏完成任務?我是否應該直接使用客戶端上的FORM或使用服務器上的HttpUrlConnection發送到付款處理器?市場上這樣做的基準是什麼?我發現了很多PHP示例,但不幸的是沒有時間學習PHP。

感謝

+1

不要僅在客戶端進行驗證! (特別是對於支付系統...)如果您使用JavaScript在客戶端上進行驗證,那麼它純粹是爲了用戶的方便 - 它很容易繞過。 – Cameron 2011-03-20 03:28:44

+0

@Cameron:謝謝Cameron,但現在我怎麼能接受你的答案,因爲你發表評論?!? – Alain 2011-03-20 03:33:15

+0

@Cameron:謝謝。至少,我對你的評論投了一票。我認爲這是我現在可以做的最好的! – Alain 2011-03-20 03:51:23

回答

1

無論你是想直接將數據發佈到支付處理器或收集信用卡信息取決於您的付款處理器,如果你想存儲一些你的信用卡頁面上收集到的信息(店信用卡信息;如果需要,只存儲最後四位數字。)

將表單直接發送到付款處理器是最簡單的方法。這可能也意味着你甚至不需要符合PCI級別4,因爲沒有信用卡信息通過你的系統。在這裏看到:

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

在另一方面,如果你想存儲的賬單地址或信用卡號的最後四位數字 - 或者將這些數據插入到你想要發送回執電子郵件 - 您需要編寫自己的服務器端代碼,用於從信用卡頁面收集信息並使用HttpUrlConnection將數據發佈到付款處理器。如果您的付款處理器提供API,您也可以使用該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

1

正如指出的那樣,你不僅可以在客戶端驗證,因爲人們可以把你的客戶端代碼並修改它。另外,您需要提供帳戶信息,而您不希望用戶看到該信息。您的服務器必須驗證並處理請求。

這是一個相當複雜的任務。您需要確保通過SSL(HTTPS)訪問頁面,並且您需要安全地訪問信用卡處理器。

您可以從服務器端代碼執行一些基本驗證。檢查出http://www.blackbeltcoder.com/Articles/ecommerce/validating-credit-card-numbers

除此之外,它確實取決於您的處理器和他們提供給您的API。您需要編寫符合其規範的代碼。

0

感謝大家對你的答案。最後,它要複雜得多,爲了網頁設計的目的,我自己負責收集付款數據是一項太大的責任。我仍會修改我的付款頁面,通知用戶他們將在付款處理器網頁上重定向以完成付款。這是我現在擁有的一種混合體。這對他們和我來說都更安全。

再次感謝。