39 lines
1.1 KiB
PHP
39 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace MonetaPhpShop\callback;
|
|
|
|
use MonetaPhpShop\order\Order;
|
|
use MonetaPhpShop\protocol\CallbackNotification;
|
|
use MonetaPhpShop\protocol\ResultCode;
|
|
|
|
/**
|
|
* Æóðíàë îïåðàöèé ìîäóëÿ: êàæäîå ïîäïèñàííîå óâåäîìëåíèå è ìàðêåð çà÷ò¸ííîé îïëàòû.
|
|
* Ìàðêåð — óíèêàëüíûé ïî çàêàçó: ýòî è åñòü èäåìïîòåíòíîñòü Pay URL íà MyISAM áåç òðàíçàêöèé.
|
|
*/
|
|
interface OperationJournal
|
|
{
|
|
/**
|
|
* `MNT_OPERATION_ID` îïëàòû, óæå çà÷ò¸ííîé ïî çàêàçó, èëè null.
|
|
*/
|
|
public function findPaidOperation(int $orderId): ?string;
|
|
|
|
/**
|
|
* Çàïèñàòü çà÷ò¸ííóþ îïëàòó. false — ïî çàêàçó ìàðêåð óæå åñòü (ñðàáîòàë UNIQUE).
|
|
*/
|
|
public function recordPaid(CallbackNotification $notification, Order $order, string $event): bool;
|
|
|
|
/**
|
|
* Çàïèñàòü óâåäîìëåíèå áåç çà÷¸òà îïëàòû.
|
|
*
|
|
* @param ResultCode|null $resultCode null — îòâåòèëè òåêñòîì `FAIL`
|
|
*/
|
|
public function note(
|
|
CallbackNotification $notification,
|
|
?Order $order,
|
|
string $event,
|
|
?ResultCode $resultCode
|
|
): void;
|
|
}
|