Skip to content

Commit 0155693

Browse files
author
Leonix
committed
Адаптировали платёжные плагины robokassa, yandexkassa, tinkoff к изменениям в налоговом законодательстве Российской Федерации.
1 parent c6cd20e commit 0155693

File tree

10 files changed

+66
-17
lines changed

10 files changed

+66
-17
lines changed
3.72 KB
Loading
-320 Bytes
Loading
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<?php
22
return array(
33
'name' => 'Робокасса',
4-
'description' => 'Платежная система <a href="http://www.robokassa.ru">Робокасса</a>',
4+
'description' => 'Платежная система <a href="https://robokassa.com">Робокасса</a>',
55
'icon' => 'img/robokassa16.png',
66
'logo' => 'img/robokassa.png',
77
'vendor' => 'webasyst',
8-
'version' => '1.2.4',
8+
'version' => '1.2.6',
99
'locale' => array('ru_RU',),
1010
'type' => waPayment::TYPE_ONLINE,
1111
);

wa-plugins/payment/robokassa/lib/config/settings.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,24 @@
44
'merchant_login' => array(
55
'value' => 'demo',
66
'title' => 'Идентификатор магазина',
7-
'description' => 'Указан в «Технических настройках» в аккаунте ROBOKASSA.',
7+
'description' => <<<HTML
8+
<span class="js-robokassa-registration-link" style="background-color: #e3ffc8; display: block; margin: 10px 0; padding: 10px 15px; font-weight: normal; font-size: 14px;color: black; width: 80%; border-radius: 8px;">
9+
Подключайтесь к Робокассе <a href="https://partner.robokassa.ru/Reg/Register?PromoCode=01webasyst&culture=ru" target="_blank" style="color: #09f;"><b>через Webasyst по этой ссылке</b></a> и получите тариф со ставками <b>от&nbsp;2,7% навсегда</b>.
10+
</span>
11+
HTML
12+
,
813
'control_type' => waHtmlControl::INPUT,
914
),
1015
'merchant_pass1' => array(
1116
'value' => '',
1217
'title' => 'Пароль №1',
13-
'description' => 'Вводится в «Технических настройках» в аккаунте ROBOKASSA.',
18+
'description' => 'Вводится в «Технических настройках» в аккаунте Робокассы.',
1419
'control_type' => waHtmlControl::INPUT,
1520
),
1621
'merchant_pass2' => array(
1722
'value' => '',
1823
'title' => 'Пароль №2',
19-
'description' => 'Вводится в «Технических настройках» в аккаунте ROBOKASSA.',
24+
'description' => 'Вводится в «Технических настройках» в аккаунте Робокассы.',
2025
'control_type' => waHtmlControl::INPUT,
2126
),
2227
'testmode' => array(
@@ -49,13 +54,13 @@
4954
'merchant_test_pass1' => array(
5055
'value' => '',
5156
'title' => 'Тестовый пароль №1',
52-
'description' => 'Вводится в «Технических настройках» в аккаунте ROBOKASSA.',
57+
'description' => 'Вводится в «Технических настройках» в аккаунте Робокассы.',
5358
'control_type' => waHtmlControl::INPUT,
5459
),
5560
'merchant_test_pass2' => array(
5661
'value' => '',
5762
'title' => 'Тестовый пароль №2',
58-
'description' => 'Вводится в «Технических настройках» в аккаунте ROBOKASSA.',
63+
'description' => 'Вводится в «Технических настройках» в аккаунте Робокассы.',
5964
'control_type' => waHtmlControl::INPUT,
6065
),
6166
'hash' => array(
@@ -72,7 +77,7 @@
7277
'locale' => array(
7378
'value' => '',
7479
'title' => 'Язык интерфейса',
75-
'description' => 'Выберите язык, на котором должна отображаться платежная страница на сайте ROBOKASSA.',
80+
'description' => 'Выберите язык, на котором должна отображаться платежная страница на сайте Робокассы.',
7681
'control_type' => waHtmlControl::SELECT,
7782
'options' => array(
7883
'ru' => 'русский',
@@ -114,7 +119,7 @@
114119
<br>
115120
— к элементам заказа и стоимости доставки не применяются налоги
116121
<br>
117-
— налог составляет 0%, 10% либо 18% и <em>включен</em> в стоимость элементов заказа и стоимость доставки'.
122+
— налог составляет 0%, 5%, 7%, 10% либо 20% и <em>включен</em> в стоимость элементов заказа и стоимость доставки'.
118123

119124
<<<HTML
120125
<script type="text/javascript">

wa-plugins/payment/robokassa/lib/robokassaPayment.class.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,18 +525,33 @@ private function getTaxId($item)
525525
throw new waPaymentException('Фискализация товаров с налогом, не включенным в стоимость, не поддерживается. Обратитесь к администратору магазина.');
526526
}
527527

528+
// https://docs.robokassa.ru/fiscalization/
528529
switch ($rate) {
529530
case 0:
530531
$tax = 'vat0';//НДС по ставке 0%;
531532
break;
533+
case 5:
534+
if ($tax_included) {
535+
$tax = 'vat5';// НДС по ставке 5%
536+
} else {
537+
$tax = 'vat105';// НДС чека по расчетной ставке 5/105
538+
}
539+
break;
540+
case 7:
541+
if ($tax_included) {
542+
$tax = 'vat7';// НДС по ставке 7%
543+
} else {
544+
$tax = 'vat107';// НДС чека по расчетной ставке 7/107
545+
}
546+
break;
532547
case 10:
533548
if ($tax_included) {
534549
$tax = 'vat10';//НДС чека по ставке 10%;
535550
} else {
536551
$tax = 'vat110';// НДС чека по расчетной ставке 10/110;
537552
}
538553
break;
539-
case 18:
554+
case 18: // неактуально в 2025?..
540555
if ($tax_included) {
541556
$tax = 'vat18';//НДС чека по ставке 18%;
542557
} else {

wa-plugins/payment/tinkoff/lib/config/plugin.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
'icon' => 'img/tinkoff.svg',
66
'logo' => 'img/tinkoff.png?v2',
77
'vendor' => 'webasyst',
8-
'version' => '1.1.1',
8+
'version' => '1.1.2',
99
'type' => waPayment::TYPE_ONLINE,
1010
'partial_refund' => true,
1111
'partial_capture' => true,

wa-plugins/payment/tinkoff/lib/tinkoffPayment.class.php

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ class tinkoffPayment extends waPayment implements waIPayment, waIPaymentRefund,
3232
'USD' => 840,
3333
);
3434

35+
protected static $supported_tax_rates = [0, 5, 7, 10, 18, 20];
36+
3537
const CHESTNYZNAK_PRODUCT_CODE = 'chestnyznak';
3638

3739
/**
@@ -1172,7 +1174,7 @@ private function getReceiptData(waOrder $order)
11721174
}
11731175
}
11741176

1175-
if (!empty($item['tax_rate']) && (!$item['tax_included'] || !in_array($item['tax_rate'], array(0, 10, 18, 20)))) {
1177+
if (!empty($item['tax_rate']) && (!$item['tax_included'] || !in_array($item['tax_rate'], self::$supported_tax_rates))) {
11761178
return null;
11771179
}
11781180
}
@@ -1191,7 +1193,7 @@ private function getReceiptData(waOrder $order)
11911193
'PaymentMethod' => $this->payment_method_type,
11921194
'Tax' => $this->getTaxId($item),
11931195
);
1194-
if (!empty($item['tax_rate']) && (!$item['tax_included'] || !in_array($item['tax_rate'], array(0, 10, 18, 20)))) {
1196+
if (!empty($item['tax_rate']) && (!$item['tax_included'] || !in_array($item['tax_rate'], self::$supported_tax_rates))) {
11951197
return null;
11961198
}
11971199
}
@@ -1206,18 +1208,27 @@ private function getTaxId($item)
12061208
{
12071209
$tax = 'none';
12081210
if (array_key_exists('tax_rate', $item) && array_key_exists('tax_included', $item) && $item['tax_rate'] !== null) {
1211+
// https://www.tinkoff.ru/kassa/dev/widget/index.html#section/Inicializaciya-platezha-cherez-platezhnyj-vidzhet/Ustanovka-vidzheta-s-chekom
12091212
if ($item['tax_rate'] == 0) {
12101213
$tax = 'vat0';
1214+
} elseif ($item['tax_included'] && $item['tax_rate'] == 5) {
1215+
$tax = 'vat5';
1216+
} elseif ($item['tax_included'] && $item['tax_rate'] == 7) {
1217+
$tax = 'vat7';
12111218
} elseif ($item['tax_included'] && $item['tax_rate'] == 10) {
12121219
$tax = 'vat10';
12131220
} elseif ($item['tax_included'] && $item['tax_rate'] == 18) {
1214-
$tax = 'vat18';
1221+
$tax = 'vat18'; // устарело?..
12151222
} elseif ($item['tax_included'] && $item['tax_rate'] == 20) {
12161223
$tax = 'vat20';
1224+
} elseif (!$item['tax_included'] && $item['tax_rate'] == 5) {
1225+
$tax = 'vat105';
1226+
} elseif (!$item['tax_included'] && $item['tax_rate'] == 7) {
1227+
$tax = 'vat107';
12171228
} elseif (!$item['tax_included'] && $item['tax_rate'] == 10) {
12181229
$tax = 'vat110';
12191230
} elseif (!$item['tax_included'] && $item['tax_rate'] == 18) {
1220-
$tax = 'vat118';
1231+
$tax = 'vat118'; // устарело?..
12211232
} elseif (!$item['tax_included'] && $item['tax_rate'] == 20) {
12221233
$tax = 'vat120';
12231234
}

wa-plugins/payment/yandexkassa/lib/config/plugin.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
'description' => 'Банковские карты, СБП, SberPay, T-Pay, кошелек ЮMoney',
55
'icon' => 'img/yookassa16.svg',
66
'logo' => 'img/yookassa.svg',
7-
'version' => '1.3.1',
7+
'version' => '1.3.2',
88
'vendor' => 'webasyst',
99
'type' => waPayment::TYPE_ONLINE,
1010
'partial_refund' => true,

wa-plugins/payment/yandexkassa/lib/config/settings.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
'title' => 'Передача ставок НДС',
9090
'control_type' => waHtmlControl::SELECT,
9191
'description' => 'Если ваша организация работает по ОСН, выберите вариант «Передавать ставки НДС по каждой позиции».<br>
92-
Ставка НДС может быть равна 0%, 10% или 20%. В настройках налогов в приложении выберите, чтобы НДС был включён в цену товара.<br>
92+
Ставка НДС может быть равна 0%, 5%, 7%, 10% или 20%. В настройках налогов в приложении выберите, чтобы НДС был включён в цену товара.<br>
9393
Если вы работаете по другой системе налогообложения, выберите «НДС не облагается».',
9494
'options_callback' => array($this, 'taxesOptions'),
9595
),

wa-plugins/payment/yandexkassa/lib/yandexkassaPayment.class.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,6 +1090,24 @@ protected function getTaxId($item)
10901090
$id = 5;
10911091
}
10921092
break;
1093+
case 7:
1094+
if ($tax_included) {
1095+
# 8 — 7% VAT rate
1096+
$id = 8;
1097+
} else {
1098+
# 10 — 7/107 estimate VAT rate
1099+
$id = 10;
1100+
}
1101+
break;
1102+
case 5:
1103+
if ($tax_included) {
1104+
# 7 — 5% VAT rate
1105+
$id = 7;
1106+
} else {
1107+
# 9 — 5/105 estimate VAT rate
1108+
$id = 9;
1109+
}
1110+
break;
10931111
case 0:
10941112
# 2 — НДС по ставке 0%;
10951113
$id = 2;

0 commit comments

Comments
 (0)