feat: moneta 2.0, MONETA.Assistant payment module for PHPShop 6.7+
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Õóê PHPShopDone::send_to_order(): ïîñëå çàïèñè çàêàçà ïîêàçûâàåò êàðòî÷êó îïëàòû ïî øàáëîíó
|
||||
* `templates/payment_forma.tpl` âìåñòî øòàòíîãî ñîîáùåíèÿ (`orderMesage`). Øàáëîí è ÷àñòè
|
||||
* áëîêà — â cp1251; íà UTF-8-ìàãàçèíå ãîòîâûé áëîê ïåðåêîäèðóåòñÿ îäèí ðàç.
|
||||
*
|
||||
* @param PHPShopDone $obj
|
||||
* @param array<string, mixed> $value $_POST ôîðìû çàêàçà
|
||||
* @param string $rout òî÷êà ïåðåõâàòà: START | MIDDLE | END
|
||||
*/
|
||||
function send_to_order_mod_moneta_hook($obj, $value, $rout)
|
||||
{
|
||||
require_once dirname(__DIR__) . '/class/autoload.php';
|
||||
|
||||
if (($rout !== 'END') || empty($obj->orderId)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ((int) ($value['order_metod'] ?? 0) !== \MonetaPhpShop\ModuleInfo::PAYMENT_METHOD_ID) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$block = \MonetaPhpShop\host\CheckoutView::create()->afterCheckout((int) $obj->orderId);
|
||||
if ($block->isEmpty()) {
|
||||
$obj->set('orderMesage', '');
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
$obj->set('payment_info', $block->getInfo());
|
||||
$obj->set('payment_info_hide', $block->getInfo() === '' ? 'moneta-hide' : '');
|
||||
$obj->set('payment_forma', $block->getForm());
|
||||
$obj->set('moneta_total', $block->getTotal());
|
||||
$obj->set('moneta_total_hide', $block->getTotal() === '' ? 'moneta-hide' : '');
|
||||
$html = ParseTemplateReturn($GLOBALS['SysValue']['templates']['moneta']['moneta_payment_forma'], true);
|
||||
$obj->set('orderMesage', \MonetaPhpShop\host\HostCharset::toPage((string) $html));
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
$addHandler = [
|
||||
'send_to_order' => 'send_to_order_mod_moneta_hook',
|
||||
];
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Õóê PHPShopFail::index(): ïîêóïàòåëü, êîòîðîãî MONETA.RU âåðíóëà íà `/fail` ÿäðà (òàê íàñòðîåíû ñ÷åòà
|
||||
* ìåð÷àíòîâ ñî âñòðîåííûì ìîäóëåì), óõîäèò íà ñòðàíèöó ìîäóëÿ `/moneta/` ñ òåì æå íîìåðîì îïåðàöèè.
|
||||
* Âîçâðàòû äðóãèõ ïëàò¸æíûõ ìîäóëåé íå òðîãàåì — ó íèõ íåò `MNT_TRANSACTION_ID`.
|
||||
*
|
||||
* @param PHPShopFail $obj
|
||||
* @param mixed $value
|
||||
*/
|
||||
function fail_mod_moneta_hook($obj, $value = null)
|
||||
{
|
||||
require_once dirname(__DIR__) . '/class/autoload.php';
|
||||
|
||||
$url = (new \MonetaPhpShop\form\ReturnUrls((new \MonetaPhpShop\host\ShopContext())->returnPagePath()))
|
||||
->withTransaction(\MonetaPhpShop\form\ReturnUrls::RESULT_FAIL, $_GET['MNT_TRANSACTION_ID'] ?? null);
|
||||
if ($url === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
header('Location: ' . $url, true, 302);
|
||||
exit;
|
||||
}
|
||||
|
||||
$addHandler = [
|
||||
'index' => 'fail_mod_moneta_hook',
|
||||
];
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Õóê PHPShopSuccess::index(): ïîêóïàòåëü, êîòîðîãî MONETA.RU âåðíóëà íà `/success` ÿäðà (òàê íàñòðîåíû ñ÷åòà
|
||||
* ìåð÷àíòîâ ñî âñòðîåííûì ìîäóëåì), óõîäèò íà ñòðàíèöó ìîäóëÿ `/moneta/` ñ òåì æå íîìåðîì îïåðàöèè.
|
||||
* Âîçâðàòû äðóãèõ ïëàò¸æíûõ ìîäóëåé íå òðîãàåì — ó íèõ íåò `MNT_TRANSACTION_ID`.
|
||||
*
|
||||
* @param PHPShopSuccess $obj
|
||||
* @param mixed $value
|
||||
*/
|
||||
function success_mod_moneta_hook($obj, $value = null)
|
||||
{
|
||||
require_once dirname(__DIR__) . '/class/autoload.php';
|
||||
|
||||
$url = (new \MonetaPhpShop\form\ReturnUrls((new \MonetaPhpShop\host\ShopContext())->returnPagePath()))
|
||||
->withTransaction(\MonetaPhpShop\form\ReturnUrls::RESULT_SUCCESS, $_GET['MNT_TRANSACTION_ID'] ?? null);
|
||||
if ($url === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
header('Location: ' . $url, true, 302);
|
||||
exit;
|
||||
}
|
||||
|
||||
$addHandler = [
|
||||
'index' => 'success_mod_moneta_hook',
|
||||
];
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Õóê userorderpaymentlink() ëè÷íîãî êàáèíåòà: ÿ÷åéêà «Ñïîñîá îïëàòû» çàêàçà.
|
||||
* ßäðî çîâ¸ò åãî òîëüêî äëÿ íåîïëà÷åííûõ çàêàçîâ ñ `path = modules` (îïëà÷åííûå
|
||||
* îíî ñàìî îòìå÷àåò ïî `phpshop_payment`).
|
||||
*
|
||||
* @param PHPShopUsers $obj
|
||||
* @param PHPShopOrderFunction $PHPShopOrderFunction çàêàç òåêóùåãî ïîêóïàòåëÿ
|
||||
*/
|
||||
function userorderpaymentlink_mod_moneta_hook($obj, $PHPShopOrderFunction)
|
||||
{
|
||||
require_once dirname(__DIR__) . '/class/autoload.php';
|
||||
|
||||
if ((int) $PHPShopOrderFunction->order_metod_id !== \MonetaPhpShop\ModuleInfo::PAYMENT_METHOD_ID) {
|
||||
return null;
|
||||
}
|
||||
|
||||
//  ëè÷íîì êàáèíåòå ÿäðî ñîçäà¸ò PHPShopOrderFunction èç ãîòîâîé ñòðîêè çàêàçà, áåç objID.
|
||||
$orderId = (int) ($PHPShopOrderFunction->objRow['id'] ?? $PHPShopOrderFunction->objID ?? 0);
|
||||
|
||||
return \MonetaPhpShop\host\CheckoutView::create()->inAccount($orderId);
|
||||
}
|
||||
|
||||
$addHandler = [
|
||||
'userorderpaymentlink' => 'userorderpaymentlink_mod_moneta_hook',
|
||||
];
|
||||
Reference in New Issue
Block a user