UNPKG

@lmapp/react-native-cloudpayments

Version:

🚀 Мощный SDK для интеграции платежей CloudPayments в React Native. Поддержка Apple Pay, Google Pay, СБП, банковских карт. Полная типизация TypeScript. iOS 12+ и Android 21+

241 lines (172 loc) 10.3 kB
# CloudPayments React Native SDK <div align="center"> ![CloudPayments Logo](https://cloudpayments.ru/Content/img/cp_logo.svg) **Мощный и простой в использовании SDK для интеграции платежей CloudPayments в React Native приложения** [![npm version](https://img.shields.io/npm/v/@lmapp/react-native-cloudpayments.svg?color=brightgreen)](https://www.npmjs.com/package/@lmapp/react-native-cloudpayments) [![npm downloads](https://img.shields.io/npm/dm/@lmapp/react-native-cloudpayments.svg?color=brightgreen)](https://www.npmjs.com/package/@lmapp/react-native-cloudpayments) [![License](https://img.shields.io/github/license/leonidmolchanov/react-native-cloudpayments-sdk.svg?color=brightgreen)](https://github.com/leonidmolchanov/react-native-cloudpayments-sdk/blob/main/LICENSE) [![iOS](https://img.shields.io/badge/iOS-12.0+-brightgreen.svg)](https://developer.apple.com/ios/) [![Android](https://img.shields.io/badge/Android-API%2021+-brightgreen.svg)](https://developer.android.com/) [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-brightgreen.svg)](https://www.typescriptlang.org/) [![React Native](https://img.shields.io/badge/React%20Native-0.70+-brightgreen.svg)](https://reactnative.dev/) [![Apple Pay](https://img.shields.io/badge/Apple%20Pay-✅-brightgreen.svg)](https://developer.apple.com/apple-pay/) [![Google Pay](https://img.shields.io/badge/Google%20Pay-✅-brightgreen.svg)](https://developers.google.com/pay) [![СБП](https://img.shields.io/badge/СБП-✅-brightgreen.svg)](https://sbp.nspk.ru/) [![PCI DSS](https://img.shields.io/badge/PCI%20DSS-Compliant-brightgreen.svg)](https://www.pcisecuritystandards.org/) [📖 Документация](https://leonidmolchanov.github.io/react-native-cloudpayments-sdk/) • [🚀 Быстрый старт](#-быстрый-старт) • [💳 Способы оплаты](#-способы-оплаты) • [🔧 API](#-api) </div> ## ✨ Возможности - 💳 **Платежная форма** — готовая к использованию форма оплаты - 🔒 **Безопасность** — шифрование данных карт и соответствие PCI DSS - 📱 **Нативная интеграция** — полная поддержка iOS и Android - 🎨 **Кастомизация** — гибкие настройки внешнего вида -**TypeScript** — полная типизация для лучшего DX - 🌐 **Альтернативные способы оплаты** — Apple Pay, Google Pay, Tinkoff Pay, СБП, SberPay ## 💳 Способы оплаты | Способ оплаты | iOS | Android | Описание | | ------------------- | --- | ------- | ---------------------------------- | | 💳 Банковские карты | ✅ | ✅ | Visa, MasterCard, МИР | | 🍎 Apple Pay | ✅ | ❌ | Быстрая оплата через Touch/Face ID | | 🤖 Google Pay | ❌ | ✅ | Быстрая оплата через Google | | 🏦 Tinkoff Pay | ✅ | ✅ | Оплата через приложение Тинькофф | | ⚡ СБП | ✅ | ✅ | Система быстрых платежей | | 🟢 SberPay | ✅ | ✅ | Оплата через Сбербанк Онлайн | ## 🚀 Быстрый старт ### 1. Установка ```bash npm install @lmapp/react-native-cloudpayments # или yarn add @lmapp/react-native-cloudpayments ``` ### 2. Установка зависимостей ```bash # iOS cd ios && pod install && cd .. # Android - автолинковка работает автоматически ``` ### 3. Использование ```typescript import React from 'react'; import { Button, Alert } from 'react-native'; import { usePaymentForm, PaymentService } from '@lmapp/react-native-cloudpayments'; // Инициализация SDK await PaymentService.init('pk_test_your_public_id'); const PaymentScreen = () => { const presentPaymentForm = usePaymentForm('pk_test_your_public_id'); const handlePayment = async () => { try { const result = await presentPaymentForm({ amount: '1000.00', currency: 'RUB', description: 'Покупка товара', email: 'user@example.com' }); if (result.success) { Alert.alert('Успех!', `Платеж прошел! ID: ${result.transactionId}`); } else { Alert.alert('Ошибка', result.message); } } catch (error) { Alert.alert('Ошибка', 'Произошла ошибка при обработке платежа'); } }; return <Button title="Оплатить 1000 ₽" onPress={handlePayment} />; }; ``` ## 📋 Требования - **React Native**: 0.70.0+ - **iOS**: 12.0+ - **Android**: API level 21 (Android 5.0)+ - **Node.js**: 16.0+ ## 🔧 API ### PaymentService ```typescript // Инициализация SDK await PaymentService.init('pk_test_your_public_id'); // Запуск платежной формы const result = await PaymentService.presentPaymentForm({ amount: '1000.00', currency: 'RUB', description: 'Покупка товара', }); ``` ### usePaymentForm Hook ```typescript const presentPaymentForm = usePaymentForm('pk_test_your_public_id'); const result = await presentPaymentForm({ amount: '1000.00', currency: 'RUB', description: 'Покупка товара', }); ``` ### События ```typescript import { eventEmitter, EPaymentFormEventName, } from '@lmapp/react-native-cloudpayments'; eventEmitter.addListener(EPaymentFormEventName.PAYMENT_FORM, (event) => { switch (event.action) { case 'willDisplay': console.log('Форма готовится к показу'); break; case 'transaction': if (event.statusCode) { console.log('Платеж успешен:', event.transactionId); } break; } }); ``` ## 🧪 Тестирование ### Тестовые карты | Номер карты | Результат | CVV | Срок | | --------------------- | --------------- | ----- | ------- | | `4111 1111 1111 1111` | Успешный платеж | `123` | `12/25` | | `4000 0000 0000 0002` | Отклонен банком | `123` | `12/25` | | `4000 0000 0000 0077` | Требует 3DS | `123` | `12/25` | > ⚠️ **Важно**: Используйте тестовый Public ID (начинается с `pk_test_`) для разработки! ## 📱 Настройка платформ ### Android 1. **Минимальная версия**: API level 21 2. **Network Security Config**: Настройте для CloudPayments домена 3. **ProGuard**: Добавьте правила для CloudPayments SDK Подробнее: [📖 Настройка Android](https://leonidmolchanov.github.io/react-native-cloudpayments-sdk/docs/platforms/android) ### iOS 1. **Минимальная версия**: iOS 12.0 2. **Apple Pay**: Настройте Merchant ID в Xcode 3. **URL Schemes**: Добавьте схемы для банковских приложений Подробнее: [📖 Настройка iOS](https://leonidmolchanov.github.io/react-native-cloudpayments-sdk/docs/platforms/ios) ## 🔑 Получение ключей 1. Зарегистрируйтесь на [cloudpayments.ru](https://cloudpayments.ru) 2. Войдите в [личный кабинет](https://merchant.cloudpayments.ru) 3. Перейдите в **Настройки****API** 4. Скопируйте ваш **Public ID** ## 📚 Документация - [📖 Полная документация](https://leonidmolchanov.github.io/react-native-cloudpayments-sdk/) - [🚀 Быстрый старт](https://leonidmolchanov.github.io/react-native-cloudpayments-sdk/docs/getting-started) - [📱 Настройка платформ](https://leonidmolchanov.github.io/react-native-cloudpayments-sdk/docs/platforms/android) - [💳 Использование](https://leonidmolchanov.github.io/react-native-cloudpayments-sdk/docs/usage/payment-form) - [💳 Использование платежной формы](https://leonidmolchanov.github.io/react-native-cloudpayments-sdk/docs/usage/payment-form) ## 🤝 Поддержка - 📖 [Документация CloudPayments](https://developers.cloudpayments.ru) - 💬 [Telegram чат](https://t.me/cloudpayments_dev) - 🐛 [GitHub Issues](https://github.com/leonidmolchanov/react-native-cloudpayments-sdk/issues) - 📧 [Техподдержка](mailto:support@cloudpayments.ru) ## 📄 Лицензия MIT License. См. [LICENSE](LICENSE) для деталей. ## 👨‍💻 Автор Создано **Leonid Molchanov** ([@leonidmolchanov](https://github.com/leonidmolchanov)) как независимый open-source проект для интеграции с платежной системой CloudPayments. ## 🙏 Благодарности - [CloudPayments](https://cloudpayments.ru) за отличный платежный API - [React Native](https://reactnative.dev) сообщество - Всем контрибьюторам проекта ## 📄 Лицензия **MIT License** - свободная лицензия с открытым исходным кодом. Вы можете свободно использовать, изменять и распространять этот код в коммерческих и некоммерческих проектах. См. [LICENSE](LICENSE) для деталей. --- <div align="center"> **Сделано с ❤️ Leonid Molchanov для React Native разработчиков** [⭐ Поставьте звезду на GitHub](https://github.com/leonidmolchanov/react-native-cloudpayments-sdk) • [📖 Документация](https://leonidmolchanov.github.io/react-native-cloudpayments-sdk/) </div> > 🚀 **Автоматическая система релизов**: Этот пакет использует автоматизированную систему релизов с conventional commits.