Интеграция MoonPay: покупка криптовалюты картой в dApp и кошельке

Интеграция MoonPay: покупка криптовалюты картой в dApp и кошельке Представьте: вы запускаете dApp, пользователи готовы платить, но не могут купить ETH картой. Свой on-ramp требует лицензий, KYC, банковских партнёрств — уходит 6–12 месяцев и десятки тысяч долларов. MoonPay решает это за дни: 150+

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1310
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1270
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1012

Интеграция MoonPay: покупка криптовалюты картой в dApp и кошельке

Представьте: вы запускаете dApp, пользователи готовы платить, но не могут купить ETH картой. Свой on-ramp требует лицензий, KYC, банковских партнёрств — уходит 6–12 месяцев и десятки тысяч долларов. MoonPay решает это за дни: 150+ фиатных валют, 100+ криптовалют, покрытие 160+ стран. MoonPay official documentation Мы интегрируем MoonPay в ваш проект, чтобы покупка криптовалюты картой стала штатной функцией. Экономия на разработке — до 90% затрат по сравнению с самописным решением.

Проблемы, которые решает интеграция MoonPay

Необходимость собственной платёжной инфраструктуры

Построение фиатного шлюза с нуля — получение лицензий (MSB, EMI), интеграция с банками-эквайерами, настройка KYC/AML. Это требует 6+ месяцев работы команды compliance-специалистов и разработчиков. MoonPay берёт на себя всё регулирование: вы просто отправляете запрос с адресом кошелька и суммой.

Риски безопасности при передаче средств

Каждая транзакция должна быть защищена от подмены и повторной отправки. MoonPay использует подписанные URL (HMAC-SHA256) и верификацию webhook-уведомлений. Без этого любой человек может изменить параметры транзакции, подставив свой кошелёк. Ваша задача — правильно реализовать проверку подписи на сервере.

Неконтролируемые комиссии и задержки

Собственный on-ramp часто теряет прибыль из-за высокой стоимости банковских переводов и конвертации. MoonPay предоставляет готовую модель: комиссия за карты — 3.99%, за переводы — 1.99%. Для партнёров с объёмом от $1M/месяц возможен revenue share. В результате вы получаете стабильный доход без скрытых расходов.

Как работает интеграция MoonPay?

MoonPay — white-label on-ramp провайдер, который берёт на себя платёжную инфраструктуру. Вы получаете виджет или API, пользователь покупает крипту картой или переводом, а средства приходят на ваш смарт-контракт или кошелёк. Всё это — за часы, а не месяцы. Интеграция MoonPay под ключ включает настройку подписанных URL и вебхуков для полной автоматизации.

Способ Сложность Скорость Кастомизация
Widget Низкая 1–3 дня Минимальная
SDK (React Native/iOS/Android) Средняя 3–7 дней Средняя
API Высокая 1–2 недели Полная

Почему MoonPay, а не самописный шлюз?

MoonPay — проверенный провайдер с опытом работы в крупных проектах (OpenSea, MetaMask, Trust Wallet) и Uptime 99.9%. Мы имеем опыт интеграции MoonPay в 20+ проектах, включая DeFi-платформы и NFT-маркетплейсы. По сравнению с самостоятельным шлюзом, MoonPay сокращает время внедрения в 10 раз и избавляет от регуляторной головной боли. Экономия на разработке — до 90% затрат.

Как мы это делаем?

Подключаем виджет или SDK, настраиваем подписанные URL и webhook. Пример React-компонента:

import { MoonPayProvider, MoonPayBuyWidget } from '@moonpay/moonpay-react'; function CryptoPurchaseModal({ walletAddress, currency = 'eth' }) { return ( <MoonPayProvider apiKey={process.env.MOONPAY_API_KEY} debug={process.env.NODE_ENV === 'development'} > <MoonPayBuyWidget variant="overlay" baseCurrencyCode="usd" baseCurrencyAmount="100" defaultCurrencyCode={currency} walletAddress={walletAddress} onLogin={() => console.log('user logged in')} onTransactionCompleted={(txData) => { // txData.status: "completed" | "failed" | "pending" handleTransactionComplete(txData); }} visible={true} /> </MoonPayProvider> ); } 

Подписанные URL для безопасности

MoonPay требует подписи URL для предотвращения подмены параметров (адреса кошелька, суммы). Генерация подписи на Python:

import hmac import hashlib import urllib.parse import base64 def sign_moonpay_url(base_url: str, secret_key: str) -> str: """Подписывает URL для MoonPay widget""" parsed = urllib.parse.urlparse(base_url) query = parsed.query signature = hmac.new( secret_key.encode(), query.encode(), hashlib.sha256 ).digest() sig_b64 = base64.urlsafe_b64encode(signature).decode().rstrip('=') separator = '&' if query else '?' return f"{base_url}{separator}signature={sig_b64}" # Использование url = f"https://buy.moonpay.com?apiKey={API_KEY}&currencyCode=eth&walletAddress={wallet}" signed_url = sign_moonpay_url(url, MOONPAY_SECRET_KEY) 

Webhooks

MoonPay отправляет webhook-уведомления при изменении статуса транзакции. Верификация подписи обязательна:

from fastapi import FastAPI, Request, HTTPException import hmac, hashlib @app.post("/webhooks/moonpay") async def moonpay_webhook(request: Request): signature = request.headers.get("MoonPay-Signature-V2") body = await request.body() expected = hmac.new( MOONPAY_WEBHOOK_SECRET.encode(), body, hashlib.sha256 ).hexdigest() if not hmac.compare_digest(f"sha256={expected}", signature): raise HTTPException(403, "Invalid signature") event = await request.json() if event["type"] == "transaction_updated": tx = event["data"] await process_transaction_update( external_id=tx["externalTransactionId"], status=tx["status"], crypto_amount=tx.get("cryptoTransactionId") ) return {"received": True} 
Пример полного цикла транзакции Пользователь вводит сумму в USD, MoonPay показывает финальную стоимость с учётом комиссии. После оплаты картой MoonPay отправляет webhook со статусом `awaiting_execution`, затем `completed`. Ваш сервер должен обновить баланс кошелька только после получения финального статуса.

Типичные ошибки при интеграции MoonPay

  • Хранение secretKey и webhookSecret в открытом виде в клиентском коде. Используйте серверные переменные окружения.
  • Отсутствие верификации webhook-подписи, что ведёт к подделке уведомлений.
  • Неправильная обработка статусов транзакций: не все статусы финальные (например, "pending" может измениться).

Мы помогаем избежать этих рисков на этапе проектирования. Закажите интеграцию MoonPay под ключ — мы подготовим всё за 1–2 недели. Оценим ваш проект бесплатно.

Что входит в работу?

  • Подбор оптимального способа интеграции (widget/SDK/API)
  • Настройка API-ключей, секретов и webhook-обработчиков
  • Реализация подписанных URL и верификации транзакций
  • Кастомизация интерфейса под ваш дизайн
  • Документация интеграции и инструкция по тестированию
  • Гарантия и поддержка после внедрения

Ориентировочные сроки

Этап Длительность
Анализ и определение требований 1 день
Базовая интеграция (виджет) 2–3 дня
Полная интеграция (API + webhook) 5–10 дней
Тестирование и деплой 2–3 дня

Стоимость рассчитывается индивидуально в зависимости от сложности и объёма работ. Для точной оценки свяжитесь с нами — мы предложим решение под ваш проект.

MoonPay на Wikipedia