← Wszystkie wskazówki integracji
WYTYCZNE DOTYCZĄCE INTEGRACJI · API / BACKEND / MOBILE

Zintegruj płatności krypto z API MochiPay

Tworzenie i zapytanie zleceń płatniczych z aplikacji. PHP Demo 1.2.0 obsługuje PHP 7.0- 8.4 i zapewnia order.php, callback.php, checkout.php z obiema gałęziami prezentacji, połączone lokalne aktywa dialogowe i angielski README. Użyj na miejscu (domyślnie) lub HPP z tym samym zleceniem płatności.

Demo przejść · Ilustracyjna konfiguracja · Użyj małej prawdziwej płatności, aby zweryfikować własną konfigurację.

Zamówienie, na miejscu lub HPP checkout, bezpośrednio odbieranie portfela i zweryfikowane potwierdzenie
Ilustracja przepływu zapłaty. Na stronie internetowej i HPP używają tego samego zlecenia płatności; serwer weryfikuje swój status końcowy.

Zob. całkowity wynik płatności

Illustrated checkout potwierdzenie i wyniki zamówienia i portfela do weryfikacji

Demo ilustracja z wartościami próbki. Weryfikacja tych wyników przy użyciu naprawdę małej płatności w konfiguracji własnej; kwota checkout i wymagania potwierdzenia zależy od zamówienia.

01 · Przygotuj konto MochiPay

  1. Utwórz konto oraz aktywować subskrypcję.
  2. Otwórz Portfele, wybierz Dodaj HD Portfel → Generuj nowy, bezpiecznie kopię zapasową zwrotu i zapisać portfel. Włącz asset / network, którego użyjesz do testu.
  3. Ustaw rozpoznawalną nazwę wyświetlanego użytkownika Profil.
  4. Otwórz Kredyty API i skopiować klucz API i zapisać sekret API. Jeśli żaden sekret nie jest zapisany, zregeneruj go do ustawienia pierwszego czasu i przechowywać go bezpiecznie. Regeneracja istniejącego sekretu unieważnia integracje, które używają poprzedniego sekretu.

Gotowy, kiedy: Twój subskrypcja i otrzymujący portfel są aktywne, i masz referencje wymagane poniżej.

Zobacz ilustrowaną konfigurację konta →

02 · Konfiguracja demo PHP

Pobieranie i wyciąganie PHP Demo. Prześlij cały ekstrahowany katalog, w tym przenośny / i jego licencję QR- kod, do serwera PHP 7.0- 8.4 z cURL, JSON, sesje, bezpieczne losowe wytwarzanie, prywatne zapisywalne tymczasowe przechowywanie i HTTPS. Chronić formularz demo jako narzędzie administratora / inscenizacji; używać trwałej bazy zamówień do produkcji. Edytuj konfigurację na górze sorder.php

Otwórz: Konfiguracja server- side order.php

UstawienieCo wejść
MOCHIPAY_BASE_URLhttps://mochi.bz
MOCHIPAY_API_KEYTwój klucz handlowy API
MOCHIPAY_API_SECRETTwój zapisany sekret API
MOCHIPAY_CHECKOUT_MODEON_SITE (domyślnie) lub HPP
MOCHIPAY_DEMO_PUBLIC_URLTwój absolutny katalog demo HTTPS URL, zwłaszcza za proxy
Ilustracja konfiguracji API / PHP Demo
Ilustracja konfiguracji; wygląd różni się według wersji platformy. Tabela zawiera pełne wartości.

Dostarczone PHP Demo wykorzystuje CURLOPT_SSL_VERIFYPEER => false w żądaniach CURL. Zachowaj sekrety API w konfiguracji serwera. Nigdy nie umieszczaj ich w przeglądarce JavaScript.

Gotowy, kiedy: ładunki order.php bez błędów konfiguracyjnych lub cURL.

Wybierz miejsce lub HPP

