UTVECKLARRESURSER

API utveckling

API-referens, backend- och mobilexempel och betalningsreturer och aviseringar på ett ställe. PHP, Node.js, Python, C#, Java, iOS Swift och Android Kotlin stöder ON_SITE och HPP.

REST API CHECKOUT PRESENTATION

En betalningsorder. Välj ON_SITE eller HPP.

Skapa beställningen på din server, spara dess bindning till din lokala beställning och välj sedan hur kunden ser betalningen. Båda lägena använder samma order_id.

Se HPP synkrona returer och ON_SITE/HPP asynkron aviseringshantering, med PHP, Node.js, Python, C# och Java-kod.

ON_SITE

Betalningsdialog i din checkout

Visa exakt belopp, adress, nätverk och QR i en dialog på din egen domän. Din backend frågor MochiPay och returnerar en säker betalningsvy.

Se inbäddad HTML + PHP
HPP

Omdirigera till MochiPay checkout

Din server omdirigerar kunden till payment_url. Efter betalning, verifiera returen eller meddelandet genom autentiserad Query Order.

Se PHP omdirigera

Utdragen nedan kommer från checkout.php och de hjälpare som ingår i PHP Demo 1.1.4 (PHP 7.0-8.4). Skapa först en order med order.php; dess resultat ger länkar till båda exemplen. Produktionsbutiker bör lösa den auktoriserade lokala ordern från sin session/databas och slutföra den genom en oavsiktlig transaktion.

Omdirigera efter serververifiering

HPP · PHP

Validera den lagrade orderbindningen och destinationen, skicka sedan platsrubriken innan någon sidoutput.

checkout.php · HPP gren
// 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.

Den fullständiga filen laddar det sparade försöket och validerar dess token, autentiserade fråga och förväntade payment_url före denna gren.

Inbädda dialogen på din egen sida

ON_SITE · PHP + HTML

Inkludera lokala dialogtillgångar i din kassa HTML. Webbläsaren talar till din lokala opinionsundersökningspunkt; den tecknar aldrig förfrågningar eller tar emot API-uppgifter.

checkout.php · lokala dialog tillgångar
// 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 öppnar dialogen över din befintliga sida. Stängning lämnar checkout synlig; Open betalning dialog knappen öppnar samma betalning.

Din backend verifierar ordern

Auktorisera den sparade referensen/token, fråga efter det lagrade MochiPay order_id och jämför det ursprungliga beloppet/valutan, tillgången/nätverket, adressen och det exakta betalningsbeloppet. Returnera endast en säker betalningsvy med decimalsträngar.

order.php · lokal valling endpoint
// 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.

Den fullständiga demo verifierar dessutom det mottagna beloppet för PAID. callback.php verifierar meddelanden och webbläsaren returnerar. En skärmdump, omdirigering eller webbläsarflagga är aldrig bevis på betalning.

Testa din betalningsintegration

Aktivera Sandbox under Handlarportalen → Betalningsläge. Behåll dina API-uppgifter, förfrågnings-URL:er, orderkontroller och aviseringshantering. Byt tillbaka till Live innan du tar emot riktiga betalningar.

Sandbox använder en demonstrations-QR och simulerade belopp, inte en mottagarplånbok eller kursnotering. Använd simuleringsknapparna i HPP eller den uppdaterade ON_SITE-dialogen. En lyckad simulerad betalning kan starta butikens normala orderhantering, så använd en testbutik.

Betalningsläge · Plugin nedladdningar

Autentisering

Varje API-förfrågan måste innehålla köpmannen API-nyckeln och en Base64-kodad HMAC-SHA256-signatur.

RubrikKravBeskrivning
X-Mochi-KeyJaDin handlare API nyckel.
X-Mochi-SignatureJaBase64-kodade HMAC-SHA256 signatur.
Content-TypePOST förfrågningarapplication/json
Håll din API-hemlighet på servern. Aldrig exponera det i webbläsaren JavaScript, mobila applikationer eller offentlig källkod.

Signatur

För att skapa ordning, underteckna exakt rå JSON kropp. För Query Order, underteckna den råa frågan sträng utan den ledande ?.

SIGNATURFORMEL
Base64(HMAC-SHA256(UTF8(signing_text), UTF8(api_secret)))

Stödda valutor

Order valuta priser köpet. Betalningsmetoden väljer det kryptovaluta- och blockchain-nätverk som används för att betala.

BESTÄLL VALUTA

28 stödda fiatvalutor

Använd en av dessa exakta ISO-koder i currency fältet.

USDEURGBPCAD AUDNZDJPYCNY HKDSGDCHFSEK NOKDKKPLNCZK HUFAEDSARINR IDRTHBMYRPHP KRWBRLMXNZAR
Crypto ORDER CURRENCIES

Cryptocurrency prissättning

Beställningar kan också prissättas direkt i dessa kryptovalutor.

USDTUSDCBTCETHSOLTRX
Betalningsmetoder

Stödda cryptocurrency och nätverkskombinationer

Skicka ett av dessa exakta värden i payment_method fältet.

USDT_TRC20USDT på TRON
USDC_ERC20USDC på Ethereum
BTC_BITCOINNative BTC på Bitcoin
ETH_ERC20Native ETH på Ethereum
SOL_SOLANANative SOL på Solana
TRX_TRONNative TRX på TRON
Konverteringsregel: Om beställningsvalutan och betalningstillgången är densamma använder MochiPay en andel av 1 utan konvertering. Annars tillämpas den lagrade växelkursen och köpmanmarkupen när ordern skapas. Visa aktuella referenskurser
OrdervärdeBetalningsmetodResultat
49.90 USDUSDT_TRC20Använder den lagrade USD → USDT-hastigheten och köpmanmarkupen.
100 EURBTC_BITCOINAnvänder den lagrade EUR → BTC-räntan och köpmanmarkupen.
25 USDCUSDC_ERC20Ingen omvandling. Växelkursen är 1.

Skapa order

Skapa en betalningsorder med en värd betalningsadress och de betalningsinstruktioner som behövs för ett gränssnitt på plats.

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

Begär parametrar

Beställ valuta och betalningsmetod är olika begrepp. amount och currency definiera köpmannens ursprungliga ordervärde. payment_method definierar kryptovalutan och blockchain-nätverket som kunden använder för att betala. Till exempel, 49.90 USD med USDT_TRC20 innebär att en USD-denominerad order betalas med det beräknade beloppet USDT på TRON-nätverket.

Varje ny kassa skapar en ny beställning, även när merchant_order_id upprepas.

En tidsgräns för skapande betyder inte misslyckande. Första frågan med request_id sparad innan den skapades.

Fråga en sparad request_id för att återställa ett osäkert resultat; merchant_order_id är endast en referens.

ParameterKravTyp / LängdBeskrivning
request_idValfritt, rekommenderatstring · 1–64Begäran identifierare du genererar och sparar innan du skapar en betalning. Återanvänd det för att fråga eller retry samma försök.
merchant_order_idJastring · 1–100Din butiks ordernummer är skiftlägeskänsligt och kan upprepas. Om flera betalningar matchar, fråga med request_id eller order_id istället.
amountJadecimal(28,8)Positivt original orderbelopp. Fiat använder normalt 2 decimaler; stödda kryptovalutor kan använda upp till 8.
currencyJastring · 1–20Original ordervalutakod. Det kan vara fiat, såsom USD eller EUR, eller kryptovaluta, till exempel USDT eller USDC.
payment_methodNejtillgång ≤20 + nätverk ≤30Betalning cryptocurrency och blockchain nätverk i ASSET_NETWORK format, såsom USDT_TRC20 eller USDC_ERC20.
unique_amount_directionNejUP eller DOWNRiktning som används för den lilla unika mängdjusteringen. Standarder till UP.
product_typeNejPHYSICAL eller DIGITAL_SERVICEOrdertyp som visas vid kassan. Standarder till DIGITAL_SERVICEFraktfält förblir valfria för båda typerna.
descriptionNejstring · 0–500Mänsklig läsbar orderbeskrivning.
product_infoNejJSON/string · nvarchar(max)Produkt, kundvagn eller anpassad metadata. Den fullständiga HTTP-förfrågan får inte överstiga 65 536 byte.
customer_emailNejstring · 0–255Kund e-postadress. När den levereras måste den vara en giltig e-postadress.
customer_phoneNejstring · 0–50Kundens telefonnummer.
first_nameNejstring · 0–100Kundens förnamn.
last_nameNejstring · 0–100Kundens efternamn.
companyNejstring · 0–200Kundföretag eller organisationsnamn.
countryNejstring · 0–100Kundland eller region.
stateNejstring · 0–100Kundstatus, provins eller region.
cityNejstring · 0–100Kundstad.
address1Nejstring · 0–500Primär kundadresslinje.
address2Nejstring · 0–500Ytterligare kundadress linje.
postal_codeNejstring · 0–30Kund post eller ZIP-kod.
notify_urlNejstring · 0–1000Absolut http:// eller https:// asynkron server meddelande URL. Endast offentliga destinationer är tillåtna; lokalhosta, privata / reserverade IPs och omdirigeringar blockeras.
redirect_urlNejstring · 0–1000Absolut kund returnera URL som används efter en framgångsrik betalning.
customer_ipNejIPv4/IPv6 · 0–45Kund IP levereras av köpmannen. MochiPay registrerar också API-begäran IP separat.

Om payment_method saknas, är tomt eller inte stöds öppnas HPP-valet. Värden som stöds behåller direktbetalning. Valet låses när QR-koden har skapats.

Begär exempel

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 # · Skapa 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 · Skapa 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.');
}
?>

Framgångsrespons

FältTyp / LängdBeskrivning
successbooleanSant när skapelsen lyckas.
order_idstring · 32MochiPay systemidentifierare. Förvara den med din lokala ordning.
merchant_order_idstring · ≤100Din ursprungliga merchant referens.
product_typestring · ≤20FYSISK eller DIGITAL_SERVICE.
statusstring · ≤20Nuvarande betalningsstatus.
amountdecimal(28,8)Ursprungligt orderbelopp; bevara decimal precision.
currencystring · ≤20Ursprunglig prissättning valuta.
base_pay_amountdecimal(28,8)Konverterat belopp före den unika justeringen.
unique_amount_deltadecimal(28,8)Signerad matchningsjustering.
unique_amount_directionstring · ≤10UP eller DOWN.
pay_amountdecimal(28,8)Exakt kedjemängd för att visa och skicka. Runda inte.
payment_methodstringVald tillgång/nätverk, t.ex. USDT_TRC20.
payment_addressstring · ≤255Ta emot adress för denna betalning och nätverk.
payment_urlstring · URLHPP URL. På platsen använder samma order instruktioner.
expires_atdatetimeUtgång i yyyy-MM-dd HH:mm:ss format.
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"
}

Fråga Beställning

Hämta en order som ägs av den autentiserade handlaren med exakt en orderidentifierare.

GET https://mochi.bz/api/v1/orders/query
FrågeparameterKravTyp / LängdBeskrivning
request_idVälj enstring · 1–64Begäran identifierare du genererar och sparar innan du skapar en betalning. Återanvänd det för att fråga eller retry samma försök.
order_idVälj enstring · 1–32Orderidentifieraren returneras av MochiPay efter betalningsskapande.
merchant_order_idVälj enstring · 1–100Din butiks ordernummer är skiftlägeskänsligt och kan upprepas. Om flera betalningar matchar, fråga med request_id eller order_id istället.

Ange endast en frågeidentifierare: request_id, order_id eller merchant_order_id.

  1. En tidsgräns för skapande betyder inte misslyckande. Första frågan med request_id sparad innan den skapades.
  2. Om frågan hittar en beställning, fortsätt den beställningen. Skapa inte en annan betalning.
  3. Försök endast skapa det ursprungliga igen när en verifierad fråga returnerar ORDER_NOT_FOUND med recovery_contract=request-id-v1. Återanvänd samma request_id och oförändrade kropp.
  4. Om verifieringen misslyckas eller resultatet är oklart, behåll den sparade begäran och fråga igen senare. Byt inte ut request_id.

Query Exempel

C # · Frågeställaren
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 · Frågeställaren
<?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.');
}
?>

Vid selection_required=true är payment_method och payment_address tomma och pay_amount är 0. Använd payment_url. order_id och tidsfristen ändras inte efter bekräftelsen.

Framgångsresponsfält

Frågan återvänder wallet_type och network separat; Skapa order returnerar deras kombinerade payment_methodJämför dem med den metod som sparas på din lokala ordning. Returnera endast nödvändiga betalningsfält till kundens webbläsare.

FältTyp / LängdBeskrivning
order_idstring · 32MochiPay orderidentifierare.
merchant_order_idstring · ≤100Din handlare order identifierare.
sourcestring · ≤20Orderkälla, såsom API.
descriptionstring · ≤500Orderbeskrivning.
product_typestring · ≤20PHYSICAL eller DIGITAL_SERVICE.
product_infoJSON/string/nullProdukt- eller kundvagnsinformation som tillhandahålls när beställningen skapades.
statusstring · ≤20Total orderbetalning status.
merchant_statusstring · ≤50Beställningsstatus för säljaren.
amountdecimal(28,8)Ursprungligt orderbelopp.
currencystring · ≤20Ursprunglig ordervaluta, såsom USD, EUR, USDT eller USDC.
base_pay_amountdecimal(28,8)Konverterat betalningsbelopp före den unika matchningsjusteringen.
unique_amount_deltadecimal(28,8)Litet signerat belopp som läggs till eller subtraheras från basbeloppet.
unique_amount_directionstring · ≤10UP eller DOWN.
pay_amountdecimal(28,8)Exakt cryptocurrency belopp som kunden måste betala.
received_amountdecimal(28,8)Cryptocurrency beloppet hittills.
manual_payment_acceptedBooleanSeparate authenticated proof of an operator acceptance; never infer it from PAID alone.
exchange_ratedecimal(38,18)Exchange-rate Snapshot används när ordern skapades.
rate_markup_percentdecimal(9,4)Merchant rate markup snapshot som används för ordern.
wallet_typestring · ≤20Betalningstillgång: USDT, USDC, BTC, ETH SOL eller TRX.
networkstring · ≤30Blockchain-nätverk, till exempel TRC20 eller ERC20.
payment_addressstring · ≤255Köpman mottagande adress vald för denna order.
tx_hashstring/null · ≤255Detekterade kund betalning transaktion hash.
confirmationsintegerNuvarande blockchain bekräftelse räkna.
customer_email … postal_codestring/nullValfria kund- och fraktfält som levereras vid orderskapande.
payment_urlstring · URLHPP checkout URL; on-site integrationer fråga samma order för status och betalning instruktioner.
expires_atdatetimeBeställ utgångstid.
paid_atdatetime/nullBetalning slutförande tid.
created_atdatetimeBeställ skapelsetid.
updated_atdatetimeSista orderuppdateringstid.

Kodexempel

PHP, Node.js, Python, C# / .NET Framework, Java, iOS Swift och Android Kotlin. En sparad betalning stöder ON_SITE och HPP.

PHP SDK på Packagist

Installera PHP SDK med kompositör.

Skapa och fråga beställningar från din PHP backend. Håll API-uppgifter på din server.

v1.0.2 · PHP 7.4+ · MIT

composer require mochipay/php-sdk:^1.0

Gratis nedladdningar. Prenumeration för levande betalningar.

Visa abonnemangsplaner

Välj källpaketet för din ansökan

En aktuell ZIP per språk eller mobil plattform. Engelska installationsanvisningar ingår. Native store plugins förblir separata och befintliga integrationer fortsätter att fungera.

SERVERDEMO · ON_SITE + HPP

PHP

7.0–8.4

Original PHP-rutter: order.php, checkout.php och callback.php

Ladda ner ZIP
SERVERDEMO · ON_SITE + HPP

Node.js

22+

Vanliga mobil / backend rutter

Ladda ner ZIP
SERVERDEMO · ON_SITE + HPP

Python

3.10+

Vanliga mobil / backend rutter

Ladda ner ZIP
SERVERDEMO · ON_SITE + HPP

C# / .NET Framework

4.6.1 / VS2019

Vanliga mobil / backend rutter

Ladda ner ZIP
SERVERDEMO · ON_SITE + HPP

Java

JDK17+

Vanliga mobil / backend rutter

Ladda ner ZIP
MOBILKÄLLA · ON_SITE + HPP

iOS Swift

iOS15+ / Xcode14+

Använd en gemensam backend; källprojektet

Ladda ner ZIP
MOBILKÄLLA · ON_SITE + HPP

Android Kotlin

API26+ / SDK35 / JDK17

Använd en gemensam backend; källprojektet

Ladda ner ZIP

Kör ett komplett backendflöde

  1. Konfigurera privata MochiPay-uppgifter, aktiva plånböcker, den offentliga HTTPS-uppringningen och ett oberoende staging-tillgångstoken. Servern äger demopriset; webbläsaren kan inte ersätta det.
  2. Skapa eller återställ med samma sparade request_id och oförändrade nyttolast. Exakt UTF-8-begäranbyte och kodade frågesträngar är HMAC-SHA256-signerade.
  3. Öppna den sparade ON_SITE-popupen eller HPP-omdirigeringen. Båda använder en betalningsorder. ON_SITE innehåller QR, kopieringskontroller och en väljare för tio språk.
  4. Bearbeta notify_url på servern och fråga om det sparade ID:t. De synkrona retur- och pollningsvägarna återanvänder samma binding/exact-amount-verifiering.
  5. Spela in det verifierade betalda tillståndet en gång. Byt ut staging-filbutiken och markören med din applikations autentiska ägande- och atomdatabasordningsuppdatering före produktionen.

PHP behåller sin ursprungliga order.php / checkout.php / callback.php flöde. De fyra nya backends exponerar de vanliga rutterna nedan för webbläsare och mobila kunder.

RuttAnsvar
POST /paymentsSkapa eller återställa ett serverprissatt objekt; request_id och payment_method; iscensättningsbärartoken.
GET /checkout?r=…&t=…&mode=ON_SITESaved-order handelslokal betalning popup.
GET /checkout?…&mode=HPP303 omdirigera efter bindning och destinationsvalidering.
GET /status?r=…&t=…Registrerad uppströmsfråga; minimal decimal-string betalning DTO.
POST /callback?r=…&t=…Asynkron verifiering och en gång betald markör.
GET /complete?r=…&t=…Verifierad synkron retur/resultatsida.

Mobil utcheckning utan mobila API hemligheter

Swift och Kotlin källprojekt använder någon av de fyra vanliga backends. Konfigurera endast din handlare HTTPS ursprung i appen. ON_SITE visar din lokala kassa i WKWebView eller Android WebView; HPP öppnar handlarens omdirigeringsrutt i en extern webbläsare. Appen kontrollerar backend igen när den är aktiv; att stänga appen stoppar aldrig serveraviseringar.

Den sparade begäran ID överlever retries/restarts. Interface och språkförändringar återanvänder samma ordning. Staging access token är separat från MochiPay-uppgifter; ersätta den med din applikations autentiserade användarsession.

Dessa är integrationskälla demos, inte inhemska betalning SDK eller app-butik godkännanden. Granska nuvarande Apple faktureringsregler och Google Play betalningspolicy för din produkt och målregion.

Verifiera innan du går live

Använd varje pakets README och TESTING.md. Lokala signerade fixturer täcker retries, bindande missmatchningar, obetalda stater och dubbla meddelanden. Native Xcode / Android Studio enhet acceptans och en liten riktig betalning fortfarande behöver din staging validering. Ingen ny MochiPay databastabell eller plugin ominstallation krävs.

Genomföra synkron avkastning och asynkrona meddelanden

Returer och meddelanden

Implementera HPP synkrona returer, HPP asynkrona meddelanden och ON_SITE asynkrona uppdateringar med en verifierare på serversidan.

Tre ingångspunkter. En verifierad orderuppdatering.

FlödeAPI fält / inträdeSyfte
HPP synkron returredirect_url · webbläsare GETVisa ett resultat efter signerad serverfråga. Kunden kanske aldrig kommer tillbaka.
HPP asynkron anmälannotify_url · POST till servernVerifiera och uppdatera den lokala ordern utan att förlita sig på webbläsaren.
ON_SITE asynkront meddelandeSamma notify_url · server POSTUppdatera den lokala ordern även om betalnings popup eller app är stängd.
ON_SITE statusdisplayWebbläsare/appundersökningar köpman/statusVisa ett minimalt resultat från samma backend-verifiering.

HPP: synkron webbläsaravkastning

När du skapar en betalning, spara redirect_url med den lokala beställningens kapacitet. Exemplet ställer in det på din HTTPS-handlare /complete?r=…&t=…. Efter hostad utcheckning återvänder webbläsaren hit. Ladda den sparade lokala beställningen, validera dess ägarskap/kapacitet och signera sedan Query Order med det sparade MochiPay order_id.

Visa PAID först efter det bindande och exakta mottagna beloppskortet. Annars visar vänta eller granska. En URL flagga, webbläsarmeddelande eller skärmdump är inte bevis på betalning. Callback-leverans kan inträffa före eller efter detta webbläsarbesök.

HPP och ON_SITE: asynkron serveravisering

Spara notify_url under skapandet; exemplen använder /callback?r=…&t=…. MochiPay POST här oberoende av kundens webbläsare. Behandla inkommande fält som opålitliga uppslagstips. Fråga det autentiserade API:t och jämför sparat ID, referens, originalbelopp/valuta, tillgång/nätverk, adress och exakt betalningsbelopp.

Kräv PAID, positiva förväntat/mottaget-belopp och antingen exakt likhet eller strikt boolesk manual_payment_accepted=true från den autentiserade frågan. Atomiskt registrera den verifierade lokala betalningen en gång; upprepade verifierade meddelanden returnerar OK utan att uppdatera eller leverera två gånger. Obekräftade tillstånd, ogiltiga bindningar och uppströmstjänst/lagring-fel får inte erkännas som en framgångsrik betalning.

Demos består av en paid_verified-markör endast en gång. Ersätt den med en transaktion i din egen orderdatabas; det uppfyller inte varor. Enbart en callback-kropp utlöser aldrig en orderuppdatering.

ON_SITE: asynkrona uppdateringar och popup-polling

ON_SITE ställer in samma notify_url, så betalningsverifieringen fortsätter när popup-fönstret stängs eller appen går offline. Popupen omröstningar endast din autentiserade backend med 15-sekunders intervall medan den är synlig. Dess backend frågar MochiPay och returnerar en liten betalnings-DTO med decimalsträngsbelopp. PAID-skärmen använder samma verifierare som återuppringningen; ingen API hemlighet eller fullständigt kundsvar kommer in i webbläsaren.

Stängning, återöppning eller ändring av ON_SITE/HPP återanvänder en sparad betalning. Behåll request_id och den exakta nyttolasten efter en timeout; att ändra referensen kan skapa en oönskad ytterligare beställning.

Körbar kod i varje backendpaket

Varje exempel inkluderar både presentationsgrenar, meddelandehanterare, retursida, säker statusslutpunkt och varaktiga stegvis försök. API-fälten är notify_url och redirect_url; kassaläget är en lokal preferens, inte ett Skapa order-fält.

Node.js · verifiering, retur och anmälan

Utdrag från det runnable paketet. Ruttvariabler och lagringshjälpare definieras i hela källan; klistra in hela integrationen snarare än dessa linjer ensam.

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 · verifiering, retur och anmälan

Utdrag från det runnable paketet. Ruttvariabler och lagringshjälpare definieras i hela källan; klistra in hela integrationen snarare än dessa linjer ensam.

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 Framework · verifiering, retur och anmälan

Utdrag från det runnable paketet. Ruttvariabler och lagringshjälpare definieras i hela källan; klistra in hela integrationen snarare än dessa linjer ensam.

        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 verifiering, retur och meddelande

Utdrag från det runnable paketet. Ruttvariabler och lagringshjälpare definieras i hela källan; klistra in hela integrationen snarare än dessa linjer ensam.

    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 · verifiering, retur och anmälan

Utdrag från det runnable paketet. Ruttvariabler och lagringshjälpare definieras i hela källan; klistra in hela integrationen snarare än dessa linjer ensam.

    // 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']);
}
Ladda ner kompletta exempel

Fel svar

Fel returnerar en HTTP statuskod och ett stabilt maskinläsbart meddelande.

JSON
{ "success": false, "message": "INVALID_SIGNATURE" }
HTTPMeddelandeBeskrivning
400INVALID_JSON / INVALID_AMOUNTBegär data är ogiltig.
400CURRENCY_REQUIRED / CURRENCY_TOO_LONGBegär data är ogiltig.
400INVALID_UNIQUE_AMOUNT_DIRECTION / INVALID_PRODUCT_TYPERiktningen eller produkttypvärdet stöds inte.
400FIELD_TOO_LONG / INVALID_REDIRECT_URL / INVALID_NOTIFY_URLEtt valfritt fält överstiger dess gräns eller en levererad URL är ogiltig.
400ORDER_ID_REQUIRED / ORDER_IDENTIFIER_CONFLICTQuery identifierare saknas eller motsäger sig.
401INVALID_API_KEY / INVALID_SIGNATUREAutentisering misslyckades.
403SUBSCRIPTION_REQUIRED / SUBSCRIPTION_EXPIREDHandelsabonnemang är inte tillgängligt.
403MERCHANT_DISABLEDHandelskonto är inaktiverat.
404ORDER_NOT_FOUNDIngen matchande köpman ägd order hittades.
500SYSTEM_ERRORBegäran kunde inte slutföras.

Klassisk SaaS-integrering

HPP-endast kompatibilitet för Shopyy / Shopoem, Shoplus, Wooshoppaas och Fecify. Ingen plugin nedladdning eller SaaS källkod förändring krävs.

Läge 1: fast valuta och nätverk

Med /{PaymentMethod} går kunden direkt till QR-betalningssidan för den valutan och det nätverket.

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

Läge 2: välj i kassan

Kunden väljer betalningsvaluta och nätverk på MochiPay innan QR-koden skapas.

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

Båda lägena använder samma POST-parametrar, svarsformat och återanropsflöde.

Använd API-nyckeln, aldrig API-hemligheten, i den här webbadressen.

Stödda plattformar

Shopyy / ShopoemSamma företag och kompatibel gateway format
ShoplusKonfigurera betalningsgränssnittet URL
WooshoppaasKonfigurera betalningsgränssnittet URL
FecifyKonfigurera betalningsgränssnittet URL

Inställning

  1. Kopiera säljarens API-nyckel från MochiPay-handlarens instrumentpanel.
  2. Klistra in den färdiga webbadressen i SaaS betalningsgateways gränssnitt eller skicka in URL-inställning.
  3. Håll SaaS-plattformens befintliga POST-parametrar, returnera URL och meddela URL oförändrad.

URL-exempel

LEGACY BETALNINGSGRÄNSSNITT URL
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

Betalningsmetoder

USDT_TRC20USDT på TRON
USDC_ERC20USDC på Ethereum
BTC_BITCOINNative BTC på Bitcoin
ETH_ERC20Native ETH på Ethereum
SOL_SOLANANative SOL på Solana
TRX_TRONNative TRX på TRON

Krävda äldre fält

ParameterSyfte
merchant_urlOriginal SaaS butiksvärde, bevarat i fullständig förfrågan rekord för diagnostik.
system_nameBefintlig SaaS-plattformsidentifierare, bevarad i fullständig förfrågan.
account_type / payment_modeHåll plattformens befintliga värden, normalt live och sale.
orders_idOriginal SaaS orderidentifierare.
amount / currencyUrsprungligt orderbelopp och valuta.
return_urlKund returnera URL efter bekräftad betalning.
notify_urlServermeddelande URL för den slutförda betalningen.
securityTokenValfritt genomgående token återvände oförändrad.
productsValfri produkt eller kundvagnsdata.
customer_*Befintlig kund, adress, IP och användaragentfält.

Skapa-order svar

Den befintliga SaaS-integrationen extraherar den värderade kassan URL från den tredelade vanlig textresponsen.

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

Framgångsrika retur- och anmälningsfält

FältVärde
securityTokenDet ursprungliga genomgångsvärdet.
paymentMethodonlinepay
paymentStatusCompleted
paymentTransactionDen bekräftade blockchain transaktion hash.
paymentCommentsMochiPay payment confirmed
orderIDDen ursprungliga SaaS orders_id.

E-handel Plugin nedladdningar

Lägg till MochiPay till din oberoende butik med en plattformsspecifik förlängning. Välj din plattform och version gren nedan. Var och en av 19 nedladdningar är en oberoende ZIP med engelska instruktioner och PHP-krav inuti. Använd PHP-miljön tillåten av din exakta butiksrelease.

PÅ PLATS + HPP

WooCommerce

Classic Checkout, Checkout Blocks och HPOS.

PlattformWooCommerce 5.8 eller senare med den inhemska gateway API
PHPPHP 7.4–8.4

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

OpenCart 2.0–2.2

Tidiga betalningsvägar och versionsspecifika mallvägar.

PlattformOpenCart 2.0.x-2.2.x
PHPPHP 5.6–7.4; nyare PHP behöver kärnfläckar

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

OpenCart 2.3

Den separata 2,3 förlängning/betalningsstrukturen.

PlattformOpenCart 2.3.x
PHPPHP 5.6–7.4; nyare PHP behöver kärnfläckar

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

OpenCart 3

