Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 贝宝API证书_C#_Paypal_Paypal Soap - Fatal编程技术网

C# 贝宝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签名这一事实有什么关系。那么为什么我需要读取物理文件证

好的,我从来没有在编写againts和发送第三方SOAP API调用时看到过这种情况,但看起来PayPal要求他们的大客户机使用X509证书来发送API调用,而不是像大多数API那样通过标准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中看到过这种情况。

很好的信息,感谢您详细介绍了我认为正确的内容!