繁体   English   中英

PayPal API证书

[英]PayPal API Certificate

好吧,我从来没有见过这样做直接编码和发送第三方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之间的链接。

在处理需要更安全的“握手”的连接时,这在大型名称中是常见的,并且这就是它的全部用途。

这个文件来自根证书,通常是一个.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中使用过这是在过去两年写的。

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

一个简单的API密钥更容易欺骗,并且我认为更容易欺骗。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM