Перейти к основному содержимому

Документация по компонентам

В этом документе представлен подробный обзор React-компонентов, доступных в клиентском SDK Mileston Payment. Примечание: Все компоненты требуют, чтобы MilestonPaymentProvider предоставлял через контекст apikey (checkout api key) и businessid.


MilestonPaymentProvider

Контекстный провайдер React для управления API-ключом и идентификатором бизнеса. Этот провайдер необходим для оборачивания дерева компонентов, чтобы предоставить необходимый контекст другим компонентам SDK.

Использование

import { MilestonPaymentProvider } from "mileston-payment-client";

function App() {
return (
<MilestonPaymentProvider apikey="ваш-api-ключ" businessid="ваш-business-id">
{/* Ваши компоненты приложения */}
</MilestonPaymentProvider>
);
}

Свойства

Имя свойстваТипОписание
apikeystringВаш API-ключ для аутентификации.
businessidstringИдентификатор вашего бизнеса.
childrenReactNodeДочерние компоненты, которые будут использовать контекст.

Примечания

  • Убедитесь, что этот провайдер оборачивает всё приложение или компоненты, которым нужен доступ к apikey и businessid.
  • Провайдер обязателен для таких компонентов, как PayButton, InvoiceCheckout, SubscriptionCheckout и др.

PayButton

React-компонент для инициации платежей. Предоставляет настраиваемую кнопку, открывающую всплывающее окно для обработки платежа.

Использование

import { MilestonPaymentProvider, PayButton } from "mileston-payment-client";

function App() {
return (
<MilestonPaymentProvider apikey="ваш-api-ключ" businessid="ваш-business-id">
<PayButton
onPaymentComplete={() => console.log("Платёж завершён!")}
onPaymentError={(error) => console.error("Ошибка платежа:", error)}
paymentUrl="https://checkout.mileston.co/payment"
paymentId="payment-id"
paymentType="invoice"
theme="light"
style={{ backgroundColor: "green", color: "white" }}
className="custom-class"
>
Оплатить
</PayButton>
</MilestonPaymentProvider>
);
}

Свойства

Имя свойстваТипОписание
onPaymentCompletefunctionКолбэк, вызываемый при успешном завершении платежа.
onPaymentErrorfunctionКолбэк, вызываемый при ошибке платежа.
paymentUrlstringURL страницы оплаты.
paymentIdstringИдентификатор платежа (например, счёт, платёжная ссылка).
paymentTypestringТип платежа (например, "invoice", "payment-link", "recurring").
themestringТема всплывающего окна оплаты (например, "light", "dark").
styleobjectПользовательские стили для кнопки.
classNamestringCSS-класс для кнопки.
childrenReactNodeСодержимое кнопки (например, "Оплатить").

Примечания

  • Убедитесь, что MilestonPaymentProvider оборачивает дерево компонентов для предоставления контекста.
  • Настраивайте внешний вид кнопки с помощью свойств style и className.
  • Свойство theme позволяет выбрать визуальную тему всплывающего окна.

SubscriptionCheckout

React-компонент для подписочных платежей. Упрощает настройку регулярных платежей.

Использование

import {
MilestonPaymentProvider,
SubscriptionCheckout,
} from "mileston-payment-client";

<MilestonPaymentProvider apikey="ваш-api-ключ" businessid="ваш-business-id">
<SubscriptionCheckout
businessName="Мой бизнес"
businessLogo="https://example.com/logo.png"
plan={{
name: "Премиум-план",
description: "Доступ ко всем премиум-функциям",
amount: 19.99,
currency: "USD",
interval: "monthly",
intervalCount: 1,
}}
walletConnectButtonText="Подписаться через кошелёк"
qrCodeButtonText="Сгенерировать QR для подписки"
cardButtonText="Подписаться с помощью карты"
buttonClassName="custom-button-class"
dialogTitle="Подписка по карте"
dialogDescription="Настройте регулярный платёж через защищённую форму"
className="custom-class"
footerText="Спасибо за подписку!"
cancelText="Вы можете отменить подписку в любое время"
paymentLinkId="subscription123"
env="test"
onWalletConnectPaymentComplete={() =>
console.log("Платёж по подписке через кошелёк завершён")
}
onWalletConnectPaymentError={(error) =>
console.error("Ошибка подписки через кошелёк:", error)
}
onQrCodePaymentComplete={() =>
console.log("Платёж по подписке через QR завершён")
}
onQrCodePaymentError={(error) =>
console.error("Ошибка подписки через QR:", error)
}
onCardPaymentComplete={() =>
console.log("Платёж по подписке через карту завершён")
}
onCardPaymentError={(error) =>
console.error("Ошибка подписки через карту:", error)
}
amount={19.99}
recipientWalletAddress="0x123456789abcdef"
/>
</MilestonPaymentProvider>;

Свойства

Имя свойстваТипОписание
businessNamestringНазвание бизнеса.
businessLogostringURL логотипа бизнеса.
planobjectДетали подписочного плана.
plan.namestringНазвание плана.
plan.descriptionstringОписание плана.
plan.amountnumberСумма подписки.
plan.currencystringВалюта (например, USD, EUR).
plan.intervalstringИнтервал списания (например, daily, weekly, monthly, yearly).
plan.intervalCountnumberКоличество интервалов между списаниями (например, 1 — ежемесячно).
walletConnectButtonTextstringТекст для кнопки Wallet Connect.
qrCodeButtonTextstringТекст для кнопки QR-кода.
cardButtonTextstringТекст для кнопки оплаты картой.
buttonClassNamestringCSS-класс для стилизации кнопок.
dialogTitlestringЗаголовок диалога оплаты картой.
dialogDescriptionstringОписание в диалоге оплаты картой.
classNamestringCSS-класс для основного компонента.
footerTextstringТекст внизу компонента.
cancelTextstringТекст о возможности отмены подписки.
paymentLinkIdstringИдентификатор платёжной ссылки.
envstringОкружение (например, test, production).
onWalletConnectPaymentCompletefunctionКолбэк при успешной оплате через Wallet Connect.
onWalletConnectPaymentErrorfunctionКолбэк при ошибке оплаты через Wallet Connect.
onQrCodePaymentCompletefunctionКолбэк при успешной оплате через QR-код.
onQrCodePaymentErrorfunctionКолбэк при ошибке оплаты через QR-код.
onCardPaymentCompletefunctionКолбэк при успешной оплате картой.
onCardPaymentErrorfunctionКолбэк при ошибке оплаты картой.
amountnumberСумма подписки.
recipientWalletAddressstringКошелёк получателя.

Примечания

  • Используйте этот компонент для автоматизации управления подписками.
  • Настраивайте детали плана через свойство plan.
  • Убедитесь, что recipientWalletAddress действителен, чтобы избежать ошибок оплаты.
  • Свойство cancelText позволяет вывести сообщение о возможности отмены подписки.

InvoiceCheckout

React-компонент для оплаты по счёту. Идеально подходит для одноразовых платежей.

Использование

import {
MilestonPaymentProvider,
InvoiceCheckout,
} from "mileston-payment-client";

<MilestonPaymentProvider apikey="ваш-api-ключ" businessid="ваш-business-id">
<InvoiceCheckout
businessName="Мой бизнес"
businessLogo="https://example.com/logo.png"
currency="USD"
description="Счёт #12345"
walletConnectButtonText="Подключить кошелёк и оплатить"
qrCodeButtonText="Сгенерировать QR для оплаты"
cardButtonText="Оплатить картой"
buttonClassName="custom-button-class"
dialogTitle="Оплата счёта"
dialogDescription="Завершите оплату безопасно"
className="custom-class"
footerText="Спасибо за ваш бизнес!"
paymentLinkId="invoice123"
env="test"
onWalletConnectPaymentComplete={() =>
console.log("Оплата через кошелёк завершена")
}
onWalletConnectPaymentError={(error) =>
console.error("Ошибка оплаты через кошелёк:", error)
}
onQrCodePaymentComplete={() => console.log("Оплата через QR завершена")}
onQrCodePaymentError={(error) =>
console.error("Ошибка оплаты через QR:", error)
}
onCardPaymentComplete={() => console.log("Оплата картой завершена")}
onCardPaymentError={(error) =>
console.error("Ошибка оплаты картой:", error)
}
amount={200}
recipientWalletAddress="0x123456789abcdef"
/>
</MilestonPaymentProvider>;

Свойства

Имя свойстваТипОписание
businessNamestringНазвание бизнеса.
businessLogostringURL логотипа бизнеса.
currencystringВалюта (например, USD).
descriptionstringОписание счёта.
walletConnectButtonTextstringТекст для кнопки Wallet Connect.
qrCodeButtonTextstringТекст для кнопки QR-кода.
cardButtonTextstringТекст для кнопки оплаты картой.
buttonClassNamestringCSS-класс для стилизации кнопок.
dialogTitlestringЗаголовок диалога оплаты картой.
dialogDescriptionstringОписание в диалоге оплаты картой.
classNamestringCSS-класс для основного компонента.
footerTextstringТекст внизу компонента.
paymentLinkIdstringИдентификатор платёжной ссылки.
envstringОкружение (например, test, production).
onWalletConnectPaymentCompletefunctionКолбэк при успешной оплате через Wallet Connect.
onWalletConnectPaymentErrorfunctionКолбэк при ошибке оплаты через Wallet Connect.
onQrCodePaymentCompletefunctionКолбэк при успешной оплате через QR-код.
onQrCodePaymentErrorfunctionКолбэк при ошибке оплаты через QR-код.
onCardPaymentCompletefunctionКолбэк при успешной оплате картой.
onCardPaymentErrorfunctionКолбэк при ошибке оплаты картой.
amountnumberСумма счёта.
recipientWalletAddressstringКошелёк получателя.

Примечания

  • Используйте этот компонент для одноразовых платежей, например, по счёту.
  • Убедитесь, что recipientWalletAddress действителен, чтобы избежать ошибок оплаты.
  • Настраивайте внешний вид и поведение с помощью предоставленных свойств.

PaymentLinkCheckout

React-компонент для оплаты по платёжной ссылке. Позволяет генерировать платёжные ссылки для клиентов.

Использование

import {
MilestonPaymentProvider,
PaymentLinkCheckout,
} from "mileston-payment-client";

<MilestonPaymentProvider apikey="ваш-api-ключ" businessid="ваш-business-id">
<PaymentLinkCheckout
businessName="Мой бизнес"
businessLogo="https://example.com/logo.png"
bannerImage="https://example.com/banner.png"
title="Запрос на оплату"
currency="USD"
description="Оплатите ваш заказ"
walletConnectButtonText="Подключить кошелёк и оплатить"
qrCodeButtonText="Сгенерировать QR для оплаты"
cardButtonText="Оплатить картой"
buttonClassName="custom-button-class"
dialogTitle="Безопасная оплата"
dialogDescription="Завершите оплату через защищённую форму"
className="custom-class"
footerText="Спасибо за оплату!"
paymentLinkId="payment123"
env="test"
onWalletConnectPaymentComplete={() =>
console.log("Оплата через кошелёк завершена")
}
onWalletConnectPaymentError={(error) =>
console.error("Ошибка оплаты через кошелёк:", error)
}
onQrCodePaymentComplete={() => console.log("Оплата через QR завершена")}
onQrCodePaymentError={(error) =>
console.error("Ошибка оплаты через QR:", error)
}
onCardPaymentComplete={() => console.log("Оплата картой завершена")}
onCardPaymentError={(error) =>
console.error("Ошибка оплаты картой:", error)
}
amount={100}
recipientWalletAddress="0x123456789abcdef"
/>
</MilestonPaymentProvider>;

Свойства

Имя свойстваТипОписание
businessNamestringНазвание бизнеса.
businessLogostringURL логотипа бизнеса.
bannerImagestringURL баннера для страницы оплаты.
titlestringЗаголовок запроса на оплату.
currencystringВалюта (например, USD).
descriptionstringОписание платёжного запроса.
walletConnectButtonTextstringТекст для кнопки Wallet Connect.
qrCodeButtonTextstringТекст для кнопки QR-кода.
cardButtonTextstringТекст для кнопки оплаты картой.
buttonClassNamestringCSS-класс для стилизации кнопок.
dialogTitlestringЗаголовок диалога оплаты картой.
dialogDescriptionstringОписание в диалоге оплаты картой.
classNamestringCSS-класс для основного компонента.
footerTextstringТекст внизу компонента.
paymentLinkIdstringИдентификатор платёжной ссылки.
envstringОкружение (например, test, production).
onWalletConnectPaymentCompletefunctionКолбэк при успешной оплате через Wallet Connect.
onWalletConnectPaymentErrorfunctionКолбэк при ошибке оплаты через Wallet Connect.
onQrCodePaymentCompletefunctionКолбэк при успешной оплате через QR-код.
onQrCodePaymentErrorfunctionКолбэк при ошибке оплаты через QR-код.
onCardPaymentCompletefunctionКолбэк при успешной оплате картой.
onCardPaymentErrorfunctionКолбэк при ошибке оплаты картой.
amountnumberСумма платежа.
recipientWalletAddressstringКошелёк получателя.

Примечания

  • Используйте этот компонент для генерации платёжных ссылок для клиентов.
  • Настраивайте внешний вид страницы оплаты с помощью свойств bannerImage и title.
  • Убедитесь, что recipientWalletAddress действителен, чтобы избежать ошибок оплаты.

PaymentOptions

React-компонент для отображения доступных способов оплаты. Предоставляет вкладки для Wallet Connect, QR-кода и оплаты картой.

Использование

import { PaymentOptions } from "mileston-payment-client";

