2010-01-19 74 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