💳 Платежная форма
Подробное руководство по использованию платежной формы CloudPayments SDK.
🚀 Основы
Платежная форма — это готовый к использованию UI компонент, который обрабатывает весь процесс оплаты от ввода данных карты до получения результата.
Простейший пример
import { usePaymentForm } from '@lmapp/react-native-cloudpayments';
const PaymentScreen = () => {
const presentPaymentForm = usePaymentForm('pk_test_your_public_id');
const handlePayment = async () => {
const result = await presentPaymentForm({
amount: '1000.00',
currency: 'RUB',
description: 'Покупка товара',
});
if (result.success) {
console.log('Платеж успешен!', result.transactionId);
}
};
return <Button title="Оплатить" onPress={handlePayment} />;
};
📊 Параметры платежа
Обязательные параметры
interface IPaymentData {
/** Сумма платежа в формате "1000.00" */
amount: string;
/** Валюта платежа (RUB, USD, EUR) */
currency: string;
/** Описание платежа */
description: string;
}
Дополнительные параметры
interface IPaymentData {
// Обязательные поля выше...
/** Email плательщика */
email?: string;
/** Обязательность ввода email */
requireEmail?: boolean;
/** Номер счета/заказа */
invoiceId?: string;
/** Дополнительные данные */
jsonData?: Record<string, any>;
/** Показывать экран результата */
showResultScreen?: boolean;
/** Apple Pay Merchant ID */
applePayMerchantId?: string;
/** Показывать кнопку Apple Pay */
showApplePay?: boolean;
/** Показывать кнопку Google Pay */
showGooglePay?: boolean;
/** Информация о плательщике */
payer?: IPayer;
/** Данные чека для 54-ФЗ */
receipt?: Receipt;
}
🧾 Чеки и плательщики (54-ФЗ)
Структура чека онлайн-кассы
Для соответствия российскому закону 54-ФЗ об онлайн-кассах, SDK поддерживает формирование электронных чеков:
interface Receipt {
/** Список товаров/услуг в чеке */
items: ReceiptItem[];
/** Система налогообложения (0-5) */
taxationSystem: number;
/** Email для отправки чека */
email?: string;
/** Телефон для отправки чека */
phone?: string;
/** Признак БСО (false = кассовый чек, true = БСО) */
isBso?: boolean;
/** Детализация по способам оплаты */
amounts?: Amounts;
}
Элемент чека (товар/услуга)
interface ReceiptItem {
/** Наименование товара/услуги (до 128 символов) */
label: string;
/** Цена за единицу */
price: number;
/** Количество */
quantity: number;
/** Общая стоимость (price × quantity) */
amount: number;
/** Ставка НДС в % (20, 10, 0 или null) */
vat?: number | null;
/** Способ расчета (1-7) */
method: number;
/** Предмет расчета (1-13) */
object: number;
}
Коды способа расчета (method):
1
- Предоплата 100%2
- Предоплата3
- Аванс4
- Полный расчет (самый популярный)5
- Частичный расчет и кредит6
- Передача в кредит7
- Оплата кредита
Коды предмета расчета (object):
1
- Товар (физические товары)2
- Подакцизный товар3
- Работа4
- Услуга (цифровые продукты, подписки)5-13
- Прочие виды (игры, лотереи, РИД и т.д.)
Суммы по способам оплаты
interface Amounts {
/** Электронными средствами (карты, кошельки) */
electronic: number;
/** Предоплата (ранее внесенная) */
advancePayment: number;
/** В кредит/рассрочку */
credit: number;
/** Задаток (отличается от предоплаты) */
provision: number;
}
Важно: Сумма всех способов оплаты должна равняться сумме всех позиций в чеке.