function App() {
return (
<PaymentOptions
walletConnectButtonText="Подключить кошелёк и оплатить"
qrCodeButtonText="Сгенерировать QR для оплаты"
cardButtonText="Оплатить картой"
buttonClassName="custom-button-class"
dialogTitle="Безопасная оплата"
dialogDescription="Завершите оплату через защищённую форму"
defaultTab="wallet"
onTabChange={(tab) => console.log("Выбрана вкладка:", tab)}
onWalletConnectPaymentComplete={(networkId, tokenId) =>
console.log("Оплата через кошелёк завершена:", networkId, tokenId)
}
onWalletConnectPaymentError={(error) =>
console.error("Ошибка оплаты через кошелёк:", error)
}
onQrCodePaymentComplete={(networkId, tokenId) =>
console.log("Оплата через QR завершена:", networkId, tokenId)
}
onQrCodePaymentError={(error) =>
console.error("Ошибка оплаты через QR:", error)
}
onCardPaymentComplete={() => console.log("Оплата картой завершена")}
onCardPaymentError={(error) =>
console.error("Ошибка оплаты картой:", error)
}
amount={100}
env="test"
recipientWalletAddress="0x123456789abcdef"
paymentType="invoice"
paymentLinkId="payment123"
/>
);
}

Свойства

Имя свойстваТипОписание
walletConnectButtonTextstringТекст для кнопки Wallet Connect.
qrCodeButtonTextstringТекст для кнопки QR-кода.
cardButtonTextstringТекст для кнопки оплаты картой.
buttonClassNamestringCSS-класс для стилизации кнопок.
dialogTitlestringЗаголовок диалога оплаты картой.
dialogDescriptionstringОписание в диалоге оплаты картой.
defaultTabstringВкладка по умолчанию (например, "wallet", "qrcode", "card").
onTabChangefunctionКолбэк при смене выбранной вкладки.
onWalletConnectPaymentCompletefunctionКолбэк при успешной оплате через Wallet Connect.
onWalletConnectPaymentErrorfunctionКолбэк при ошибке оплаты через Wallet Connect.
onQrCodePaymentCompletefunctionКолбэк при успешной оплате через QR-код.
onQrCodePaymentErrorfunctionКолбэк при ошибке оплаты через QR-код.
onCardPaymentCompletefunctionКолбэк при успешной оплате картой.
onCardPaymentErrorfunctionКолбэк при ошибке оплаты картой.
amountnumberСумма платежа.
envstringОкружение (например, test, production).
recipientWalletAddressstringКошелёк получателя.
paymentTypestringТип платежа (например, "invoice", "payment-link", "recurring").
paymentLinkIdstringИдентификатор платёжной ссылки.

Примечания

  • Используйте этот компонент для предоставления пользователям нескольких способов оплаты.
  • Настраивайте внешний вид кнопок с помощью свойства buttonClassName.
  • Свойство defaultTab позволяет выбрать вкладку по умолчанию.
  • Убедитесь, что recipientWalletAddress действителен, чтобы избежать ошибок оплаты.

SuiWalletProvider

Контекстный провайдер React для интеграции кошельков Sui. Настраивает соединение с сетями Sui и управление кошельками.

Использование

import SuiWalletProvider from "mileston-payment-client";

function App() {
return (
<SuiWalletProvider>{/* Ваши компоненты приложения */}</SuiWalletProvider>
);
}

Свойства

Имя свойстваТипОписание
childrenReactNodeДочерние компоненты, использующие контекст кошелька.

Примечания

  • По умолчанию используется сеть testnet, поддерживается также mainnet.

Возможности

  • Конфигурация сети: поддержка Sui testnet и mainnet через createNetworkConfig.
  • Автоподключение: автоматическое подключение кошелька при инициализации провайдера.
  • Управление запросами: использование QueryClientProvider для управления запросами и кэшированием.

WalletConnectPayment

React-компонент для оплаты через WalletConnect. Поддерживает несколько блокчейн-сетей и токенов.

Использование

import { WalletConnectPayment } from "mileston-payment-client";

function App() {
return (
<WalletConnectPayment
onPaymentComplete={(networkId, tokenId) =>
console.log("Платёж завершён:", networkId, tokenId)
}
onPaymentError={(error) => console.error("Ошибка платежа:", error)}
buttonText="Подключить кошелёк и оплатить"
buttonClassName="custom-class"
recipientWalletAddress={{
eth: "0x123456789abcdef",
sui: "sui-address",
solana: "solana-address",
}}
amount={100}
paymentLinkId="payment123"
env="test"
paymentType="invoice"
userUUID="user-uuid"
/>
);
}

