C# 贝宝API证书
好的,我从来没有在编写againts和发送第三方SOAP API调用时看到过这种情况,但看起来PayPal要求他们的大客户机使用X509证书来发送API调用,而不是像大多数API那样通过标准API签名发送 我是不是唯一一个觉得这有点奇怪的人C# 贝宝API证书,c#,paypal,paypal-soap,C#,Paypal,Paypal Soap,好的,我从来没有在编写againts和发送第三方SOAP API调用时看到过这种情况,但看起来PayPal要求他们的大客户机使用X509证书来发送API调用,而不是像大多数API那样通过标准API签名发送 我是不是唯一一个觉得这有点奇怪的人 我不明白这与API调用有什么关系。我看到了他们在C#中给我的一个示例代码,在.NET中实现了ICertificatePolicy接口……但这对我来说是陌生的,这与他们在PayPal沙箱中也给你一个API签名这一事实有什么关系。那么为什么我需要读取物理文件证
我不明白这与API调用有什么关系。我看到了他们在C#中给我的一个示例代码,在.NET中实现了ICertificatePolicy接口……但这对我来说是陌生的,这与他们在PayPal沙箱中也给你一个API签名这一事实有什么关系。那么为什么我需要读取物理文件证书并使用API签名呢?我想我看不到证书和PayPal SOAP API之间的联系。您处理的是人们的钱,虽然我不知道证书如何工作的细节,但基本上它确保从应用程序发送的付款更安全
一个简单的API密钥更容易被欺骗,并且我认为更容易被欺诈。在处理需要更安全的“握手”的连接时,这在大型公司中是很常见的,而这正是它的全部用途 这个文件是由根证书和通常的.pem、.p12、.pfx组成的。这里是一个使用python和cURL的示例,它非常简单,如果您在使用X.509文件时遇到任何问题,我会与您购买根证书的人联系,或者只是在google上搜索如何导出您需要的文件(我个人总是以一个.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了……我工作的大多数需要X509证书的API都已经非常过时了,我还没有在过去两年编写的API中看到过这种情况。很好的信息,感谢您详细介绍了我认为正确的内容!