Я пытаюсь внедрить API-интерфейс VISA Developer Foreign Exchange с использованием CURL, но когда я отправляю запрос, я получаю сообщение об ошибке аутентификации. Я тестирую API локально, и вот моя реализация.
data_string = $_POST;
$ch = curl_init('https://sandbox.api.visa.com/forexrates/v1/foreignexchangerates');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', "Accept:application/json", "Authorization:".base64_encode("usernamestring:passwordstring")));
curl_setopt($ch, CURLOPT_URL, "https://sandbox.api.visa.com/forexrates/v1/foreignexchangerates");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data_string));
curl_setopt($ch, CURLOPT_POST, 1);
$results = curl_exec($ch);
Они также генерируют сертификат.pem certifcate, который я не уверен, должен ли я использовать для запроса API внешнего Exchnage, но можете ли вы посмотреть и посмотреть, что я делаю что-то неправильно?
Этот api является взаимным auth и для вызова api вам нужно создать приложение для этого api на платформе разработчика, а затем вам нужно передать свой пароль пользователя в заголовке авторизации. userid и пароль специфичны для созданного вами приложения и могут быть показаны на странице сведений о вашем приложении.
кроме заголовка авторизации вам также нужно отправить файлы ключей и сертификатов. ключевой файл будет создан во время создания приложения и будет загружен в вашу систему.
используйте пример кода, предоставленного для PHP на платформе. Чтобы получить доступ к образцу кода, вам нужно создать приложение для этого api.
Дайте мне знать, если у вас есть еще вопросы?
.pem
я думаю, что вы должны предоставить ssl-параметры для запроса curl - также целесообразно использовать useragent.