【问题标题】:PayPal API Certificate贝宝 API 证书
【发布时间】:2011-01-07 00:10:06
【问题描述】:

好的,我在编码和发送第 3 方 SOAP API 调用时从未见过这种情况,但看起来 PayPal 需要更大的客户端使用 X509 证书才能发送 API 调用,而不仅仅是通过标准 API 签名发送就像大多数 API 要求你做的那样。

只有我一个人认为这有点奇怪或不标准吗?

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

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

【问题讨论】:

    标签: c# paypal paypal-soap


    【解决方案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 ...我工作的大多数需要 X509 证书的 API 都非常过时,我还没有看到这个使用过在过去 2 年编写的 API 中。

    【讨论】:

    • 很好的信息,感谢您发布我认为正确的内容的详细说明!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-12-13
      • 2013-04-03
      • 2014-10-03
      • 1970-01-01
      • 2015-12-13
      • 2012-02-15
      • 2011-02-17
      • 1970-01-01
      • 2015-07-06
      相关资源
      最近更新 更多