ZASOBY ROZWOJU

Rozwój API

Referencje API, przykłady backendowe i mobilne oraz zwroty płatności i powiadomienia w jednym miejscu. PHP, Node.js, Python, C#, Java, iOS Swift i Android Kotlin obsługują ON_SITE i HPP.

REST API · PREZENTACJA KONTROLI

Jedno polecenie zapłaty. Wybierz ON_SITE lub HPP.

Utwórz zamówienie na swoim serwerze, zapisz jego powiązanie z zamówieniem lokalnym, a następnie wybierz sposób, w jaki klient widzi płatność. Obydwa tryby używają tego samego order_id.

Patrz Synchroniczne zwroty HPP i asynchroniczna obsługa powiadomień ON_SITE/HPP, z kodem PHP, Node.js, Python, C # i Java.

ON_SITE

Okno płatności w kasie

Pokaż dokładną ilość, adres, sieć i QR w oknie dialogowym na swojej własnej domenie. Twoje zadawanie zapytań MochiPay i zwraca bezpieczny widok płatności.

Zobacz wbudowany HTML + PHP →
HPP

Przekieruj do MochiPay checkout

Twój serwer przekierowuje klienta do payment_url. Po dokonaniu płatności zweryfikuj zwrot lub powiadomienie za pomocą uwierzytelnionego zamówienia zapytania.

Zobacz przekierowanie PHP →

Fragmenty poniżej pochodzą z checkout.php i pomocników połączonych w PHP Demo 1.1.4 (PHP 7.0- 8.4). Najpierw stwórz zamówienie z order.php; jego wynik zawiera linki do obu przykładów. Sklepy produkcyjne powinny rozwiązać autoryzowane zamówienie lokalne z ich sesji / bazy danych i zakończyć je poprzez idemstrong transakcji.

Przekierować po weryfikacji serwera

HPP · PHP

Potwierdź zapisanie zlecenia i cel, a następnie wyślij Nagłówek Lokalizacji przed wyjściem strony.

checkout.php · Oddział HPP
// checkout.php: after loading the saved attempt and
// verifying its token, order binding and payment URL.
// $payment is the authenticated Query Order response.
if ($mode === 'HPP') {
    header('Location: ' . $payment['payment_url'], true, 303);
    exit; // Send the header before any HTML output.
}
// Verify the notification/return server-side before fulfillment.

Kompletny plik ładuje zapisaną próbę i sprawdza jej token, uwierzytelnione zapytanie i oczekiwane payment_url przed tą gałęzią.

Zamieść okno dialogowe we własnej stronie

ON_SITE · PHP + HTML

Dołącz lokalne pliki dialogowe do HTML. Przeglądarka mówi do lokalnego punktu końcowego ankiety; nigdy nie podpisuje prośby lub otrzymuje API.

checkout.php · lokalne aktywa dialogowe
// checkout.php: use the SAME saved reference/token.
$pollUrl = 'order.php?' . http_build_query([
    'view' => $reference, 'token' => $token, 'poll' => 1
], '', '&', PHP_QUERY_RFC3986);
$completeUrl = 'callback.php?' . http_build_query([
    'mode' => 'return', 'merchant_order_id' => $reference
], '', '&', PHP_QUERY_RFC3986);
$config = json_encode([
    'poll' => $pollUrl, 'complete' => $completeUrl
], JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT);
?>
<!-- Inside your own checkout page: -->
<link rel="stylesheet" href="portable/onsite.css">
<button id="reopen" type="button">Open payment dialog</button>
<script>window.MochiPayConfig = <?php echo $config; ?>;</script>
<script src="portable/qrcode.min.js"></script>
<script src="portable/onsite.js"></script>

onsite.js otwiera okno dialogowe na istniejącej stronie. Zamknięcie jej pozostawia widoczną opcję wyboru; przycisk Otwórz okno płatności ponownie otwiera tę samą płatność.

Twój backend sprawdza zamówienie

Autoryzuj zapisane odniesienie/token, zapytaj przechowywanym MochiPay order_id i porównaj oryginalne kwota/waluta, aktywo/sieć, adres i dokładną kwotę do zapłaty. Zwróć tylko widok bezpiecznej płatności z ciągami dziesiętnymi.

order.php - lokalny punkt końcowy sondażu
// order.php?view=...&token=...&poll=1 (server-side)
// The demo has already authorized the saved attempt/token.
$response = mochipay_query_order(
    'order_id', $record['snapshot']['order_id']
);
if (!$response['ok'] || !mochipay_bound($record, $response['data'])) {
    http_response_code(403);
    exit;
}
// Also check the expected received amount before accepting PAID.
header('Content-Type: application/json; charset=utf-8');
header('Cache-Control: no-store');
echo json_encode([
    'success' => true,
    'data' => MochiPayPortable::view($response['data'])
]); // Safe view: decimal strings; no credentials/customer fields.

Pełne demo dodatkowo weryfikuje otrzymaną kwotę dla PAID. callback.php weryfikuje powiadomienia i zwroty przeglądarki. Zrzut ekranu, przekierowanie lub flaga przeglądarki nigdy nie jest dowodem zapłaty.

Przetestuj integrację płatności

Włącz Sandbox w Panelu sprzedawcy → Tryb płatności. Pozostaw bez zmian dane uwierzytelniające API, URL żądań, weryfikację przez zapytanie o zamówienie i obsługę powiadomień. Przed przyjmowaniem rzeczywistych płatności przełącz z powrotem na Live.

Sandbox korzysta z demonstracyjnego kodu QR i symulowanych kwot, a nie z portfela odbiorczego ani rzeczywistej wyceny. Użyj przycisków symulacji w HPP lub zaktualizowanym oknie ON_SITE. Symulacja udanej płatności może uruchomić normalną realizację zamówienia w sklepie, dlatego korzystaj ze sklepu testowego.

Tryb płatności · Pobieranie wtyczek

Uwierzytelnienie

Każde żądanie API musi zawierać klucz sprzedawcy API i podpis HMAC-SHA256 zakodowany w formacie Base64.

NagłówekWymaganeOpis
X-Mochi-KeyTakTwój klucz do API.
X-Mochi-SignatureTakBase64- zakodowany podpis HMAC- SHA256.
Content-TypeWnioski o POSTapplication/json
Trzymaj swoje API w tajemnicy na serwerze. Nigdy nie ujawniaj go w przeglądarce JavaScript, aplikacji mobilnych lub kodu źródłowego.

Podpis

Dla Create Order, podpisz dokładne ciało JSON. Dla Query Order, podpisz surowy ciąg zapytań bez prowadzenia ?.

FORMULA SYGNATURY
Base64(HMAC-SHA256(UTF8(signing_text), UTF8(api_secret)))

Udzielone zobowiązania

Zamówienie waluty ceny zakupu. Metoda płatności wybiera sieć kryptowalutową i blockchain używaną do zapłaty.

ZAMÓWIENIA

28 obsługiwanych walut fiat

Użyj jednego z tych dokładnych kodów ISO w currency Pole.

USDEURGBPCAD AUDNZDJPYCNY HKDSGDCHFSEK NOKDKKPLNCZK HUFAEDSARINR IDRTHBMYRPHP KRWBRLMXNZAR
KRYPTO ZAMKNIĘTE

Ceny kryptoburtowe

Zamówienia mogą być również wycenione bezpośrednio w tych kryptowalutach.

USDTUSDCBTCETHSOLTRX
METODY PŁATNOŚCI

Obsługiwane kombinacje kryptoburtowe i sieciowe

Wyślij jedną z tych dokładnych wartości w payment_method Pole.

USDT_TRC20USDT na TRON
USDC_ERC20USDC na Ethereum
BTC_BITCOINNative BTC na Bitcoin
ETH_ERC20Natywny ETH na Ethereum
SOL_SOLANANative SOL na Solanie
TRX_TRONNative TRX na TRON
Zasada konwersji: Jeśli waluta zlecenia i składnik aktywów płatniczych są takie same, MochiPay stosuje stopę 1 bez konwersji. W przeciwnym razie przy tworzeniu zamówienia stosuje się składowany kurs walutowy i marżę handlową. Zobacz aktualne referencyjne kursy wymiany →
Wartość zamówieniaMetoda płatnościWynik
49.90 USDUSDT_TRC20Korzysta z przechowywanych USD → stawki USDT i marży handlowej.
100 EURBTC_BITCOINKorzysta z zapisanej stawki EUR → BTC i marży handlowej.
25 USDCUSDC_ERC20Bez nawrócenia. Kurs wymiany wynosi: 1.

Utwórz zamówienie

Utwórz zlecenie płatnicze z hostowanym adresem URL płatności i instrukcjami płatności niezbędnymi dla interfejsu na stronie internetowej.

POST https://mochi.bz/api/v1/orders/create

Parametry żądania

Waluta zamówień i metoda płatności to różne pojęcia. amount oraz currency definiuje pierwotną wartość zamówienia kupca. payment_method definiuje sieć kryptowalutową i blockchain stosowaną przez klienta do zapłaty. Na przykład: 49.90 USD z USDT_TRC20 oznacza, że zlecenie denominowane przez USD jest wypłacane z obliczoną kwotą USDT w sieci TRON.

Każde nowe zamówienie tworzy nowe zamówienie, nawet jeśli merchant_order_id się powtarza.

Limit czasu tworzenia nie oznacza niepowodzenia. Pierwsze zapytanie z request_id zapisane przed utworzeniem.

Zapytanie o zapisany request_id, aby odzyskać niepewny wynik; merchant_order_id jest tylko odniesieniem.

ParametrWymaganeRodzaj / DługośćOpis
request_idOpcjonalnie, zalecanestring · 1–64Identyfikator żądania, który generujesz i zapisujesz przed utworzeniem płatności. Użyj go ponownie do zapytania lub ponownie spróbować tej samej próby.
merchant_order_idTakstring · 1–100W numerze zamówienia Twojego sklepu rozróżniana jest wielkość liter i może się powtarzać. Jeśli pasuje wiele płatności, zamiast tego zapytaj o request_id lub order_id.
amountTakdecimal(28,8)Pozytywna kwota pierwotnego zamówienia. Fiat zwykle używa 2 miejsc po przecinku; obsługiwane kryptowaluty mogą używać do 8.
currencyTakstring · 1–20Oryginalny kod waluty zamówienia. Może być fiat, takie jak USD lub EURlub kryptowaluta, taka jak USDT lub USDC.
payment_methodNieaktywa ≤ 20 + sieć ≤ 30Płatności kryptoburtowe i blockchain sieci w ASSET_NETWORK format, taki jak USDT_TRC20 lub USDC_ERC20.
unique_amount_directionNieUP lub DOWNKierunek stosowany do małej wyjątkowej korekty kwoty. Domyślnie UP.
product_typeNiePHYSICAL lub DIGITAL_SERVICETyp zamówienia wyświetlany przy kasie. Domyślnie DIGITAL_SERVICE. Pola wysyłki pozostają opcjonalne dla obu typów.
descriptionNiestring · 0–500Opis zamówienia do odczytania przez człowieka.
product_infoNieJSON / string · nvarchar (max)Metadane produktu, koszyka lub niestandardowe. Kompletny organ żądania HTTP nie może przekraczać 65,536 bajtów.
customer_emailNiestring · 0–255Adres e-mail klienta. Po dostarczeniu musi być to ważny adres e-mail.
customer_phoneNiestring · 0–50Numer telefonu klienta.
first_nameNiestring · 0–100Imię klienta.
last_nameNiestring · 0–100Nazwisko klienta.
companyNiestring · 0–200Firma klienta lub nazwa organizacji.
countryNiestring · 0–100Kraj lub region klienta.
stateNiestring · 0–100Państwo klienta, prowincja lub region.
cityNiestring · 0–100Miasto klientów.
address1Niestring · 0–500Podstawowa linia adresowa klienta.
address2Niestring · 0–500Dodatkowa linia adresowa klienta.
postal_codeNiestring · 0–30Kod pocztowy klienta lub kod ZIP.
notify_urlNiestring · 0–1000Absolutne http:// lub https:// Asynchroniczny adres URL powiadomienia serwera. Dozwolone są jedynie publiczne miejsca docelowe; lokalny host, prywatne / zastrzeżone IP i przekierowanie są zablokowane.
redirect_urlNiestring · 0–1000Absolutny adres URL zwrotu klienta używany po pomyślnej płatności.
customer_ipNieIPv4 / IPv6 · 0- 45IP klienta dostarczone przez kupca. MochiPay rejestruje również żądanie API oddzielnie.

Brakujące, puste lub nieobsługiwane payment_method otwiera wybór HPP. Obsługiwane wartości zachowują płatność bezpośrednią. Wybór zostaje zablokowany po utworzeniu QR.

Przykład wniosku

JSON
{
  "merchant_order_id": "ORDER-20260919-001",
  "amount": 49.90,
  "currency": "USD",
  "payment_method": "USDT_TRC20",
  "unique_amount_direction": "UP",
  "product_type": "DIGITAL_SERVICE",
  "description": "MochiPay order",
  "customer_email": "customer@example.com",
  "redirect_url": "https://merchant.example.com/payment/return"
}
C # · CREATE ORDER
string baseUrl = "https://mochi.bz";
string body = @"{
  ""merchant_order_id"": ""ORDER-20260920-001"",
  ""amount"": 49.90,
  ""currency"": ""USD"",
  ""payment_method"": ""USDT_TRC20"",
  ""unique_amount_direction"": ""UP"",
  ""product_type"": ""DIGITAL_SERVICE"",
  ""description"": ""Example order"",
  ""notify_url"": ""https://merchant.example.com/mochipay/notify"",
  ""redirect_url"": ""https://merchant.example.com/payment/return""
}";

string signature;
using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(apiSecret)))
{
    signature = Convert.ToBase64String(
        hmac.ComputeHash(Encoding.UTF8.GetBytes(body)));
}

using (var client = new HttpClient())
using (var request = new HttpRequestMessage(
    HttpMethod.Post, baseUrl + "/api/v1/orders/create"))
{
    request.Headers.Add("X-Mochi-Key", apiKey);
    request.Headers.Add("X-Mochi-Signature", signature);
    request.Content = new StringContent(body, Encoding.UTF8, "application/json");
    HttpResponseMessage response = await client.SendAsync(request);
    string json = await response.Content.ReadAsStringAsync();
}
PHP 7.0- 8.4 · CREATE ORDER
<?php
$baseUrl = 'https://mochi.bz';
$apiKey = 'YOUR_API_KEY';
$apiSecret = 'YOUR_API_SECRET';

$payload = [
    'merchant_order_id' => 'ORDER-20260920-001',
    'amount' => '49.90',
    'currency' => 'USD',
    'payment_method' => 'USDT_TRC20',
    'unique_amount_direction' => 'UP',
    'product_type' => 'DIGITAL_SERVICE',
    'description' => 'Example order',
    'notify_url' => 'https://merchant.example.com/mochipay/notify',
    'redirect_url' => 'https://merchant.example.com/payment/return'
];

$body = json_encode($payload, JSON_UNESCAPED_SLASHES);
$signature = base64_encode(
    hash_hmac('sha256', $body, $apiSecret, true)
);

$ch = curl_init($baseUrl . '/api/v1/orders/create');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-Mochi-Key: ' . $apiKey,
        'X-Mochi-Signature: ' . $signature
    ],
    CURLOPT_POSTFIELDS => $body,
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_TIMEOUT => 30
]);

$json = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);

if ($json === false) {
    throw new RuntimeException($error);
}

// Preserve decimal JSON numbers as text before decoding.
$json = preg_replace(
    '/("(?:amount|base_pay_amount|pay_amount|received_amount|exchange_rate|rate_markup_percent|unique_amount_delta)"\s*:\s*)(-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?)(?=\s*[,}])/',
    '$1"$2"', $json
);
$result = json_decode($json, true);
if ($httpCode < 200 || $httpCode >= 300 || empty($result['success'])) {
    throw new RuntimeException('MochiPay request failed. Review before retrying creation.');
}
?>

Odpowiedź na sukces

PoleRodzaj / DługośćOpis
successbooleanPrawda, gdy tworzenie się powiedzie.
order_idstring · 32Identyfikator systemu MochiPay. Przechowywać w miejscu podania.
merchant_order_idstring · ≤100Twoje oryginalne referencje handlowe.
product_typestring · ≤20FIZYCZNE lub DIGITAL_SERVICE.
statusstring · ≤20Aktualny status płatności.
amountdecimal(28,8)Oryginalna kwota zamówienia; zachować precyzję dziesiętną.
currencystring · ≤20Pierwotna waluta cenowa.
base_pay_amountdecimal(28,8)Przeliczona kwota przed unikalną korektą.
unique_amount_deltadecimal(28,8)Podpisane dopasowanie.
unique_amount_directionstring · ≤10W górę lub w dół.
pay_amountdecimal(28,8)Dokładna ilość łańcucha do wyświetlenia i wysłania. Nie zaokrąglać.
payment_methodstringWybrany zasób/sieć, np. USDT_TRC20.
payment_addressstring · ≤255Odbieranie adresu tej płatności i sieci.
payment_urlstring · URLURL HPP. Na miejscu stosuje się te same instrukcje zamówienia.
expires_atdatetimeData wygaśnięcia pozwolenia na dopuszczenie do obrotu
HTTP 200 · JSON
{
  "success": true,
  "order_id": "41ad45477bd444f3bd89f0bab7f571bb",
  "merchant_order_id": "ORDER-20261003-001",
  "product_type": "DIGITAL_SERVICE",
  "status": "WAITING_PAYMENT",
  "amount": 49.90,
  "currency": "USD",
  "base_pay_amount": 49.90,
  "unique_amount_delta": 0.001,
  "unique_amount_direction": "UP",
  "pay_amount": 49.901,
  "payment_method": "USDT_TRC20",
  "payment_address": "TExampleReceivingAddressForIllustrationOnly",
  "payment_url": "https://mochi.bz/pay/41ad45477bd444f3bd89f0bab7f571bb",
  "expires_at": "2026-10-03 15:30:00"
}

Kolejność zapytań

Pobieranie zlecenia należącego do uwierzytelnionego kupca przy użyciu dokładnie jednego identyfikatora zlecenia.

GET https://mochi.bz/api/v1/orders/query
Parametr zapytaniaWymaganeRodzaj / DługośćOpis
request_idWybierz jedenstring · 1–64Identyfikator żądania, który generujesz i zapisujesz przed utworzeniem płatności. Użyj go ponownie do zapytania lub ponownie spróbować tej samej próby.
order_idWybierz jedenstring · 1–32Identyfikator zlecenia zwracany przez MochiPay po utworzeniu płatności.
merchant_order_idWybierz jedenstring · 1–100W numerze zamówienia Twojego sklepu rozróżniana jest wielkość liter i może się powtarzać. Jeśli pasuje wiele płatności, zamiast tego zapytaj o request_id lub order_id.

Podaj tylko jeden identyfikator zapytania: request_id, order_id lub merchant_order_id.

  1. Limit czasu tworzenia nie oznacza niepowodzenia. Pierwsze zapytanie z request_id zapisane przed utworzeniem.
  2. Jeśli zapytanie znajdzie zamówienie, kontynuuj je. Nie tworzyć kolejnej płatności.
  3. Ponów oryginalne utworzenie tylko wtedy, gdy zweryfikowane zapytanie zwróci ORDER_NOT_FOUND z recovery_contract=request-id-v1. Użyj ponownie tego samego request_id i niezmienionej treści.
  4. Jeśli weryfikacja nie powiedzie się lub wynik będzie niejasny, zachowaj zapisane żądanie i zapytaj ponownie później. Nie wymieniaj request_id.

Przykłady zapytań

C # · PYTANIE ZARZĄDU
string baseUrl = "https://mochi.bz";
string query = "merchant_order_id=ORDER-20260919-001";

using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(apiSecret)))
{
    string signature = Convert.ToBase64String(
        hmac.ComputeHash(Encoding.UTF8.GetBytes(query)));

    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("X-Mochi-Key", apiKey);
        client.DefaultRequestHeaders.Add("X-Mochi-Signature", signature);
        string json = await client.GetStringAsync(
            baseUrl + "/api/v1/orders/query?" + query);
    }
}
PHP 7.0- 8.4 · QUERY ORDER
<?php
$baseUrl = 'https://mochi.bz';
$apiKey = 'YOUR_API_KEY';
$apiSecret = 'YOUR_API_SECRET';
$query = http_build_query(
    ['merchant_order_id' => 'ORDER-20260919-001'],
    '',
    '&',
    PHP_QUERY_RFC3986
);
$signature = base64_encode(
    hash_hmac('sha256', $query, $apiSecret, true)
);

$ch = curl_init($baseUrl . '/api/v1/orders/query?' . $query);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-Mochi-Key: ' . $apiKey,
        'X-Mochi-Signature: ' . $signature
    ],
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_TIMEOUT => 30
]);

$json = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);

if ($json === false) {
    throw new RuntimeException($error);
}

// Preserve decimal JSON numbers as text before decoding.
$json = preg_replace(
    '/("(?:amount|base_pay_amount|pay_amount|received_amount|exchange_rate|rate_markup_percent|unique_amount_delta)"\s*:\s*)(-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?)(?=\s*[,}])/',
    '$1"$2"', $json
);
$result = json_decode($json, true);
if ($httpCode < 200 || $httpCode >= 300 || empty($result['success'])) {
    throw new RuntimeException('MochiPay request failed. Review before retrying creation.');
}
?>

Gdy selection_required=true, payment_method i payment_address są puste, a pay_amount wynosi 0. Użyj payment_url. order_id i termin nie zmieniają się po potwierdzeniu.

Pola odpowiedzi sukcesu

Zwraca zapytanie wallet_type oraz network osobno; Utwórz porządek zwraca ich połączone payment_method. Porównaj je z metodą zapisaną na lokalnym zamówieniu. Zwróć tylko niezbędne pola płatności do przeglądarki klienta.

PoleRodzaj / DługośćOpis
order_idstring · 32Identyfikator zamówienia MochiPay.
merchant_order_idstring · ≤100Identyfikator zamówienia.
sourcestring · ≤20Źródło zamówień, takie jak API.
descriptionstring · ≤500Opis zamówienia.
product_typestring · ≤20PHYSICAL lub DIGITAL_SERVICE.
product_infoJSON / string / nullInformacje o produkcie lub koszyku dostarczone w momencie utworzenia zamówienia.
statusstring · ≤20Ogólny status płatności za zamówienie.
merchant_statusstring · ≤50Status zamówienia.
amountdecimal(28,8)Oryginalna kwota zamówienia.
currencystring · ≤20Pierwotna waluta zamówień, np. USD, EUR, USDT lub USDC.
base_pay_amountdecimal(28,8)Konwersja kwoty płatności przed unikalną korektą dopasowującą.
unique_amount_deltadecimal(28,8)Niewielka kwota podpisana dodana do kwoty bazowej lub odjęta od niej.
unique_amount_directionstring · ≤10UP lub DOWN.
pay_amountdecimal(28,8)Dokładna kwota kryptowaluty, którą klient musi zapłacić.
received_amountdecimal(28,8)Do tej pory otrzymano kwotę kryptowalutową.
manual_payment_acceptedBooleanSeparate authenticated proof of an operator acceptance; never infer it from PAID alone.
exchange_ratedecimal(38,18)Migawka wymiany kursu użyta podczas tworzenia zamówienia.
rate_markup_percentdecimal(9,4)Migawka znaczników handlowych użyta do zamówienia.
wallet_typestring · ≤20Aktywa płatnicze: USDT, USDC, BTC, ETH SOL lub TRX.
networkstring · ≤30Sieć łańcuchowa, taka jak: TRC20 lub ERC20.
payment_addressstring · ≤255Kupujący otrzymuje adres wybrany dla tego zamówienia.
tx_hashstring/null · ≤255Wykryto hasz płatności klienta.
confirmationsintegerPotwierdzenie aktualnego łańcucha blokady.
customer_email … postal_codestring/nullOpcjonalne pola klientów i wysyłki dostarczane przy tworzeniu zamówień.
payment_urlstring · URLHPP kasa URL; integracje na miejscu wysyłają zapytanie do tego samego zamówienia o status i instrukcje dotyczące płatności.
expires_atdatetimeZamów czas ważności.
paid_atdatetime/nullCzas realizacji płatności.
created_atdatetimeCzas tworzenia porządku.
updated_atdatetimeOstatnia aktualizacja zamówienia.

Przykłady kodów

PHP, Node.js, Python, C# / .NET Framework, Java, iOS Swift i Android Kotlin. Jedna zapisana płatność obsługuje ON_SITE i HPP.

PHP SDK na Packagist

Zainstaluj PHP SDK za pomocą Kompozytora.

Utwórz i zapytanie o zlecenia płatnicze ze strony PHP. Zachowaj referencje API na serwerze.

v1.0.2 · PHP 7.4+ · MIT

composer require mochipay/php-sdk:^1.0

Darmowe pliki do pobrania. Prenumerata płatności na żywo.

Zobacz plany subskrypcji

Wybierz pakiet źródłowy aplikacji

Jeden obecny ZIP na język lub platformę mobilną. Włączone są angielskie instrukcje konfiguracji. Wtyczki do sklepu natywnego pozostają osobne, a istniejące integracje nadal działają.

DEMO SERWERA · ON_SITE + HPP

PHP

7.0–8.4

Oryginalne trasy PHP: order.php, checkout.php i callback.php

Pobierz ZIP
DEMO SERWERA · ON_SITE + HPP

Node.js

22+

Wspólne trasy mobilne / awaryjne

Pobierz ZIP
DEMO SERWERA · ON_SITE + HPP

Python

3.10+

Wspólne trasy mobilne / awaryjne

Pobierz ZIP
DEMO SERWERA · ON_SITE + HPP

C# / .NET Framework

4.6.1 / VS2019

Wspólne trasy mobilne / awaryjne

Pobierz ZIP
DEMO SERWERA · ON_SITE + HPP

Java

JDK17+

Wspólne trasy mobilne / awaryjne

Pobierz ZIP
ŹRÓDŁO MOBILNE · ON_SITE + HPP

iOS Swift

iOS15+ / Xcode14+

Użyj jednego wspólnego tła; tylko projektu źródłowego

Pobierz ZIP
ŹRÓDŁO MOBILNE · ON_SITE + HPP

Android Kotlin

API26+ / SDK35 / JDK17

Użyj jednego wspólnego tła; tylko projektu źródłowego

Pobierz ZIP

Uruchom kompletny przepływ oparcia

  1. Konfiguracja prywatnych pełnomocnictw MochiPay, aktywnych portfeli, publicznego HTTPS wywołania pochodzenia i niezależnego znacznika dostępu. Serwer posiada cenę demo; przeglądarka nie może jej zastąpić.
  2. Utwórz lub odzyskaj, korzystając z tego samego zapisanego request_id i niezmienionego ładunku. Dokładne bajty żądań UTF-8 i zakodowane ciągi zapytań są podpisane HMAC-SHA256.
  3. Otwórz zapisane wyskakujące okienko ON_SITE lub przekierowanie HPP. Obydwa korzystają z jednego zlecenia płatniczego. ON_SITE zawiera kod QR, kontrolę kopiowania i selektor dziesięciu języków.
  4. Przetwórz notify_url na serwerze i ponownie zapytaj o zapisany identyfikator. Synchroniczne trasy zwrotne i odpytujące ponownie korzystają z tej samej weryfikacji binding/exact-amount.
  5. Zapis zweryfikowanego opłacanego państwa raz. Zastąp magazyn i marker plików do instalacji z uwierzytelnioną własnością aplikacji i atomową aktualizacją zamówienia bazy danych przed produkcją.

PHP zachowuje pierwotny przepływ order.php / checkout.php / callback.php. Cztery nowe tła ujawniają wspólne trasy poniżej dla przeglądarki i klientów mobilnych.

DrogaOdpowiedzialność
POST /paymentsUtwórz lub odzyskaj przedmiot w cenie serwerowej; request_id i payment_method; token nośnika tymczasowego.
GET /checkout?r=…&t=…&mode=ON_SITEZaoszczędzony merchant-lokalne płatności pop.
GET /checkout?…&mode=HPP303 przekierować po zatwierdzeniu wiążącym i docelowym.
GET /status?r=…&t=…Podpisane początkowe zapytanie; minimalna decimal- string płatności DTO.
POST /callback?r=…&t=…Weryfikacja synchroniczna i tylko jeden płatny marker.
GET /complete?r=…&t=…Zweryfikowana strona synchronicznego zwrotu / rezultatu.

Mobile checkout bez mobilnych tajemnic API

Projekty źródłowe Swift i Kotlin korzystają z jednego z czterech popularnych backendów. Skonfiguruj w aplikacji tylko pochodzenie sprzedawcy HTTPS. ON_SITE pokazuje Twoją lokalną kasę w WKWebView lub Android WebView; HPP otwiera trasę przekierowania sprzedawcy w zewnętrznej przeglądarce. Aplikacja ponownie sprawdza backend, jeśli jest aktywny; zamknięcie aplikacji nigdy nie powoduje zatrzymania powiadomień serwera.

Zapisane żądanie ID przetrwa ponownie / ponownie uruchamia. Interfejs i zmiany językowe ponownego użycia tej samej kolejności. Token dostępu do instalacji jest oddzielony od referencji MochiPay; należy go zastąpić uwierzytelnioną sesją użytkownika aplikacji.

Są to demo źródła integracji, a nie rodzime płatności SDK lub app- store aprobaty. Aktualny przegląd Zasady rozliczania Apple 'a oraz Polityka płatności Google Play dla produktu i regionu docelowego.

Weryfikacja przed przejściem na żywo

Użyj każdego opakowania README i TESTING.md. Lokalne podpisane urządzenia obejmują ponowne próby, wiążące rozbieżności, niezapłacone stany i duplikaty powiadomień. Native Xcode / Android Studio akceptacja urządzenia i małe prawdziwe płatności nadal potrzebują aprobatę. Nie jest wymagana nowa tabela bazy danych MochiPay ani ponowne zainstalowanie wtyczki.

Wdrożenie zwrotów synchronicznych i asynchronicznych powiadomień →

Zwraca & powiadomienia

Implementuj synchroniczne zwroty HPP, asynchroniczne powiadomienia HPP i asynchroniczne aktualizacje ON_SITE za pomocą jednego weryfikatora po stronie serwera.

Trzy wejścia. Jedna zweryfikowana aktualizacja zamówienia.

PrzepływPole API / wpisCel
Zwrot synchroniczny HPPredirect_url · przeglądarka GETWyświetla wynik po podpisaniu zapytania o serwer. Klient może nigdy nie wrócić.
HPP Asynchroniczne powiadomienienotify_url · serwer POSTWeryfikacja i aktualizacja lokalnego zamówienia bez polegania na przeglądarce.
Powiadomienie asynchroniczne ON_SITETen sam notify_url · serwer POSTAktualizuj zamówienie lokalne, nawet jeśli pop płatności lub aplikacja jest zamknięta.
Wyświetlanie stanu ON_SITEPrzeglądarka / sondaże aplikacji kupiec / statusPokaż minimalny wynik tej samej weryfikacji oparcia.

HPP: synchroniczny powrót przeglądarki

Podczas tworzenia płatności zapisz redirect_url z możliwością zamówienia lokalnego. Przykład ustawia go na Twojego sprzedawcę HTTPS /complete?r=…&t=…. Po zrealizowaniu transakcji hostowanej przeglądarka powraca tutaj. Załaduj zapisane zamówienie lokalne, zatwierdź jego własność/uprawnienia dostępu, a następnie podpisz Zamówienie zapytania, używając zapisanego MochiPay order_id.

Wyświetla PAID tylko po zakończeniu połączenia i dokładnie otrzymanej kwoty przejść. W przeciwnym razie pokaż czekanie lub recenzję. Flaga URL, wiadomość przeglądarki lub screenshot nie jest dowodem zapłaty. Dostawa Callback może wystąpić przed lub po tej wizycie przeglądarki.

HPP i ON_SITE: asynchroniczne powiadomienie serwera

Zapisz notify_url podczas tworzenia; w przykładach użyto /callback?r=…&t=…. MochiPay wysyła tutaj POSTy niezależnie od przeglądarki klienta. Traktuj przychodzące pola jako niezaufane wskazówki wyszukiwania. Zapytaj uwierzytelniony interfejs API i porównaj zapisany identyfikator, numer referencyjny, pierwotną kwotę/walutę, zasób/sieć, adres i dokładną kwotę do zapłaty.

Wymagaj PAID, dodatnich oczekiwanych/otrzymanych kwot i dokładnej równości lub ścisłej wartości logicznej manual_payment_accepted=true z tego uwierzytelnionego zapytania. Jednorazowo zarejestruj zweryfikowaną płatność lokalną; powtarzane zweryfikowane powiadomienia zwracają OK bez dwukrotnej aktualizacji lub dostarczania. Niepotwierdzone stany, nieprawidłowe powiązania i awarie przesyłania/magazynowania nie mogą być uznawane za pomyślną płatność.

W wersjach demonstracyjnych utrzymuje się jednorazowy znacznik paid_verified. Zastąp ją transakcją we własnej bazie zamówień; nie spełnia dóbr. Sama treść wywołania zwrotnego nigdy nie powoduje aktualizacji zamówienia.

ON_SITE: aktualizacje asynchroniczne i odpytywanie wyskakujących okienek

ON_SITE ustawia to samo notify_url, więc weryfikacja płatności będzie kontynuowana po zamknięciu wyskakującego okienka lub aplikacji w trybie offline. Wyskakujące okienko odpytuje tylko Twój uwierzytelniony backend w odstępach 15-sekundowych, gdy jest widoczne. Jego backend wysyła zapytanie do MochiPay i zwraca DTO małej płatności z kwotami w postaci ciągu dziesiętnego. Wyświetlacz PAID wykorzystuje ten sam weryfikator co wywołanie zwrotne; do przeglądarki nie zostanie wprowadzona żadna tajemnica API ani pełna odpowiedź klienta.

Zamknięcie, ponowne otwarcie lub zmiana ON_SITE/HPP powoduje ponowne wykorzystanie jednej zapisanej płatności. Zachowaj request_id i dokładny ładunek tworzenia po przekroczeniu limitu czasu; zmiana referencji może spowodować niechciane dodatkowe zamówienie.

Kod dostępny w każdym pakiecie

Każdy przykład obejmuje obie gałęzie prezentacji, procedurę obsługi powiadomień, stronę zwrotną, punkt końcowy stanu bezpiecznego i trwałą próbę etapową. Pola API to notify_url i redirect_url; tryb realizacji transakcji to preferencja lokalna, a nie pole Utwórz zamówienie.

Node.js · weryfikacja, zwrot i powiadomienie

Fragmenty z pakietu. Zmienne trasy i wspomagające przechowywanie są zdefiniowane w pełnym źródle; wkleić pełną integrację, a nie tylko te linie.

async function verify(r,t){const a=load(r);if(!equal(a.token,t)||!a.snapshot)throw Error('Invalid payment capability');const d=await api('/api/v1/orders/query','order_id='+encodeURIComponent(a.snapshot.order_id));bind(a,d);if(d.status==='PAID'&&!a.paid_verified){a.paid_verified=true;save(r,a)}return d}

// HPP redirect_url -> GET /complete: verify before displaying result.
await verify(r,t);
// notify_url -> POST /callback: same verification and atomic once-only marker.
const d=await verify(r,t);
output(res,d.status==='PAID'?200:409,'text/plain',d.status==='PAID'?'OK':'Payment not confirmed');
// ON_SITE polling -> GET /status: only the safe DTO reaches the browser.
json(res,200,{success:true,data:safe(await verify(r,t))});
Python · weryfikacja, zwrot i notyfikacja

Fragmenty z pakietu. Zmienne trasy i wspomagające przechowywanie są zdefiniowane w pełnym źródle; wkleić pełną integrację, a nie tylko te linie.

def verify(r, t):
    a = load(r)
    if not isinstance(t,str) or not hmac.compare_digest(a['token'],t) or not a.get('snapshot'): raise ValueError('Invalid capability')
    d = api('/api/v1/orders/query',urlencode({'order_id':a['snapshot']['order_id']})); bind(a,d)
    if d.get('status') == 'PAID' and not a['paid_verified']: a['paid_verified'] = True; save(r,a)
    return d

# HPP browser return
verify(r,t)
# HPP and ON_SITE server notification (inside the handler lock)
d = verify(r,t)
self.out(200 if d['status']=='PAID' else 409,'text/plain','OK' if d['status']=='PAID' else 'Payment not confirmed')
# ON_SITE display only
self.jout(200,dict(success=True,data=safe(verify(r,t))))
C # / .NET Ramy - weryfikacja, powrót i notyfikacja

Fragmenty z pakietu. Zmienne trasy i wspomagające przechowywanie są zdefiniowane w pełnym źródle; wkleić pełną integrację, a nie tylko te linie.

        static JObject Verify(string r,string t)
        {
            var a=Load(r);if(!Equal(S(a,"token"),t)||a["snapshot"]==null)throw new Exception("Invalid capability");var d=Api("/api/v1/orders/query",null,"order_id="+Uri.EscapeDataString(S(a["snapshot"],"order_id")));Bind(a,d);
            if(S(d,"status")=="PAID"&&!(bool)a["paid_verified"]){a["paid_verified"]=true;Save(r,a);}return d;
        }

// GET /complete: verified HPP return.
Verify(r,t);
// POST /callback: asynchronous notification for both modes.
var d=Verify(r,t);
Out(res,S(d,"status")=="PAID"?200:409,"text/plain",S(d,"status")=="PAID"?"OK":"Payment not confirmed");
// GET /status: display only the minimal DTO.
JOut(res,200,new JObject {{"success",true},{"data",Safe(Verify(r,t))}});
Java · weryfikacja, zwrot i notyfikacja

Fragmenty z pakietu. Zmienne trasy i wspomagające przechowywanie są zdefiniowane w pełnym źródle; wkleić pełną integrację, a nie tylko te linie.

    static JsonObject verify(String r,String t)throws Exception{JsonObject a=load(r);if(!equal(s(a,"token"),t)||!a.has("snapshot"))throw new IllegalArgumentException("Invalid capability");JsonObject d=api("/api/v1/orders/query",null,"order_id="+enc(s(a.getAsJsonObject("snapshot"),"order_id")));bind(a,d);if(s(d,"status").equals("PAID")&&!a.get("paid_verified").getAsBoolean()){a.addProperty("paid_verified",true);save(r,a);}return d;}

// GET /complete: verified HPP return.
verify(r,t);
// POST /callback: both presentation modes use this route.
boolean paid=s(verify(r,t),"status").equals("PAID");
out(x,paid?200:409,"text/plain",paid?"OK":"Payment not confirmed");
// GET /status: minimal safe display DTO.
jout(x,200,object("success",true,"data",safe(verify(r,t))));
PHP · weryfikacja, zwrot i notyfikacja

Fragmenty z pakietu. Zmienne trasy i wspomagające przechowywanie są zdefiniowane w pełnym źródle; wkleić pełną integrację, a nie tylko te linie.

    // Authenticate the result by querying MochiPay server-to-server.
    $verified = mochipay_query_order('order_id', $orderId);
    if (!$verified['ok'] || !is_array($verified['data'])) {
        callback_text(503, 'VERIFICATION_FAILED');
    }

    $order = $verified['data'];
    if (!isset($order['order_id']) || !hash_equals((string) $order['order_id'], $orderId)) {
        callback_text(409, 'ORDER_MISMATCH');
    }

    $verifiedMerchantId = isset($order['merchant_order_id']) ? (string)$order['merchant_order_id'] : '';
    try { $record = mochipay_load($verifiedMerchantId); }
    catch (Exception $e) { callback_text(503, 'LOCAL_STORAGE_UNAVAILABLE'); }
    if (!mochipay_bound($record, $order) || (isset($callback['merchant_order_id']) && !hash_equals($verifiedMerchantId, (string)$callback['merchant_order_id']))) callback_text(409, 'LOCAL_ORDER_MISMATCH');
    if (!MochiPayPortable::paidAmountAccepted($order)) callback_text(409, 'PAYMENT_AMOUNT_REQUIRES_REVIEW');

    if (!isset($order['status']) || strtoupper((string) $order['status']) !== 'PAID') {
        callback_text(409, 'ORDER_NOT_PAID');
    }

    /*
     * TODO: In your production database, atomically fulfill the bound local order.
     * This demo acknowledges verification only; it does not deliver goods.
     * Make the operation idempotent: repeated callbacks must not deliver goods
     * or credit the customer more than once.
     */
    try { mochipay_record_verified($record, $order); }
    catch (Exception $e) { callback_text(503, 'LOCAL_UPDATE_FAILED'); }
    callback_text(200, 'OK');
}

// GET browser return verifies the saved capability, then queries the saved ID.
$authorized = $record && $returnToken !== '' && hash_equals($record['token'], $returnToken);
if ($authorized) {
    $verified = mochipay_query_order('order_id', $record['snapshot']['order_id']);
    $paid = $verified['ok'] && mochipay_record_verified($record, $verified['data']);
}
Pobierz pełne przykłady

Odpowiedzi błędów

Błędy zwracają kod statusu HTTP i stabilną wiadomość do odczytu maszynowego.

JSON
{ "success": false, "message": "INVALID_SIGNATURE" }
HTTPWiadomośćOpis
400INVALID_JSON / INVALID_AMOUNTŻądanie danych jest nieważne.
400CURRENCY_REQUIRED / CURRENCY_TOO_LONGŻądanie danych jest nieważne.
400INVALID_UNIQUE_AMOUNT_DIRECTION / INVALID_PRODUCT_TYPEKierunek lub typ produktu nie jest obsługiwany.
400FIELD_TOO_LONG / INVALID_REDIRECT_URL / INVALID_NOTIFY_URLOpcjonalne pole przekracza limit lub dostarczony adres URL jest nieprawidłowy.
400ORDER_ID_REQUIRED / ORDER_IDENTIFIER_CONFLICTIdentyfikator zapytań zaginął lub jest sprzeczny.
401INVALID_API_KEY / INVALID_SIGNATUREUwierzytelnienie nie powiodło się.
403SUBSCRIPTION_REQUIRED / SUBSCRIPTION_EXPIREDSubskrypcja kupca jest niedostępna.
403MERCHANT_DISABLEDKonto kupca jest wyłączone.
404ORDER_NOT_FOUNDNie znaleziono podobnego zamówienia.
500SYSTEM_ERRORWniosek nie został wypełniony.

Klasyczna integracja SaaS

Kompatybilność HPP tylko dla Shopyy / Shopoem, Shoplus, Wooshoppaas i Fecify. Nie jest wymagane pobieranie wtyczki ani zmiana kodu źródłowego SaaS.

Tryb 1: stała waluta i sieć

Z /{PaymentMethod} klient przechodzi bezpośrednio do płatności QR w danej walucie i sieci.

POSThttps://mochi.bz/api/v/orders/legacy_create/YOUR_API_KEY/USDT_TRC20

Tryb 2: wybór przy płatności

Klient wybiera walutę i sieć płatności w MochiPay przed utworzeniem kodu QR.

POSThttps://mochi.bz/api/v/orders/legacy_create/YOUR_API_KEY

Oba tryby używają tych samych parametrów POST, formatu odpowiedzi i przepływu wywołań zwrotnych.

Użyj klucza API, nigdy sekretu API, w tym URL.

Obsługiwane platformy

Shopyy / ShopoemTa sama firma i kompatybilny format bramy
ShoplusKonfiguracja URL interfejsu płatności
WooshoppaasKonfiguracja URL interfejsu płatności
FecifyKonfiguracja URL interfejsu płatności

Ustawienia

  1. Skopiuj klucz API z deski rozdzielczej MochiPay.
  2. Wkleić wypełniony adres URL do interfejsu bramy płatności SaaS lub przesłać ustawienia URL.
  3. Zachować istniejące parametry POST platformy SaaS, zwrócić URL i powiadomić URL bez zmian.

Przykłady URL

URL INTERFACE PŁATNOŚCI PRAWNEJ
https://mochi.bz/api/v/orders/legacy_create/YOUR_MERCHANT_API_KEY/USDT_TRC20

https://mochi.bz/api/v/orders/legacy_create/YOUR_MERCHANT_API_KEY/USDC_ERC20

https://mochi.bz/api/v/orders/legacy_create/YOUR_MERCHANT_API_KEY/SOL_SOLANA

https://mochi.bz/api/v/orders/legacy_create/YOUR_MERCHANT_API_KEY

Metody płatności

USDT_TRC20USDT na TRON
USDC_ERC20USDC na Ethereum
BTC_BITCOINNative BTC na Bitcoin
ETH_ERC20Natywny ETH na Ethereum
SOL_SOLANANative SOL na Solanie
TRX_TRONNative TRX na TRON

Wymagane dziedziczne pola

ParametrCel
merchant_urlOryginalna wartość sklepu SaaS, zachowana w kompletnym rekordzie zapotrzebowania na diagnostykę.
system_nameIstniejący identyfikator platformy SaaS, zachowany w kompletnym rejestrze wniosków.
account_type / payment_modeZachowanie istniejących wartości platformy, zwykle live oraz sale.
orders_idOryginalny identyfikator zlecenia SaaS.
amount / currencyPierwotna kwota zamówienia i waluta.
return_urlKlient zwraca adres URL po potwierdzonej płatności.
notify_urlURL powiadomienia serwera dla zakończonej płatności.
securityTokenOpcjonalne przejście token zwracany bez zmian.
productsOpcjonalne dane dotyczące produktu lub koszyka.
customer_*Pola istniejącego klienta, adresu, IP i agenta użytkownika.

Odpowiedź na polecenie stworzenia

Istniejąca integracja SaaS wyciąga hostowany adres URL z trzyczęściowej odpowiedzi tekstowej.

TEKST
_____https://mochi.bz/pay/ORDER_ID_____

Pozytywne pola zwrotów i powiadomień

PoleWartość
securityTokenOryginalna wartość przejścia.
paymentMethodonlinepay
paymentStatusCompleted
paymentTransactionPotwierdzona transakcja blockchain.
paymentCommentsMochiPay payment confirmed
orderIDOryginalny SaaS orders_id.

Pliki do pobrania z wtyczką e-commerce

Dodaj MochiPay do swojego niezależnego sklepu z platformowym rozszerzeniem. Wybierz swoją platformę i gałąź wersji poniżej. Każdy z 19 pobrań jest niezależny ZIP z angielskimi instrukcjami i wymaganiami PHP wewnątrz. Użyj środowiska PHP dozwolonego przez dokładne wydanie sklepu.

ON- SITE + HPP

WooCommerce

Klasyczna kasa, bloki kasowe i HPOS.

PlatformaWooCommerce 5.8 lub później z rodzimą bramą API
PHPPHP 7.4–8.4

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

OpenCart 2.0–2.2

Trasy wczesnej płatności i ścieżki szablonu specyficzne dla danej wersji.

PlatformaOpenCart 2.0.x-2.2.x
PHPPHP 5.6- 7.4; nowszy PHP potrzebuje podstawowych łat

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

OpenCart 2.3

Oddzielna 2.3 struktura rozszerzenia / płatności.

PlatformaOpenCart 2.3.x
PHPPHP 5.6- 7.4; nowszy PHP potrzebuje podstawowych łat

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

OpenCart 3

Widoki Twig i natywna brama płatności OpenCart 3.

PlatformaOpenCart 3.0.x
PHPPHP 5.6- 8.4; zastosowanie mają dokładne wymogi podstawowe / zależne

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

OpenCart 4

Native 4.x place nazw, trasy i rozszerzenia opakowania.

PlatformaOpenCart 4.0.2.x-4.1.x
PHPPHP 8.0.2- 8.4; 4.1.0.4 wymaga 8.1 +

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

Zen Cart 1.5.3–1.5.7

Pliki językowe oparte na definicjach legacy i ustawienia stanu rodzimego.

PlatformaZen Cart 1.5.3-1.5.7
PHPPHP 5.6- 8.0, w zależności od wersji podstawowej

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

Zen Cart 1.5.8–2.2

Nowoczesne pliki językowe bazujące na systemie arrayowym i ustawienia stanu rodzimego.

PlatformaZen Cart 1.5.8 / 2.0.x / 2.1.x / 2.2.x
PHPPHP 7.3- 8.4, w zależności od wersji podstawowej

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

Magento 1 / OpenMage

Magento CE 1.9.3.0- 1.9.4.5 i zgodne OpenMage 19 / 20.

PlatformaMagento CE 1.9.3.0- 1.9.4.5; OpenMage 19 / 20 native M1 API
PHPPHP 5.6- 8.4; PHP 8 wymaga kompatybilnego rdzenia OpenMage

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

Magento 2

Magento Open Source 2.3.7- 2.4.8 z rodzimą kasą.

PlatformaMagento Open Source 2.3.7- 2.4.8 przy użyciu rodzimej kasy
PHPPHP 7.3- 8.4, w zależności od wersji podstawowej

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

PrestaShop 1.6

Hak płatności PrestaShop 1.6.1 i formularz.

PlatformaPrestaShop 1.6.1.x
PHPPHP 5.6–7.1

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

PrestaShop 1.7 / 8 / 9

PrestaShop 1.7.6- 1.7.8, 8.x i 9.0.x paymentOptions.

PlatformaPrestaShop 1.7.6-1.7.8 / 8.x / 9.0.x
PHPPHP 5.6- 8.4, w zależności od wersji podstawowej

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

Shopware 6.6

Oddzielny rodzimych opiekunów Shopware 6.6 i 6.7.

PlatformaShopware >=6.6.10.0 <6.7.0.0
PHPPHP 8.2.x / 8.3.x / 8.4.x

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

Shopware 6.7

Oddzielny rodzimych opiekunów Shopware 6.6 i 6.7.

PlatformaShopware >=6.7.0.0 <6.8.0.0
PHPPHP 8.2.x / 8.3.x / 8.4.x

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

Drupal Commerce

Portal płatniczy Native Commerce dla wspieranych oddziałów Drupal i Commerce.

PlatformaCommerce 2.40.x with Drupal 9.3- 10.x; or Commerce 3.3.10 + < 3.4 with Drupal 10.3- 11.x
PHPDrupal 9.3- 9.5: PHP 7.4- 8.1; Drupal 10: PHP 8.1- 8.3; Drupal 11: PHP 8.3- 8.4, tylko jeśli jest dozwolona przez dokładne wydanie Drupal

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

EC-CUBE 4.3

Natywna realizacja transakcji w JPY z przepływem zakupów EC-CUBE.

PlatformaEC-CUBE >=4.3.0 <4.4.0
PHPPHP 8.1.x / 8.2.x / 8.3.x

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

Bagisto 2.3

Pakiet Laravel z rodzimych zamówień i obsługi faktury.

PlatformaBagisto >=2.3.0 <2.4.0
PHPPHP 8.2.x / 8.3.x / 8.4.x (także spełniają blokadę zależności sklepu)

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

Sylius 2.0

Natywna realizacja transakcji Payum i maszyna stanu płatności Sylius.

PlatformaSylius >=2.0.0 <2.1.0 z rdzeniem kompatybilnym z PayumBundle 2.6+ / Payum 1.7
PHPPHP 8.2.x / 8.3.x / 8.4.x (także spełniają blokadę zależności sklepu)

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

osCommerce 4.14

Natywny moduł płatności V4; oddzielne od starszych osCommerce 2.x i 3.x.

PlatformaosCommerce 4.14.x; natywny moduł płatności V4
PHPPHP 7.4.x-8.3.x, z zastrzeżeniem zainstalowanego osCommerce wydania i blokady zależności

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →
ON- SITE + HPP

thirty bees 1.6

Natywny moduł płatności i historia zamówień dla thirty bees 1.6.

Platformathirty bees >=1.6.0 <1.7.0
PHPPHP 7.4.x / 8.0.x / 8.1.x / 8.2.x / 8.3.x; użyj pasującej dystrybucji thirty bees

Angielskie instrukcje instalacji i szczegółowa tabela PHP są wewnątrz tego ZIP.

Pobierz ZIPPrzewodnik konfiguracji →

Nowe adaptery to początkowe budowanie integracji. Kompletna instalacja i real- płatności akceptacji w swoim własnym sklepie postojowym przed umożliwienia ruchu na żywo.

Rozpocznij budowę z MochiPay

Utwórz konto MochiPay i wybierz metodę integracji, która pasuje do Twojego przepływu płatności.

Zacznij