fix: paygw_moneta 1.0.1, simplify checkout card and VAT field
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
|
||||
> **© Правообладатель:** НКО «МОНЕТА» (ООО)
|
||||
|
||||
> **📦 Версия модуля: 1.0.0**
|
||||
> **📦 Версия модуля: 1.0.1**
|
||||
|
||||
> **ℹ️ Требования:**
|
||||
> PHP 8.1+
|
||||
@@ -108,7 +108,7 @@
|
||||
| **Тестовый режим** | Должен совпадать с флагом «Тестовый режим» в настройках счёта |
|
||||
| **Email для чеков** | Обязательно. Подставляется в чек, если у покупателя нет ни email, ни телефона — чек придёт на этот адрес, а ФИО покупателя в чеке сохранится |
|
||||
| **Фискализация чеков** | Фискализация чеков по 54-ФЗ средствами системы [MONETA.RU](https://moneta.ru/) сервисом [kassa.payanyway.ru](https://kassa.payanyway.ru/) |
|
||||
| **Ставка НДС** | Ставка для позиции «доступ к курсу» в чеке |
|
||||
| **Ставка НДС** | Ставка для позиции чека; по умолчанию «Без НДС» |
|
||||
| **Отправлять ссылку оплаты на почту** | При создании заказа покупателю приходит сообщение со ссылкой на оплату — можно оплатить позже (по умолчанию включено) |
|
||||
| **URL для уведомлений** | `https://<сайт>/payment/gateway/moneta/callback.php` — его нужно указать в настройках расширенного счёта `Check URL` / `Pay URL` в системе [MONETA.RU](https://moneta.ru/) |
|
||||
|
||||
|
||||
@@ -64,7 +64,6 @@ class gateway extends \core_payment\gateway
|
||||
$vatOptions[$vat->value] = get_string($vat->langKey(), 'paygw_moneta');
|
||||
}
|
||||
$mform->addElement('select', 'vat', get_string('vat', 'paygw_moneta'), $vatOptions);
|
||||
$mform->addHelpButton('vat', 'vat', 'paygw_moneta');
|
||||
$mform->setDefault('vat', Vat::None->value);
|
||||
|
||||
$mform->addElement('advcheckbox', 'sendpaymentlink', get_string('sendpaymentlink', 'paygw_moneta'));
|
||||
|
||||
@@ -28,7 +28,7 @@ final class PaymentFormPage
|
||||
private function __construct() {}
|
||||
|
||||
/**
|
||||
* @return array{action: string, cost: string, description: string, iscourse: bool, logourl: string, fields: list<array{name: string, value: string}>}
|
||||
* @return array{action: string, cost: string, description: string, logourl: string, fields: list<array{name: string, value: string}>}
|
||||
*/
|
||||
public static function context(Order $order, GatewayConfig $config): array
|
||||
{
|
||||
@@ -62,7 +62,6 @@ final class PaymentFormPage
|
||||
// Сумма для покупателя — как в остальном Moodle: «120,25 ₽».
|
||||
'cost' => helper::get_cost_as_string((float) $order->amount->toDecimal(), $order->currency),
|
||||
'description' => $order->snapshot->description,
|
||||
'iscourse' => $order->component === 'enrol_fee',
|
||||
'logourl' => $OUTPUT->image_url('img', 'paygw_moneta')->out(false),
|
||||
'fields' => $fields,
|
||||
];
|
||||
|
||||
@@ -46,7 +46,6 @@ $string['error:receiptemail'] = 'Enter a valid email address of at most 64 chara
|
||||
$string['fiscalization'] = 'Fiscal receipts';
|
||||
$string['fiscalization_help'] = 'Enable only if the kassa.payanyway.ru service is connected to the account: the check request response will contain receipt data';
|
||||
$string['vat'] = 'VAT rate';
|
||||
$string['vat_help'] = 'VAT rate for the "course access" receipt line';
|
||||
$string['vat:none'] = 'No VAT';
|
||||
$string['vat:vat0'] = 'VAT 0%';
|
||||
$string['vat:vat5'] = 'VAT 5%';
|
||||
@@ -65,10 +64,7 @@ $string['callbackurl'] = 'Notification URL';
|
||||
$string['callbackurl:copied'] = 'Notification URL copied';
|
||||
$string['callbackurl_help'] = 'Set this address as both Pay URL and Check URL in the MONETA.RU account settings. It must be reachable from the internet over HTTPS';
|
||||
|
||||
$string['checkout:access'] = 'Access to the course opens automatically after payment.';
|
||||
$string['checkout:course'] = 'Course payment';
|
||||
$string['checkout:item'] = 'Payment';
|
||||
$string['checkout:secure'] = "You will be taken to the secure {$string['pluginname']} payment page.";
|
||||
$string['checkout:secure'] = "You will be taken to the secure {$string['pluginname']} payment page";
|
||||
$string['checkout:total'] = 'Amount due';
|
||||
$string['confirmpayment'] = "Proceeding to {$string['pluginname']} payment";
|
||||
$string['pay'] = 'Pay {$a}';
|
||||
|
||||
@@ -46,7 +46,6 @@ $string['error:receiptemail'] = 'Укажите корректный e-mail не
|
||||
$string['fiscalization'] = 'Фискализация чеков';
|
||||
$string['fiscalization_help'] = 'Включайте только если к счёту подключён кассовый сервис kassa.payanyway.ru: ответ на проверочный запрос будет содержать данные чека по 54-ФЗ';
|
||||
$string['vat'] = 'Ставка НДС';
|
||||
$string['vat_help'] = 'Ставка НДС для позиции «доступ к курсу» в кассовом чеке';
|
||||
$string['vat:none'] = 'Без НДС';
|
||||
$string['vat:vat0'] = 'НДС 0%';
|
||||
$string['vat:vat5'] = 'НДС 5%';
|
||||
@@ -65,10 +64,7 @@ $string['callbackurl'] = 'URL для уведомлений';
|
||||
$string['callbackurl:copied'] = 'URL для уведомлений скопирован';
|
||||
$string['callbackurl_help'] = 'Укажите этот адрес в настройках счёта MONETA.RU как Pay URL и Check URL. Он должен быть доступен из интернета по HTTPS';
|
||||
|
||||
$string['checkout:access'] = 'Доступ к курсу откроется автоматически после оплаты.';
|
||||
$string['checkout:course'] = 'Оплата курса';
|
||||
$string['checkout:item'] = 'Оплата';
|
||||
$string['checkout:secure'] = "Вы перейдёте на защищённую страницу оплаты {$string['pluginname']}.";
|
||||
$string['checkout:secure'] = "Вы перейдёте на защищённую страницу оплаты {$string['pluginname']}";
|
||||
$string['checkout:total'] = 'К оплате';
|
||||
$string['confirmpayment'] = "Переход к оплате через {$string['pluginname']}";
|
||||
$string['pay'] = 'Оплатить {$a}';
|
||||
|
||||
@@ -23,15 +23,6 @@
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.paygw-moneta-checkout-label {
|
||||
margin-bottom: 0.5rem;
|
||||
color: var(--bs-secondary-color, #6c757d);
|
||||
font-size: 0.8125rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
/* Название курса бывает длинным: переносим по словам, а слишком длинное слово — где угодно. */
|
||||
.paygw-moneta-checkout-title {
|
||||
margin: 0 0 1.5rem;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
@template paygw_moneta/payment_form
|
||||
|
||||
Карточка перехода на платёжную страницу MONETA.Assistant: логотип со
|
||||
ссылкой на moneta.ru, что оплачивается, сумма, кнопка и пояснение. Сама не
|
||||
ссылкой на moneta.ru, название, сумма, кнопка и пояснение. Сама не
|
||||
уходит — покупатель нажимает «Оплатить»; после нажатия кнопка блокируется,
|
||||
чтобы повторный клик не отправил форму дважды. Название может быть длинным:
|
||||
переносится, не растягивая карточку.
|
||||
@@ -27,7 +27,6 @@
|
||||
* action - адрес платёжной формы
|
||||
* cost - сумма с валютой для показа
|
||||
* description - описание заказа
|
||||
* iscourse - оплачивается запись на курс (enrol_fee)
|
||||
* logourl - адрес логотипа
|
||||
* fields - подписанные поля формы: name, value
|
||||
|
||||
@@ -36,7 +35,6 @@
|
||||
"action": "https://demo.moneta.ru/assistant.htm",
|
||||
"cost": "120,25 ₽",
|
||||
"description": "Монета",
|
||||
"iscourse": true,
|
||||
"logourl": "https://example.test/theme/image.php/boost/paygw_moneta/1/img",
|
||||
"fields": [{"name": "MNT_ID", "value": "54600817"}]
|
||||
}
|
||||
@@ -47,10 +45,6 @@
|
||||
<img class="paygw-moneta-checkout-logo" src="{{logourl}}" alt="{{#str}}pluginname, paygw_moneta{{/str}}">
|
||||
<span class="sr-only visually-hidden">{{#str}}opensinnewwindow{{/str}}</span>
|
||||
</a>
|
||||
<div class="paygw-moneta-checkout-label">
|
||||
{{#iscourse}}{{#str}}checkout:course, paygw_moneta{{/str}}{{/iscourse}}
|
||||
{{^iscourse}}{{#str}}checkout:item, paygw_moneta{{/str}}{{/iscourse}}
|
||||
</div>
|
||||
<h3 class="paygw-moneta-checkout-title">{{description}}</h3>
|
||||
<div class="paygw-moneta-checkout-total">
|
||||
<span class="text-muted">{{#str}}checkout:total, paygw_moneta{{/str}}</span>
|
||||
@@ -64,10 +58,7 @@
|
||||
</form>
|
||||
<div class="paygw-moneta-checkout-note text-muted small">
|
||||
{{#pix}}i/lock, core{{/pix}}
|
||||
<div>
|
||||
<div>{{#str}}checkout:secure, paygw_moneta{{/str}}</div>
|
||||
{{#iscourse}}<div class="mt-1">{{#str}}checkout:access, paygw_moneta{{/str}}</div>{{/iscourse}}
|
||||
</div>
|
||||
<div>{{#str}}checkout:secure, paygw_moneta{{/str}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -25,7 +25,7 @@
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->component = 'paygw_moneta';
|
||||
$plugin->version = 2026092500;
|
||||
$plugin->version = 2026100100;
|
||||
$plugin->requires = 2023100900;
|
||||
$plugin->maturity = MATURITY_STABLE;
|
||||
$plugin->release = '1.0.0';
|
||||
$plugin->release = '1.0.1';
|
||||
|
||||
Reference in New Issue
Block a user