TrybDoświadczenie klientaOdpowiedzialność za serwer
Na miejscu (domyślnie)Okno płatności na własną domenę, z dokładną kwotą, adres, sieć, QR i status.Utwórz i zapisz powiązanie płatności; zapytanie poprzez własne tło i zwróć tylko bezpieczny widok płatności.
HPPPrzekieruj do zwróconego payment_url na MochiPay.Przechowuj to samo powiązanie i weryfikuj zwroty / server- to- serwer.

Tryb checkout to preferencja integracyjna, a nie pole API. Oba linki używają jednego zamówienia. Nie tworzyć innego zamówienia podczas przełączania trybów. Classic SaaS obsługuje tylko HPP.

Dostępnych jest wszystkie sześć metod: USDT_TRC20, USDC_ERC20, BTC_BITCOIN, ETH_ERC20, SOL_SOLANA i TRX_TRON. W GÓRĘ jest domyślnym, unikalnym kierunkiem kwoty; DÓŁ jest również obsługiwany. Włącz portfel odbiorczy dla każdej oferowanej metody.

03 · Umieścić i zapłacić za wykonanie testu

Otwórz order.php. Utwórz małe zamówienie demonstracyjne, korzystając z unikalnego numeru zamówienia sprzedawcy i skonfigurowanej metody płatności. Wybierz ON_SITE lub HPP; otwórz preferowany link pokazany po utworzeniu. W rezultacie dostępna jest również wbudowana realizacja transakcji w sklepie i linki przekierowujące PHP HPP; oba są zaimplementowane w checkout.php. Alternatywne łącze wykorzystuje tę samą kolejność.

  1. Dopasuj wybrane aktywa i sieć i wyślij dokładną kwotę wyświetlaną na stronie płatności.
  2. Wyślij dokładna kwota na stronie płatności do wyświetlanego adresu odbioru. Nie należy zaokrąglać ani ponownie używać adresu z innej kolejności.
  3. Czekać na wymagane potwierdzenia blockchain i MochiPay zlecenie stać PAID.

Przykład sklepu / API może wycenić produkt w USD. MochiPay blokuje konwersję przy tworzeniu zamówienia; unikalne korekty kwoty mogą zmienić ostateczną należną kwotę. Wartość checkout jest kwotą do wysłania.

Kontrola sukcesu: zamówienie MochiPay wyświetla PAID, z zapisaną transakcją. Otwarcie tylko strony zwrotnej przeglądarki nie dowodzi płatności.

04 · Sprawdzić wynik i pokwitowanie portfela

Zapytaj o zamówienie przez system order_id ze swojej aplikacji. Zaakceptuj płatność dopiero wtedy, gdy uwierzytelnione zapytanie to PAID i jest zgodne z przechowywanym identyfikatorem systemu, numerem referencyjnym sprzedawcy, oryginalnym kwota/waluta, wybranym aktywo/sieć, adresem odbiorcy, dokładną kwotą do zapłaty i oczekiwaną kwotą otrzymaną. Realizacja poprzez niepodzielną, idempotentną transakcję lokalną. callback.php demonstruje tę weryfikację powiadomień i zwrotów przeglądarki, korzystając z prywatnych rekordów demonstracyjnych. Nie realizuje zamówień; zamień tymczasowe rekordy i wywołanie zwrotne TODO na produkcyjną bazę danych i transakcję realizacji. Przeczytaj dołączony plik README.

Dopasuj transakcję płatniczą i adres do polecenia MochiPay. Przejrzyj otrzymujący portfel lub blockchain explorer. Fundusze są już w odbieranym portfelu; nie ma prośby o wycofanie platformy.

Użyj kompatybilnego portfela i czekaj na potwierdzenie blokady podczas przenoszenia funduszy. Przeczytaj poradnik zarządzania portfelem receiving- →

Odzyskiwanie i dokładne kwoty

Kontynuuj próbę przed utworzeniem zamówienia. Bieżąca wersja demonstracyjna PHP zapisuje request_id i dokładny ładunek przed utworzeniem zamówienia. Po upływie limitu czasu bez zapisanego identyfikatora systemu spróbuj ponownie użyć tego samego ładunku i request_id; Zamiast tego odpytywane jest znane order_id. Odniesienia do zamówień sprzedawcy mogą się powtarzać; użyj identyfikatora zamówienia systemowego lub zapisanego identyfikatora żądania, aby zidentyfikować płatność. Zachowaj dziesiętne wartości odpowiedzi jako ciągi znaków przed konwersją typu float PHP lub JavaScript; wyświetl dokładnie pay_amount. Dołączony kod QR koduje tylko adres, więc klienci muszą wpisać wyświetlaną kwotę.

