PayPal API证书

时间:2010-01-19 20:53:27

标签: c# paypal paypal-soap

好的,我从来没有见过这样的编码反应和发送第三方SOAP API调用,但看起来像PayPal要求他们的大客户使用X509证书发送API调用而不是仅通过标准API签名发送像大多数API要求你这样做。

我是唯一一个认为这有点奇怪或不是stadnard的人吗?

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

我不明白这与API调用有什么关系。我看到他们用C#在.NET中实现ICertificatePolicy接口给我的示例代码...但这对我来说很陌生,这与他们在PayPal沙箱中仍然为您提供API签名的事实有关。那么为什么我需要读取物理文件证书并使用API​​签名?我想我没有看到证书和PayPal SOAP API之间的链接。

2 个答案:

答案 0 :(得分: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一起使用,我会寻找一个允许你设置证书文件的设置,你将被设置。

正如旁注,这只是表明Paypal在未来几年内没有更新他们的API ...我工作的大多数API需要X509证书非常过时且我没有看到这个使用过在过去两年写的API中。

答案 1 :(得分:0)

你正在处理人们的钱,虽然我不知道证书的工作方式,但基本上它确保从你的应用程序发送的付款更安全。

一个简单的API密钥更容易欺骗,并且我更容易假设欺诈。