Twig vyer och den infödda OpenCart 3 betalning gateway.

PlattformOpenCart 3.0.x
PHPPHP 5.6–8.4; exakta kärn-/beroendekrav gäller

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

OpenCart 4

Native 4.x namnrymder, rutter och förlängningsförpackningar.

PlattformOpenCart 4.0.2.x-4.1.x
PHPPHP 8.0.2–8.4; 4.1.0.4 kräver 8.1+

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

Zen Cart 1.5.3–1.5.7

Legacy definierar baserade språkfiler och inhemska statusinställningar.

PlattformZen Cart 1.5.3-1.5.7
PHPPHP 5.6–8.0, beroende på kärnversionen

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

Zen Cart 1.5.8–2.2

Moderna array-baserade språkfiler och inbyggda statusinställningar.

PlattformZen Cart 1.5.8 / 2.0.x / 2.1.x / 2.2.x
PHPPHP 7.3–8.4, beroende på kärnversionen

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

Magento 1 / OpenMage

Magento CE 1.9.3.0–1.9.4.5 och kompatibel OpenMage 19/20.

PlattformMagento CE 1.9.3.0-1.9.4.5; OpenMage 19/20 infödd M1 API
PHPPHP 5.6–8.4; PHP 8 kräver en kompatibel OpenMage-kärna

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

Magento 2

Magento Open Source 2.3.7–2.4.8 med inhemsk kassa.

PlattformMagento Open Source 2.3.7-2.4.8 med inbyggd kassa
PHPPHP 7.3–8.4, beroende på kärnversionen

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

PrestaShop 1.6

PrestaShop 1.6.1 betalningskrok och inlämningsformulär.

PlattformPrestaShop 1.6.1.x
PHPPHP 5.6–7.1

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

PrestaShop 1.7 / 8 / 9

PrestaShop 1.7.6–1.7.8, 8.x och 9.0.x betalningOptions.

PlattformPrestaShop 1.7.6-1.7.8 / 8.x / 9.0.x
PHPPHP 5.6–8.4, beroende på kärnversionen

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

Shopware 6.6

Separata inhemska hanterare för Shopware 6.6 och 6.7.

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

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

Shopware 6.7

Separata inhemska hanterare för Shopware 6.6 och 6.7.

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

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

Drupal Commerce

Native Commerce betalning gateway för de stödda Drupal och Commerce grenar.

PlattformKommers 2.40.x med Drupal 9.3-10.x; eller Commerce 3.3.10+ <3.4 med 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, endast när den tillåts av den exakta Drupal-utgåvan

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

EC-CUBE 4.3

Native JPY checkout med EC-CUBE inköpsflödet.

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

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

Bagisto 2.3

Laravel-paket med inhemska order och fakturahantering.

PlattformBagisto >=2.3.0 <2.4.0
PHPPHP 8.2.x/8.3.x/8.4.x (tillfredsställer även butikens beroendelås)

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

Sylius 2.0

Native Payum checkout och Sylius betalning statliga maskin.

PlattformSylius >=2.0.0 <2.1.0 med PayumBundle 2.6+ / Payum 1.7-kompatibel kärna
PHPPHP 8.2.x/8.3.x/8.4.x (tillfredsställer även butikens beroendelås)

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

osCommerce 4.14

Native V4 betalningsmodul; separat från legacy osCommerce 2.x och 3.x.

PlattformosCommerce 4.14.x; infödd V4 orderBetalningsmodul API
PHPPHP 7.4.x-8.3.x, med förbehåll för den installerade osCommerce release och beroende lås

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide
PÅ PLATS + HPP

thirty bees 1.6

Inbyggd betalningsmodul och orderhistorik för thirty bees 1.6.

Plattformthirty bees >=1.6.0 <1.7.0
PHPPHP 7.4.x / 8.0.x / 8.1.x / 8.2.x / 8.3.x; använd den matchande thirty bees-distributionen

Engelska installationsanvisningar och den detaljerade PHP-tabellen finns i denna ZIP.

Ladda ner ZIPSetup guide

Nya adaptrar är initial integration bygger. Komplett installation och betalningsacceptans i din egen staging butik innan du aktiverar levande trafik.

Börja bygga med MochiPay

Skapa ett MochiPay-konto och välj den integrationsmetod som passar ditt betalningsflöde.

Kom igång