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

client-sdk

rec--- sidebar_position: 1


🛠️ Mileston Payment Client SDK

Добро пожаловать в документацию по Mileston Payment JavaScript/TypeScript Client SDK! Независимо от того, являетесь ли вы гуру JavaScript или фанатом фреймворков, этот SDK поможет легко интегрировать крипто-платежи. Давайте начнем и создадим что-то крутое! 🚀


📂 Структура SDK

Mileston Client SDK разделён на следующие разделы:

  • Компоненты: React-компоненты для быстрой интеграции.
  • Хуки: React-хуки для получения данных в реальном времени.
  • Функции: Основные утилиты для работы с платежами.

См. соответствующую документацию для подробного использования.


📦 Установка

Начните с установки SDK в ваш проект. Откройте терминал и выполните:

npm install mileston-payment-client

Или, если используете Yarn:

yarn add mileston-payment-client

⚙️ Основной класс (Vanilla JavaScript)

Для тех, кто использует чистый JavaScript, SDK предоставляет класс MilestonPayButton для прямой интеграции.

Пример

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

const container = document.getElementById("payment-button-container");

const payButton = new MilestonPayButton(container, {
buttonText: "Оплатить",
onPaymentComplete: () => {
console.log("Платёж завершён!");
},
onPaymentDataReceived: (data) => {
console.log("Данные платежа:", data);
},
onPaymentError: (error) => {
console.error("Ошибка платежа:", error);
},
paymentUrl: "https://example.com/payment",
});

// Необязательно: обновить текст или стиль кнопки позже
payButton.updateButtonText("Оформить заказ");
payButton.updateButtonStyle({ backgroundColor: "blue", color: "white" });

⚛️ Интеграция с React

SDK предлагает специальный React-компонент для быстрой интеграции.

Пример

import React from "react";
import { PayButton } from "mileston-payment-client";

function App() {
return (
<div>
<PayButton
onPaymentComplete={() => console.log("Платёж завершён!")}
onPaymentDataReceived={(data) => console.log("Данные платежа:", data)}
onPaymentError={(error) => console.error("Ошибка платежа:", error)}
paymentUrl="https://checkout.mileston.co/payment"
style={{ backgroundColor: "green", color: "white" }}
>
Оплатить
</PayButton>
</div>
);
}

export default App;

Интеграция с Angular

Для проектов на Angular используйте класс MilestonPayButton напрямую.

Пример

import { Component } from "@angular/core";
import { MilestonPayButton } from "mileston-payment-client";

@Component({
selector: "app-root",
template: `<div id="payment-button-container"></div>`,
})
export class AppComponent {
ngOnInit() {
const container = document.getElementById("payment-button-container");

const payButton = new MilestonPayButton(container, {
buttonText: "Оплатить",
onPaymentComplete: () => {
console.log("Платёж завершён!");
},
onPaymentDataReceived: (data) => {
console.log("Данные платежа:", data);
},
onPaymentError: (error) => {
console.error("Ошибка платежа:", error);
},
paymentUrl: "https://example.com/payment",
});
}
}

Интеграция с Vue

Разработчики на Vue могут интегрировать SDK с помощью класса MilestonPayButton.

Пример

<template>
<div id="payment-button-container"></div>
</template>

<script>
import { MilestonPayButton } from "mileston-payment-client";

export default {
name: "App",
mounted() {
const container = this.$el.querySelector("#payment-button-container");

const payButton = new MilestonPayButton(container, {
buttonText: "Оплатить",
onPaymentComplete: () => {
console.log("Платёж завершён!");
},
onPaymentDataReceived: (data) => {
console.log("Данные платежа:", data);
},
onPaymentError: (error) => {
console.error("Ошибка платежа:", error);
},
paymentUrl: "https://example.com/payment",
});
},
};
</script>

Важный компонент

Оберните приложение в Payment Provider

Используйте MilestonPaymentProvider, чтобы предоставить глобальные данные (API-ключ, business ID) вашему приложению. В apikey должен передаваться Checkout API Key.

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

function App() {
return (
<MilestonPaymentProvider
apikey="ваш-api-ключ" // Используйте Checkout API Key
businessid="ваш-business-id"
>
<YourComponent />
</MilestonPaymentProvider>
);
}

Обзор компонентов

Subscription Checkout

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

<SubscriptionCheckout
businessName="Моя компания"
businessLogo="https://example.com/logo.png"
plan={{
name: "Премиум-план",
description: "Доступ ко всем премиум-функциям",
amount: 19.99,
currency: "USD",
interval: "monthly",
intervalCount: 1,
}}
onWalletConnectPaymentComplete={(networkId, tokenId) =>
console.log("Платёж через Wallet Connect завершён", networkId, tokenId)
}
onWalletConnectPaymentError={(error) =>
console.error("Ошибка Wallet Connect", error)
}
amount={19.99}
recipientWalletAddress="0x123456789abcdef"
/>;

Invoice Checkout

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

<InvoiceCheckout
businessName="Моя компания"
businessLogo="https://example.com/logo.png"
description="Счёт #12345"
amount={200}
recipientWalletAddress="0x123456789abcdef"
onQrCodePaymentComplete={() => console.log("Платёж по QR завершён")}
onQrCodePaymentError={(error) => console.error("Ошибка QR-платежа", error)}
/>;

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

<PaymentLinkCheckout
businessName="Моя компания"
businessLogo="https://example.com/logo.png"
bannerImage="https://example.com/banner.png"
title="Запрос на оплату"
description="Оплатите ваш заказ"
amount={100}
recipientWalletAddress="0x123456789abcdef"
onCardPaymentComplete={() => console.log("Платёж картой завершён")}
onCardPaymentError={(error) => console.error("Ошибка оплаты картой", error)}
/>;

