Сегодня поговорим о достаточно распространенной задаче: получение адреса, банковских данных и так далее.
Рассмотрим реальную задачу, требования: необходимо получать полную информацию о банке по введенному БИК номеру. Для реализации задачи отлично подойдет сервис DaData. Для реализации вывода подсказок в форме достаточно скопировать код с сайта DaData, поэтому на этом останавливаться не будем, а рассмотрим работу именно на бэкенде.
Для работы с DaData мы будем использовать библиотеку CURL и собственно язык программирования PHP :) Сразу приведем код хэлпера для работы с сервисом:
namespace BXCert\Helpers; /** * Class DaDataHelper * @package BXCert\Helpers */ class DaDataHelper { /** * @param string $sApiKey API Key сервиса DaData.ru * @param string $sType Тип запроса address|bank и другие * @param array $arFields * @return array|mixed * @link https://dadata.ru/suggestions/usage/#bank */ public static function dadata($sApiKey, $sType, $arFields) { $arResult = []; if ($oCurl = curl_init("http://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/" . $sType)) { curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($oCurl, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', 'Accept: application/json', 'Authorization: Token ' . $sApiKey ]); curl_setopt($oCurl, CURLOPT_POST, 1); curl_setopt($oCurl, CURLOPT_POSTFIELDS, json_encode($arFields)); $sResult = curl_exec($oCurl); $arResult = json_decode($sResult, true); curl_close($oCurl); } return $arResult; } }
Использовать хэлпер предельно просто:
$arBank = \BXCert\Helpers\DaDataHelper::dadata(API_KEY, 'bank', ['query' => '044525322', 'count' => 1]); echo '' . print_r($arBank, 1) . '';
Результатом будет "простыня" массива со всеми полученными данными по банку. Также стоит отметить, что если Вы при регистрации не подтвердили email адрес, то воспользоваться API не получится и скорее всего Вы увидите следующую ошибку: "Feature 'SUGGESTIONS' disabled for token ...". Для исправления Вам необходимо подтвердить электронный адрес (пройти по ссылке из письма) и скорее всего обновить ключи в настройках:
Чистого кода!
Возможно Вам будет интересно