Сертификат PayPal API
Хорошо, я никогда не видел этого когда кодирую повторы и отправляю сторонние вызовы SOAP API, но похоже, что PayPal требует, чтобы их более крупные клиенты использовали сертификат X509 для отправки вызовов API, а не просто передавали стандартную сигнатуру API, как большинство API потребовать от вас сделать.
Я единственный, кто думает, что это немного странно или нет?
http://en.wikipedia.org/wiki/X.509
Я не понимаю, как это относится к вызову API. Я вижу пример кода, который мне дали в C#, реализующем интерфейс ICertificatePolicy в.NET... но он для меня просто чужд и как это связано с тем фактом, что они все еще дают вам сигнатуру API в изолированной программной среде PayPal. Так зачем мне читать физический файл сертификата И использовать подпись API? Наверное, я не вижу связи между сертификатом и API-интерфейсом PayPal SOAP.
2 ответа
Это обычное явление среди больших имен, когда имеешь дело с соединениями, которые требуют более безопасного "рукопожатия", и это все, для чего он используется.
Этот файл сделан из корневого сертификата и, как правило,.pem, .p12, .pfx, вот пример использования python и cURL, это очень просто сделать, и если у вас возникнут какие-либо проблемы с файлом X.509, я получу связаться с кем-либо, у кого вы покупаете свой корневой сертификат, или просто поищите в Google информацию о том, как экспортировать нужный вам файл (лично я всегда получаю файл.p12).
Вот код питона
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 не обновлял свой AP I в течение нескольких лет... Большинство AP I, над которыми я работаю, для которых требуется сертификат X509, чрезвычайно устарели, и я не видел, чтобы это использовалось в AP I. что писал в последние 2 года.
Вы имеете дело с деньгами людей, и хотя я не знаю особенностей работы сертификата, в основном это гарантирует, что платежи, отправленные из вашего приложения, будут более безопасными.
Простой ключ API будет проще подделать, и я предполагаю, что мошенничество будет проще.