Свойства

Имя свойстваТипОписание
onPaymentCompletefunctionКолбэк при успешной оплате.
onPaymentErrorfunctionКолбэк при ошибке оплаты.
buttonTextstringТекст для кнопки оплаты.
buttonClassNamestringCSS-класс для стилизации кнопки.
recipientWalletAddressobjectКошельки для разных блокчейнов.
amountnumberСумма платежа.
paymentLinkIdstringИдентификатор платёжной ссылки.
envstringОкружение (например, test, production).
paymentTypestringТип платежа (например, invoice, recurring).
userUUIDstringUUID пользователя для отслеживания платежей.

Примечания

  • Поддержка сетей Ethereum, Sui, Solana и других.
  • Автоматическое подключение кошелька и обработка платежа.

QrCodePayment

React-компонент для генерации и проверки платежей по QR-коду.

Использование

import { QrCodePayment } from "mileston-payment-client";

function App() {
return (
<QrCodePayment
onPaymentComplete={(networkId, tokenId) =>
console.log("Платёж завершён:", networkId, tokenId)
}
onPaymentError={(error) => console.error("Ошибка платежа:", error)}
buttonText="Сгенерировать QR для оплаты"
buttonClassName="custom-class"
recipientWalletAddress={{
eth: "0x123456789abcdef",
sui: "sui-address",
solana: "solana-address",
}}
amount={100}
paymentLinkId="payment123"
env="test"
paymentType="invoice"
userUUID="user-uuid"
/>
);
}

Свойства

Имя свойстваТипОписание
onPaymentCompletefunctionКолбэк при успешной оплате.
onPaymentErrorfunctionКолбэк при ошибке оплаты.
buttonTextstringТекст для кнопки генерации QR-кода.
buttonClassNamestringCSS-класс для стилизации кнопки.
recipientWalletAddressobjectКошельки для разных блокчейнов.
amountnumberСумма платежа.
paymentLinkIdstringИдентификатор платёжной ссылки.
envstringОкружение (например, test, production).
paymentTypestringТип платежа (например, invoice, recurring).
userUUIDstringUUID пользователя для отслеживания платежей.

Примечания

  • Генерирует QR-код для оплаты и проверяет транзакцию через polling.
  • Поддержка нескольких блокчейнов и токенов.

CardPayment

React-компонент для оплаты с помощью банковских карт. Интегрируется с onramp-сервисами для обработки платежей.

Использование

import { CardPayment } from "mileston-payment-client";

function App() {
return (
<CardPayment
onPaymentComplete={() => console.log("Платёж завершён")}
onPaymentError={(error) => console.error("Ошибка платежа:", error)}
buttonText="Оплатить картой"
buttonClassName="custom-class"
recipientWalletAddress={{
eth: "0x123456789abcdef",
sui: "sui-address",
solana: "solana-address",
}}
amount={100}
paymentLinkId="payment123"
env="test"
paymentType="invoice"
userUUID="user-uuid"
/>
);
}

Свойства

Имя свойстваТипОписание
onPaymentCompletefunctionКолбэк при успешной оплате.
onPaymentErrorfunctionКолбэк при ошибке оплаты.
buttonTextstringТекст для кнопки оплаты.
buttonClassNamestringCSS-класс для стилизации кнопки.
recipientWalletAddressobjectКошельки для разных блокчейнов.
amountnumberСумма платежа.
paymentLinkIdstringИдентификатор платёжной ссылки.
envstringОкружение (например, test, production).
paymentTypestringТип платежа (например, invoice, recurring).
userUUIDstringUUID пользователя для отслеживания платежей.

Примечания

  • Открывает всплывающее окно для оплаты через onramp-сервисы.
  • Отслеживает статус платежа и обновляет интерфейс.

SolanaWalletProvider

Контекстный провайдер React для интеграции кошельков Solana. Настраивает соединение с сетями Solana и управление кошельками.

Использование

import SolanaWalletProvider from "mileston-payment-client";

function App() {
return (
<SolanaWalletProvider env="test">
{/* Ваши компоненты приложения */}
</SolanaWalletProvider>
);
}

Свойства

Имя свойстваТипОписание
childrenReactNodeДочерние компоненты, использующие контекст кошелька.
envstringОкружение (например, "test", "prod").

Примечания

  • Свойство env определяет, будет ли провайдер подключаться к mainnet или devnet.

Возможности

  • Конфигурация сети: поддержка Solana mainnet и devnet через clusterApiUrl.
  • Автоподключение: автоматическое подключение кошелька при инициализации провайдера.
  • Модальное окно: предоставляет модальное окно для выбора и подключения кошельков.