From 7628efaaba113f9e389198cdd03f168c57408fe8 Mon Sep 17 00:00:00 2001 From: Dmitriy Prokushev Date: Thu, 24 Apr 2025 11:49:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=82=D0=B8=D0=BF=D1=8B=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D1=80=D0=B5=D0=BA=D1=83=D1=80=D0=B5=D0=BD=D1=82=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=BF=D0=BB=D0=B0=D1=82=D0=B5=D0=B6=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++++++ src/types/IRobokassaOrder.ts | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/README.md b/README.md index 3718fd6..c9e0a99 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ const robokassa = new Robokassa({ const url = robokassa.generatePaymentUrl({ outSum: '10.00', // или outSum: 10 (type number) description: 'Тестовый продукт', + // Пользовательские параметры должны начинаться с "shp_" или "Shp_" или "SHP_". // Они будут переданы на ваш сервер вызовом Робокассы после оплаты в том же виде. userParameters: { @@ -57,6 +58,13 @@ const url = robokassa.generatePaymentUrl({ }, ], }, + + // Первый платёж по подписке. После него возможны автосписания без участия пользователя. + // recurring: true, + + // Используется при автосписании — указывается номер первого оплаченного счёта с recurring: true. + // Применяется только при запросе на https://auth.robokassa.ru/Merchant/Recurring + // previousInvoiceId: 154, }); ``` diff --git a/src/types/IRobokassaOrder.ts b/src/types/IRobokassaOrder.ts index c12e580..f7473d9 100644 --- a/src/types/IRobokassaOrder.ts +++ b/src/types/IRobokassaOrder.ts @@ -114,4 +114,40 @@ export interface IRobokassaOrder { В соответствии с требованием Закона РФ, все без исключения операции с использованием электронных средств платежа должны проходить через специализированную контрольно-кассовую технику, и данные о них должны передаваться через операторов фискальных данных в налоговую инспекцию в режиме реального времени. */ receipt?: IRobokassaReceipt; + + /** + Рекуррентный (повторяющийся) платеж + https://docs.robokassa.ru/recurring/ + + Указывает, что данный счёт является первым в серии повторяющихся платежей — например, при оформлении подписки или автоплатежа. + + Передаётся при первоначальной оплате, чтобы Robokassa сохранила данные карты пользователя и позволила выполнять списания в будущем без его участия. + + Пример: + recurring: true — если запускается автоматическое продление услуги или подписка. + + Важно: + - Доступно только по предварительному согласованию с Robokassa; + - Не допускается использовать одновременно с параметрами `IncCurrLabel`, `ExpirationDate` и `PreviousInvoiceID`; + - Для последующих списаний необходимо указывать параметр `previousInvoiceId`. + */ + recurring?: boolean; + + /** + Номер предыдущего (материнского) счёта в серии повторяющихся платежей + https://docs.robokassa.ru/recurring/ + + Используется при совершении повторного платежа (без участия пользователя) и передаётся в запросе на специальный адрес: + https://auth.robokassa.ru/Merchant/Recurring + + Обязателен для дочернего (рекуррентного) платежа. Указывает на идентификатор счета, по которому ранее была произведена оплата с параметром `recurring`. + + Особенности: + - Параметры `PreviousInvoiceID` и `InvoiceID` должны быть указаны; + - Значение `InvoiceID` должно быть уникальным, не нулевым и сгенерировано магазином; + - `PreviousInvoiceID` **не включается** в расчет контрольной суммы `SignatureValue`; + - Нельзя использовать одновременно с параметрами `Recurring`, `IncCurrLabel`, `ExpirationDate`. + + */ + previousInvoiceId?: number; }