2010-04-14 156 views
2

我正在嘗試整合貝寶網站付款標準>購物車將付款類型上傳到我的購物車。我之前整合了Google Checkout,並且我沒有發現它過度困惑,因爲我使用PayPal。貝寶加密網站付款

我得到了如何從這裏加密信息: https://cms.paypal.com/us/cgi-bin/?&cmd=_render-content&content_ID=developer/e_howto_html_encryptedwebpayments#id08A3I0P017Q

寶說,我需要生成私鑰和使用OpenSSL公共證書。我去了OpenSSL並下載了最新版本,它只是一個包含各種文件的文件夾,但我沒有看到我可以使用的應用程序,不確定在這裏做什麼。

即使我要讓OpenSSL爲我生成一個私鑰和公共證書,下一步就是下載一個MS或Java命令行工具,以提前創建加密的購物車,等等,這聽起來很瘋狂,就像我應該在每個訂單之前手動執行此操作一樣?

很明顯,我不知道顧客打算購買購物車中的物品,因此我需要在我的網站上使用PHP在飛行中完成此操作。但我完全失去了。必須有一種方法來設置動態安全的購物車上傳到貝寶。有人可以請指點我正確的方向嗎?

回答

3

首先,你的問題與OpenSSL。如果你使用Linux或Mac,它很容易(一如既往)。照常安裝軟件包,並在PayPal說明頁面上使用該命令。在Windows上,請確保您正在從此page下載二進制文件而不是來源

您不需要使用它們提供的Java程序來生成鏈接。說明書的這一部分適用於製作靜態頁面的人員,而不是使用PHP。 PayPal是一個很大的解決方案,爲您提供了巨大的靈活性,但他們通過爲您提供大量不同的API和處理付款方式來實現這一點。在您發佈的鏈接中,EWP(加密網站付款)不是您要查找的內容。

自從我在客戶的解決方案中使用PayPal以來,已經有幾年了。上次,有一個單獨的API來執行您要求的PDT (Payment data transfer)。自從我上次使用它以來,API已經發生了一些變化,並且自從我上次下載它以來,文檔似乎已經移動了,但仍然存在「網站付款標準集成指南」和「訂單管理集成指南」。那些仍然有你正在尋找我的想法的指示。

簡單的答案是,自己生成加密鏈接以構建定製解決方案對於PayPal來說是非常可能的,但是您必須做一些工作才能實現。該文檔很難在網站上找到

2

雖然尼古拉斯已經回答了你如何去生成你需要的私鑰和證書,並建議使用PDT來滿足你的需求,但我也想實際使用加密支付在PHP中,我確定一些粘性電阻會想要這樣做。

您運行的服務器需要安裝openssl(它安裝在大多數Linux服務器上),您需要能夠通過php執行此操作(即通過exec命令)。

代碼要做到這一點,請訪問:

http://www.stellarwebsolutions.com/en/articles/paypal_button_encryption_php.php

我用這個成功(調整,因爲他們沒有被正確地拿起函數內的文件中的變量之後)。

+0

如果你解釋了你調整了什麼確切的文件變量,這將是非常有益的。 – 2014-03-14 20:21:41

0

這個帖子看起來有點老了,我想。

不過,我想我可能會在我的2美分扔

貝寶現在是隻需點擊一個複選框,您的「賣家」選項卡,其中規定的選項:「不接受從一個未加密的網站發起支付」 ......或類似的東西。

此外,還有一些選項(也是貝寶推薦的),下載他們自己的證書,生成自己的(或公共密鑰),並使用兩者來驗證並檢查付款是否屬於欺詐行爲。

我目前正在執行此操作。我在我的網站上創建了paypal按鈕,並點擊了拒絕未加密網站付款的選項。

問題是:這個所謂的「安全措施」阻止了我網站上約50%的客戶,並且沒有明顯的原因。

這就是爲什麼我認真考慮從我的PayPal按鈕中刪除這個所謂的安全功能!這是一件麻煩事。無論如何,所有paypal付款都是安全的,因爲他們通過SSL。我的網站同樣受到SSL加密的保護。

而且,從網上的大量調查來看,大多數人的看法和我一樣:「加密」按鈕不值得浪費時間和麻煩,特別是如果它只讓50%的潛在客戶滿意!

+0

我不明白爲什麼「加密」按鈕會讓50%的客戶失望,這不應該對用戶透明嗎? – 2016-10-08 04:04:19

0

對於Python用戶,python-ewp包負責簽名和加密。 *假設你有OpenSSL的頭和可用的庫,安裝很簡單,只要:

pip install ewp 

一旦你有一個包含key=value線串,你可以把它傳遞給ewp.sign()生成加密的簽名和ewp.encrypt()

signature = ewp.sign('test.key', 'test.crt', data) 
ciphertext = ewp.encrypt('paypal.crt', signature) 

注意,提供了三個文件名:

  • test.key - 一個RSA私鑰
  • test.crt - 通過密鑰
  • paypal.crt簽署的X509證書 - 貝寶的公共證書

您可以生成RSA密鑰:

openssl genrsa -out test.key 2048 

.. 。並創建一個自簽名證書有效期爲一年:

openssl req -new -key test.key -x509 -days 3650 -out test.crt 

貝寶證書可以通過以下these instructions獲得。


* 免責聲明:我包的作者。