PHP code example of wearesho-team / risktools-blacklist
1. Go to this page and download the library: Download wearesho-team/risktools-blacklist library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
wearesho-team / risktools-blacklist example snippets
use Wearesho\RiskTools\Blacklist\Config;
$config = new Config(
authKey: 'ваш-ключ-авторизації',
apiUrl: 'url-api-сервісу'
);
use Wearesho\RiskTools\Blacklist\EnvironmentConfig;
$config = new EnvironmentConfig();
use Wearesho\RiskTools\Blacklist\Service\Builder;
// Базова ініціалізація з налаштуваннями за замовчуванням
$service = Builder::create()->getService();
// Ініціалізація з власним конфігом
$service = Builder::create()
->withConfig(new CustomConfig())
->getService();
// Ініціалізація з власним HTTP-клієнтом
$service = Builder::create()
->withHttpClient(new CustomHttpClient())
->getService();
// Ініціалізація з усіма залежностями
$service = Builder::create()
->withConfig(new CustomConfig())
->withHttpClient(new CustomHttpClient())
->getService();
use Wearesho\RiskTools\Blacklist;
$service = new Blacklist\Service(
client: new Blacklist\Client(
config: new Blacklist\Config(), // налаштувати в DI Container
httpClient: new \GuzzleHttp\Client(), // налаштувати в DI Container
),
searchFactory: new Blacklist\Search\Factory(),
updateFactory: new Blacklist\Update\Factory(),
);
use Wearesho\RiskTools\Blacklist\Search\Request;
use Wearesho\RiskTools\Blacklist\Category;
// Пошук за номером телефону
$request = Request::byPhone('380501234567');
// Пошук за ІПН
$request = Request::byIpn('1234567890');
// Пошук за номером телефону та ІПН одночасно
$request = Request::byPhoneOrIpn('380501234567', '1234567890');
// Пошук з фільтрацією за категоріями
$request = Request::byPhone(
'380501234567',
Category::MILITARY,
Category::FRAUD
);
use Wearesho\RiskTools\Blacklist\Service;
/** @var Service $service */
$response = $service->search($request);
// Отримання кількості знайдених записів
$total = $response->found();
// Отримання списку партнерів, які додали записи
$partners = $response->partners(); // ['87613', '01933']
// Отримання статистики за категоріями
$categories = $response->categories(); // ['military' => 2, 'fraud' => 1]
// Обробка знайдених записів
foreach ($response->records() as $record) {
// Отримання даних запису
$phone = $record->phone(); // ?string
$ipn = $record->ipn(); // ?string
$category = $record->category(); // Category enum
$partnerId = $record->partnerId(); // string
$addedAt = $record->addedAt(); // DateTimeImmutable
// Приклад використання
echo sprintf(
"Запис %s додано %s партнером %s в категорії %s\n",
$phone ?? $ipn,
$addedAt->format('Y-m-d'),
$partnerId,
$category->value
);
}
use Wearesho\RiskTools\Blacklist\Update\Record;
use Wearesho\RiskTools\Blacklist\Category;
use DateTimeImmutable;
// Створення запису за номером телефону
$record = Record::withPhone(
"380501234567",
Category::MILITARY,
new DateTimeImmutable() // опціонально
);
// Створення запису за ІПН
$record = Record::withIpn(
"1234567890",
Category::FRAUD,
new DateTimeImmutable("2023-08-01T12:00:00+03:00") // опціонально
);
// Створення запису з телефоном та ІПН
$record = Record::withPhoneAndIpn(
"380501234567",
"1234567890",
Category::CIRCLE,
new DateTimeImmutable() // опціонально
);
use Wearesho\RiskTools\Blacklist\Exception;
use Wearesho\RiskTools\Blacklist\Update\Record;
// Формування масиву записів
$records = [
Record::withPhone("380501234567", Category::MILITARY),
Record::withIpn("1234567890", Category::FRAUD),
Record::withPhoneAndIpn(
"380507654321",
"0987654321",
Category::CIRCLE,
new DateTimeImmutable()
),
];
// Відправка даних
try {
$response = $service->update($records);
} catch (Exception $e) {
// Обробка помилок запиту
echo "Помилка запиту: " . $e->getMessage() . PHP_EOL;
}
use Wearesho\RiskTools\Blacklist\Update\Response;
/** @var Response $response */
if ($response->isSuccessful()) {
echo "Всі записи успішно оновлено" . PHP_EOL;
exit;
}
echo "Кількість записів з помилками: " . $response->countErrors() . PHP_EOL;
foreach ($response->errors() as $error) {
$record = $error->record();
// Виведення інформації про запис з помилкою
echo sprintf(
"Помилка для запису %s / %s:" . PHP_EOL,
$record->phone() ?? '-',
$record->ipn() ?? '-'
);
// Виведення помилок валідації
foreach ($error->errors() as $field => $messages) {
echo "- $field: " . implode(', ', $messages) . PHP_EOL;
}
}