3

OK、再コーディングしてサードパーティのSOAP API呼び出しを送信するときにこれを見たことはありませんが、PayPalは、ほとんどのAPIのように標準のAPI署名を送信するだけでなく、API呼び出しを送信するために、より大きなクライアントにX509証明書を使用することを要求しているようですする必要があります。

これがちょっと奇妙で標準的ではないと思うのは私だけでしょうか?

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

これが API 呼び出しにどのように関連するのかわかりません。.NET で ICertificatePolicy インターフェースを実装する C# で提供されたサンプル コードを確認しましたが、これは私にはなじみのないものであり、これが PayPal サンドボックスでも API 署名を提供しているという事実にどのように関係しているかに関係なく. では、なぜ物理ファイル証明書を読み取り、API 署名を使用する必要があるのでしょうか? 証明書と PayPal SOAP API の間のリンクが表示されないと思います。

4

2 に答える 2

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 は非常に古く、これが API で使用されているのを見たことがありませんそれは過去2年間に書いていました。

于 2010-01-19T21:06:09.440 に答える
0

あなたは人々のお金を扱っています。証明書がどのように機能するかについての詳細はわかりませんが、基本的には、アプリケーションから送信される支払いがより​​安全であることを保証します.

単純な API キーはなりすましが容易であり、詐欺をより簡単に許してしまうと思います。

于 2010-01-19T21:05:23.357 に答える