2010-01-19 70 views
3

好,編碼當反對票和發送第三方SOAP API調用,但看起來像貝寶需要他們的大客戶使用X509證書,以便發送API我從來沒有見過這個不斷呼籲,而不僅僅是發送過像大多數API一樣的標準API簽名要求您這樣做。的PayPal API證書

我是誰認爲這是有點兒奇怪或不stadnard唯一的一個?

http://en.wikipedia.org/wiki/X.509

我不明白這如何與API調用。我看到他們在C#中實現了用.NET實現ICertificatePolicy接口的示例代碼......但這對我來說只是外來的,這與他們仍然在PayPal沙盒中爲您提供API簽名的事實無關。那麼爲什麼我需要讀取物理文件證書並使用API​​簽名?我想我沒有看到證書和PayPal SOAP API之間的鏈接。

回答

0

你與人打交道的錢,而我就如何證書的工作,基本上它是確保您的應用程序發送的付款更安全不知道具體情況。

一個簡單的API密鑰會更容易被欺騙,並且更容易讓我假設欺詐。

1

這與需要更安全的「握手」和多數民衆贊成它用於連接處理時較大名中常見的事。

這個文件是由根證書製作的,通常是.pem,.p12,.pfx這裏是一個使用python和cURL的例子,它很簡單,如果你對X.509文件有任何問題,我會聯繫誰購買你的根證書,或只搜索谷歌如何導出你需要的文件(我個人總是最終得到一個.p12文件)。

這裏是Python代碼

 c = pycurl.Curl() 
     c.setopt(pycurl.URL, FirstDataAPI_URL) 
     c.setopt(pycurl.HTTPHEADER, ["Accept:"]) 
     c.setopt(pycurl.POST, 1) 
     c.setopt(pycurl.POSTFIELDS, urllib.urlencode(FirstDataAPI_PostData)) 
     b = StringIO.StringIO() 
     c.setopt(pycurl.WRITEFUNCTION, b.write) 
     c.setopt(pycurl.FOLLOWLOCATION, 1) 
     c.setopt(pycurl.MAXREDIRS, 5) 
     #c.setopt(pycurl.SSLCERT, '/home/***/***/***/ssl/digitalID.p12') 
     c.setopt(pycurl.SSLCERT, '/home/***/***/***/ssl/productionDigitalId.p12') 
     c.setopt(pycurl.SSLCERTTYPE, 'p12') 
     c.setopt(pycurl.SSLCERTPASSWD, '******') 
     c.perform() 

對於SOAP我會找一個設置,允許你設置證書文件,你將被設置使用。

正如一個側面說明,這只是表明,貝寶還沒有更新他們的API中好幾年了......最API的,我的工作需要一個X509證書是非常過時的,我還沒有看到這用於過去兩年編寫的API。

+0

良好的信息,感謝您發佈我認爲是正確的細節! – 2010-01-19 21:11:44