🛠️ Параметры конфигурации

SDK очень гибкий! Вот список опций и props для различных компонентов:

MilestonPayButton

| Опция | Тип | Обяз. | Описание | | ----------------------- | ------------------------------------------------------- | --------- | ------------------------------------------ | --- | ------------------------------------------- | | container | HTMLElement | Да | DOM-элемент для кнопки (только для Core). | | buttonText | string | Да | Текст на кнопке. | | onPaymentComplete | () => void | Да | Callback при успешном платеже. | | onPaymentDataReceived | (data: { walletAddress: string, id: string }) => void | Да | Callback при получении данных платежа. | | onPaymentError | (error: Error) => void | Да | Callback при ошибке платежа. | | paymentUrl | string | Нет | URL страницы оплаты. | | paymentType | "payment-link" | "invoice" | "recurring-payment" | Нет | Тип платежа (для автогенерации paymentUrl). | | paymentId | string | Нет | ID платежа (для автогенерации paymentUrl). | | buttonStyle | Partial<CSSStyleDeclaration> | Нет | Стили для кнопки. |

SubscriptionCheckout

PropТипОбяз.Описание
businessNamestringДаНазвание компании.
businessLogostringДаURL логотипа компании.
planobjectДаДанные тарифного плана.
plan.namestringДаНазвание плана.
plan.descriptionstringДаОписание плана.
plan.amountnumberДаСумма подписки.
plan.currencystringДаВалюта (например, USD).
plan.intervalstringДаИнтервал оплаты (например, monthly).
plan.intervalCountnumberДаКоличество интервалов (например, 2 месяца).
onWalletConnectPaymentComplete(networkId: string, tokenId: string) => voidНетCallback при успешном платеже через Wallet.
onWalletConnectPaymentError(error: Error) => voidНетCallback при ошибке Wallet Connect.
onQrCodePaymentComplete() => voidНетCallback при успешном QR-платеже.
onQrCodePaymentError(error: Error) => voidНетCallback при ошибке QR-платежа.
onCardPaymentComplete() => voidНетCallback при успешной оплате картой.
onCardPaymentError(error: Error) => voidНетCallback при ошибке оплаты картой.
amountnumberДаСумма подписки.
recipientWalletAddressstringДаАдрес кошелька получателя.
paymentLinkIdstringДаID платежной ссылки.

InvoiceCheckout

PropТипОбяз.Описание
businessNamestringДаНазвание компании.
businessLogostringДаURL логотипа компании.
descriptionstringДаОписание счёта.
amountnumberДаСумма счёта.
recipientWalletAddressstringДаАдрес кошелька получателя.
onQrCodePaymentComplete() => voidНетCallback при успешном QR-платеже.
onQrCodePaymentError(error: Error) => voidНетCallback при ошибке QR-платежа.
onCardPaymentComplete() => voidНетCallback при успешной оплате картой.
onCardPaymentError(error: Error) => voidНетCallback при ошибке оплаты картой.
paymentLinkIdstringДаID платежной ссылки для счёта.

PaymentLinkCheckout

PropТипОбяз.Описание
businessNamestringДаНазвание компании.
businessLogostringДаURL логотипа компании.
bannerImagestringНетURL баннера для страницы оплаты.
titlestringДаЗаголовок запроса на оплату.
descriptionstringДаОписание запроса на оплату.
amountnumberДаСумма платежа.
recipientWalletAddressstringДаАдрес кошелька получателя.
onWalletConnectPaymentComplete(networkId: string, tokenId: string) => voidНетCallback при успешном платеже через Wallet.
onWalletConnectPaymentError(error: Error) => voidНетCallback при ошибке Wallet Connect.
onQrCodePaymentComplete() => voidНетCallback при успешном QR-платеже.
onQrCodePaymentError(error: Error) => voidНетCallback при ошибке QR-платежа.
onCardPaymentComplete() => voidНетCallback при успешной оплате картой.
onCardPaymentError(error: Error) => voidНетCallback при ошибке оплаты картой.
paymentLinkIdstringДаID платежной ссылки.

Обработка ошибок

Всегда добавляйте callbacks ошибок для компонентов оплаты (onWalletConnectPaymentError, onQrCodePaymentError, onCardPaymentError), чтобы корректно обрабатывать неудачные платежи. Это улучшает пользовательский опыт и облегчает отладку.


Интеграция с Backend SDK

Комбинируйте Client SDK с Backend SDK для полноценного платёжного решения.


🛡️ Частые проблемы

Ошибки TypeScript

Убедитесь, что ваш tsconfig.json содержит:

{
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
}

Ошибка JSX

Если возникают ошибки JSX, проверьте, что в tsconfig.json есть:

{
"jsx": "react-jsx"
}

🎉 Вот и всё! Теперь вы готовы интегрировать Mileston Payment Client SDK как профи. Вопросы? Пишите — будем строить крутые вещи вместе! ✨

Итоги

Вот так просто! С Mileston Payment Client SDK интеграция крипто-платежей в ваше приложение становится лёгкой задачей. Если возникнут вопросы или проблемы — обращайтесь. Удачного кодинга и пусть ваши кружки продаются как горячие пирожки! ☕🛒


Примечание: Для подробной информации и ссылок смотрите репозиторий Mileston Payment Client SDK на GitHub. SDK с открытым исходным кодом — присылайте свои PR!