mirror of
https://git.yoomoney.ru/scm/sdk/yookassa-sdk-php.git
synced 2026-08-18 14:40:20 +00:00
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 ($notificationObject->getEvent() === \YooKassa\Model\NotificationEventType::PAYMENT_SUCCEEDED) {
$someData = array(
'paymentId' => $responseObject->getId(),
'paymentStatus' => $responseObject->getStatus(),
);
// Специфичная логика
// ...
} elseif ($notificationObject->getEvent() === \YooKassa\Model\NotificationEventType::PAYMENT_WAITING_FOR_CAPTURE) {
$someData = array(
'paymentId' => $responseObject->getId(),
'paymentStatus' => $responseObject->getStatus(),
);
// Специфичная логика
// ...
} elseif ($notificationObject->getEvent() === \YooKassa\Model\NotificationEventType::PAYMENT_CANCELED) {
$someData = array(
'paymentId' => $responseObject->getId(),
'paymentStatus' => $responseObject->getStatus(),
);
// Специфичная логика
// ...
} elseif ($notificationObject->getEvent() === \YooKassa\Model\NotificationEventType::REFUND_SUCCEEDED) {
$someData = array(
'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: YooKassa
- 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 2023-05-10 using phpDocumentor
© 2023 YooMoney