Podczas budowania własnego klienta API

Stosowanie X-Mochi-Key oraz X-Mochi-Signature. Tworzenie porządku oznacza dokładne ciało JSON przy użyciu Base64- zakodowanego HMAC- SHA256. Zapytanie Zamówienie podpisuje dokładny ciąg zapytań bez głównego znaku zapytania. Zachowaj to w tajemnicy.

Jeżeli badanie nie zostało zakończone

Nie można utworzyć opcji płatności lub zlecenia

Sprawdź status subskrypcji, aktywny portfel otrzymujący, kod metody płatności, referencje i pary wymiany kursu dla waluty zamówienia. W przypadku wtyczek należy również sprawdzić, czy metoda jest włączona dla zakresu przechowywania / klienta używanego w teście.

Płatność nadal czeka lub niedopłacona

Porównaj składnik aktywów, sieć, adres i dokładną kwotę do zapłaty z transakcją. Poczekać na wymagane potwierdzenie. Nie należy oznaczać zlecenia sklepu wypłaconego wyłącznie na podstawie zrzutu ekranu lub zwrotu przeglądarki.

MochiPay jest płatny, ale mój sklep / aplikacja nie jest aktualizowana

Sprawdź, czy punkty końcowe powiadomień / połączeń zwrotnych są publicznie dostępne przez HTTPS i nie blokowane przez uwierzytelnianie lub firewall. Potwierdź integrację można zapytania MochiPay i sprawdzić jego dzienniki błędów. Linki płatności tylko zaktualizować MochiPay, a nie sklep zewnętrzny.

Opcjonalne odpowielanie wniosku

Istniejące integracje będą nadal działać bez request_id. Aby ponownie wykorzystać to samo zlecenie płatnicze po upływie limitu czasu, dodaj opcjonalny request_id do podpisanej treści JSON przed obliczeniem istniejącego podpisu HMAC.

{"merchant_order_id":"STORE-1001","amount":25,"currency":"USD","payment_method":"USDT_TRC20","request_id":"STORE-1001:create:v1"}

Użyj 1–64 liter, cyfr, kropek, podkreśleń, dwukropków i łączników ASCII ASCII. Klucz należy do jednego sprzedawcy i jednego ładunku żądania. Ponownie użyj tego samego klucza i ładunku przy ponownych próbach; odpowiedzi zachowują istniejące pola i zwracają pierwotne zamówienie w jego bieżącym stanie. Klucze przechowywane są bez automatycznego wygaśnięcia. Do każdej nowej transakcji użyj nowego request_id. merchant_order_id może pozostać taki sam: 123, 124, 124 tworzy trzy niezależne rozkazy systemowe. Wcześniejsze nieopłacone zamówienie nie blokuje tworzenia. Tylko ponowna próba tego samego żądania powoduje ponowne wykorzystanie jego request_id i niezmienionego ładunku. WEB82.6 ogłasza identyfikator żądania-v1; zapytaj zapisany request_id, aby rozwiązać niepewną odpowiedź. Powtarzające się referencje sprzedawcy nie stanowią klucza odzyskiwania. Wdróż WEB82.6 lub nowszy przed pakietami integracyjnymi; WEB82.7 dodaje HPP cancel/return.

HTTP 409 REQUEST_IN_PROGRESS: ponów próbę tego samego żądania po opóźnieniu Retry-After. HTTP 409 REQUEST_ID_CONFLICT: klucz został ponownie użyty z innym ładunkiem. Nie generuj nowego klucza tylko po to, aby ominąć limit czasu. Zarówno ON_SITE, jak i HPP mogą korzystać ze zwróconych pól płatności lub payment_url jak poprzednio.

Podziel się tym przewodnikiem

Wyślij ten link do osoby ustalającej integrację.