mirror of
https://git.yoomoney.ru/scm/sdk/yookassa-sdk-php.git
synced 2026-08-17 18:41:19 +00:00
260d13f890
Добавлены нулевые привязки по СБП Добавлена причина отмены возвратов `payment_expired`
4.2 KiB
4.2 KiB
YooKassa API SDK
Class: \YooKassa\Model\Notification\NotificationFactory
Namespace: \YooKassa\Model\Notification
Summary:
Фабрика для получения конкретного объекта уведомления.
Examples
Пример скрипта обработки уведомления
require_once '../vendor/autoload.php';
try {
$source = file_get_contents('php://input');
$data = json_decode($source, true);
$factory = new \YooKassa\Model\Notification\NotificationFactory();
$notificationObject = $factory->factory($data);
$responseObject = $notificationObject->getObject();
$client = new \YooKassa\Client();
if (!$client->isNotificationIPTrusted($_SERVER['REMOTE_ADDR'])) {
header('HTTP/1.1 400 Something went wrong');
exit;
}
if (\YooKassa\Model\Notification\NotificationEventType::PAYMENT_SUCCEEDED === $notificationObject->getEvent()) {
$someData = [
'paymentId' => $responseObject->getId(),
'paymentStatus' => $responseObject->getStatus(),
];
// Специфичная логика
// ...
} elseif (\YooKassa\Model\Notification\NotificationEventType::PAYMENT_WAITING_FOR_CAPTURE === $notificationObject->getEvent()) {
$someData = [
'paymentId' => $responseObject->getId(),
'paymentStatus' => $responseObject->getStatus(),
];
// Специфичная логика
// ...
} elseif (\YooKassa\Model\Notification\NotificationEventType::PAYMENT_CANCELED === $notificationObject->getEvent()) {
$someData = [
'paymentId' => $responseObject->getId(),
'paymentStatus' => $responseObject->getStatus(),
];
// Специфичная логика
// ...
} elseif (\YooKassa\Model\Notification\NotificationEventType::REFUND_SUCCEEDED === $notificationObject->getEvent()) {
$someData = [
'refundId' => $responseObject->getId(),
'refundStatus' => $responseObject->getStatus(),
'paymentId' => $responseObject->getPaymentId(),
];
// ...
// Специфичная логика
} else {
header('HTTP/1.1 400 Something went wrong');
exit;
}
// Специфичная логика
// ...
$client->setAuth('xxxxxx', 'test_XXXXXXX');
// Получим актуальную информацию о платеже
if ($paymentInfo = $client->getPaymentInfo($someData['paymentId'])) {
$paymentStatus = $paymentInfo->getStatus();
// Специфичная логика
// ...
} else {
header('HTTP/1.1 400 Something went wrong');
exit;
}
} catch (Exception $e) {
header('HTTP/1.1 400 Something went wrong');
exit;
}
Constants
- No constants found
Methods
| Visibility | Name | Flag | Summary |
|---|---|---|---|
| public | factory() |
Details
- File: lib/Model/Notification/NotificationFactory.php
- Package: Default
- Class Hierarchy:
- \YooKassa\Model\Notification\NotificationFactory
Methods
public factory() : \YooKassa\Model\Notification\AbstractNotification
public factory(array $data) : \YooKassa\Model\Notification\AbstractNotification
Details:
- Inherited From: \YooKassa\Model\Notification\NotificationFactory
Parameters:
| Type | Name | Description |
|---|---|---|
array |
data |
Returns: \YooKassa\Model\Notification\AbstractNotification -
Top Namespaces
Reports
This document was automatically generated from source code comments on 2026-06-29 using phpDocumentor
© 2026 YooMoney