INDTÆGTER

API-udvikling

API-reference, backend- og mobileksempler og betalingsretur og -meddelelser på ét sted. PHP, Node.js, Python, C#, Java, iOS Swift og Android Kotlin understøtter ON_SITE og HPP.

REST API · CHECKOUT PRÆSENTATION

Én betalingsordre. Vælg ON_SITE eller HPP.

Opret ordren på din server, gem dens binding til din lokale ordre, og vælg derefter, hvordan kunden ser betalingen. Begge tilstande bruger den samme order_id.

Se HPP synkrone returneringer og ON_SITE/HPP asynkron meddelelseshåndtering, med PHP, Node.js, Python, C # og Java kode.

ON_SITE

Betalingsdialog i din udtjekning

Vis det nøjagtige beløb, adresse, netværk og QR i en dialog på dit eget domæne. Dine backend spørgsmål MochiPay og returnerer en sikker betaling visning.

Se indlejret HTML + PHP →
HPP

Omdiriger til MochiPay checkout

Din server omdirigerer kunden til payment_url. Efter betaling skal du bekræfte returneringen eller meddelelsen gennem autentificeret forespørgselsordre.

Se PHP omdirigerer →

De uddrag nedenfor kommer fra checkout.php og hjælpere bundtet i PHP Demo 1.1.4 (PHP 7.0- 8.4). Først oprette en ordre med order.php; dens resultat giver links til begge eksempler. Produktionsbutikkerne skal løse den godkendte lokale ordre fra deres session / database og fuldføre den gennem en idempotent transaktion.

Omdiriger efter serververifikation

HPP · PHP

Validér den gemte ordre bindende og destination, derefter sende den Placering header før nogen side output.

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 komplette fil indlæser det gemte forsøg og validerer dets token, autentificerede forespørgsel og forventede payment_url før denne gren.

Indlejrede dialogen på din egen side

ON_SITE · PHP + HTML

Inkludér de lokale dialogaktiver i din checkout HTML. Browseren taler til din lokale meningsmåling endpoint; det aldrig underskriver anmodninger eller modtager API legitimationsoplysninger.

checkout.php · lokale dialogaktiver
// 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 åbner dialogen over din eksisterende side. Lukning af den efterlader udtjekning synlig; knappen Åbn betalingsdialog åbner den samme betaling igen.

Din motor kontrollerer ordren

Godkend den gemte reference/token, forespørg efter den gemte MochiPay order_id, og sammenlign den originale beløb/valuta, aktiv/netværk, adresse og det nøjagtige beløb, der skal betales. Returner kun en sikker betalingsvisning med decimalstrenge.

order.php · lokalt afstemningsendepunkt
// 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 fulde demo desuden kontrollerer det modtagne beløb for betalt. callback.php kontrollerer meddelelser og browser vender tilbage. Et skærmaftryk, omdirigering eller browserflag er aldrig bevis for betaling.

Test din betalingsintegration

Aktivér Sandbox i forhandlerportalen → Betalingstilstand. Behold dine API-legitimationsoplysninger, forespørgsels-URL'er, kontrol via ordreforespørgsler og meddelelseshåndtering uændret. Skift tilbage til Live, før du modtager rigtige betalinger.

Sandbox bruger en demonstrations-QR og simulerede beløb, ikke en modtagerwallet eller et reelt pristilbud. Brug simuleringsknapperne i HPP eller den opdaterede ON_SITE-dialog. En simuleret vellykket betaling kan starte butikkens normale ordreafvikling, så brug en testbutik.

Betalingsmåde · Plugin- downloads

Godkendelse

Hver API anmodning skal omfatte købmand API-nøgle og en Base64- kodet HMAC- SHA256 underskrift.

HovederKrævetBeskrivelse
X-Mochi-KeyJaDin købmand API nøgle.
X-Mochi-SignatureJaBase64- kodet HMAC- SHA256 signatur.
Content-TypePORT- forespørgslerapplication/json
Hold din API hemmelig på serveren. Aldrig afsløre det i browser JavaScript, mobile applikationer eller offentlig kildekode.

Underskrift

For Create Order, underskrive den nøjagtige rå JSON krop. For Forespørgselsrækkefølge, underskrive den rå forespørgsel streng uden den førende ?.

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

Understøttede valutaer

Ordren valuta priser købet. Betalingsmetoden vælger cryptocurrency og blokkæden netværk, der bruges til at betale.

ORDRE VALUTAER

28 understøttede fiatvalutaer

Brug en af disse nøjagtige ISO-koder i currency felt.

USDEURGBPCAD AUDNZDJPYCNY HKDSGDCHFSEK NOKDKKPLNCZK HUFAEDSARINR IDRTHBMYRPHP KRWBRLMXNZAR
KRYPTO ORDER VALUTAER

Pris på Cryptocurrency

Ordrer kan også være prissat direkte i disse cryptocurrency.

USDTUSDCBTCETHSOLTRX
BETALINGSMETODER

Understøttede cryptocurrency - og netværkskombinationer

Send en af disse nøjagtige værdier i payment_method felt.

USDT_TRC20USDT på TRON
USDC_ERC20USDC på ethereum
BTC_BITCOINIndfødt BTC på Bitcoin
ETH_ERC20Indfødt ETH på ethereum
SOL_SOLANAIndfødt SOL på Solana
TRX_TRONIndfødt TRX på TRON
Omregningsregel: Hvis ordren valuta og betaling aktiv er den samme, MochiPay bruger en sats på 1 uden konvertering. Ellers anvendes den lagrede valutakurs og handelsavance, når ordren er oprettet. Vis aktuelle referencevalutakurser →
LøbenummerBetalingsmetodeResultat
49.90 USDUSDT_TRC20Anvender den lagrede USD → USDT sats og købmand markup.
100 EURBTC_BITCOINAnvender den lagrede EUR → BTC-sats og merchandise markup.
25 USDCUSDC_ERC20Ingen konvertering. Valutakursen er 1.

Opret ordre

Opret en betalingsordre med en hostet betalings URL og de betalingsinstrukser, der er nødvendige for en on-site grænseflade.

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

Parametre for anmodning

Ordrevaluta og betalingsmetode er forskellige begreber. amount og currency definere køberens oprindelige ordreværdi. payment_method definerer kryptocurrency og blokkæden netværk, der anvendes af kunden til at betale. For eksempel: 49.90 USD med USDT_TRC20 betyder, at en USD- denomineret ordre betales med det beregnede beløb af USDT på TRON-netværket.

Hver ny kasse opretter en ny ordre, selv når merchant_order_id gentager sig.

En oprettelsestimeout betyder ikke fejl. Første forespørgsel med request_id gemt før oprettelse.

Forespørg på en gemt request_id for at gendanne et usikkert resultat; merchant_order_id er kun en reference.

ParameterKrævetType / længdeBeskrivelse
request_idValgfrit, anbefaletstring · 1–64Den anmodning-id, du genererer og gemmer, før du opretter en betaling. Genbrug det til forespørgsel eller prøv igen det samme forsøg.
merchant_order_idJastring · 1–100Din butiks ordrenummer skelner mellem store og små bogstaver og kan gentages. Hvis flere betalinger matcher, forespørg med request_id eller order_id i stedet.
amountJadecimal(28,8)Positivt oprindeligt ordrebeløb. Fiat bruger normalt 2 decimaler; understøttede cryptocurrency kan bruge op til 8.
currencyJastring · 1–20Kode for oprindelig ordrevaluta. Det kan være fiat, såsom USD eller EUReller cryptocurrency, såsom USDT eller USDC.
payment_methodNejaktiv ≤ 20 + netværk ≤ 30Betaling cryptocurrency og blokkæden netværk i ASSET_NETWORK format, såsom USDT_TRC20 eller USDC_ERC20.
unique_amount_directionNejUP eller DOWNRetning brugt til den lille unikke beløb justering. Standard til UP.
product_typeNejPHYSICAL eller DIGITAL_SERVICEOrdretype vist ved udtjekning. Standard til DIGITAL_SERVICE. Shipping felter forbliver valgfri for begge typer.
descriptionNejstring · 0–500Beskrivelse af den menneskelige læsbare ordre.
product_infoNejJSON / string · nvarchar (max)Produkt, vogn eller brugerdefinerede metadata. Den komplette HTTP-anmodning må ikke overstige 65,536 bytes.
customer_emailNejstring · 0–255Kundens e-mailadresse. Når det leveres, skal det være en gyldig e-mail-adresse.
customer_phoneNejstring · 0–50Kundens telefonnummer.
first_nameNejstring · 0–100Kundens fornavn.
last_nameNejstring · 0–100Kundens efternavn.
companyNejstring · 0–200Kundefirma eller organisation navn.
countryNejstring · 0–100Kundeland eller -region.
stateNejstring · 0–100Kundetilstand, provins eller region.
cityNejstring · 0–100Kundebyen.
address1Nejstring · 0–500Primær kundeadresselinje.
address2Nejstring · 0–500Yderligere kundeadresselinje.
postal_codeNejstring · 0–30Kundepost- eller ZIP-kode.
notify_urlNejstring · 0–1000Absolut http:// eller https:// asynchronous server notification URL. Kun offentlige destinationer er tilladt; localhost, private / reserverede IP 'er og omdirigerede er blokeret.
redirect_urlNejstring · 0–1000Absolut kundereturwebadresse brugt efter en vellykket betaling.
customer_ipNejIPv4 / IPv6 · 0- 45KundeIP leveret af købmanden. MochiPay registrerer også API anmodning IP separat.

Hvis payment_method mangler, er tom eller ikke understøttes, åbnes HPP-valget. Understøttede værdier beholder direkte betaling. Valget låses efter oprettelse af QR.

Eksempel på anmodning

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

Successvar

FeltType / længdeBeskrivelse
successbooleanSandt, når skabelsen lykkes.
order_idstring · 32MochiPay-systemidentifikator. Gem det med din lokale ordre.
merchant_order_idstring · ≤100Din oprindelige handelsreference.
product_typestring · ≤20FYSISK eller DIGITAL_SERVICE.
statusstring · ≤20Nuværende betalingsstatus.
amountdecimal(28,8)Oprindelig ordre beløb; bevare decimalpræcision.
currencystring · ≤20Oprindelig prisfastsættelsesvaluta.
base_pay_amountdecimal(28,8)Omregnet beløb før den unikke justering.
unique_amount_deltadecimal(28,8)Underskrevet matchtilpasning.
unique_amount_directionstring · ≤10Op eller ned.
pay_amountdecimal(28,8)Præcis kædemængde at vise og sende. Må ikke runde.
payment_methodstringUdvalgt aktiv/netværk, f.eks. USDT_TRC20.
payment_addressstring · ≤255Modtager adresse til denne betaling og netværk.
payment_urlstring · URLHPP URL. På stedet bruger den samme ordre instruktioner.
expires_atdatetimeUdløbsdato i åååå-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"
}

Forespørgselsrækkefølge

Hent en ordre ejet af den godkendte forhandler ved hjælp af præcis én ordreidentifikator.

GET https://mochi.bz/api/v1/orders/query
Parameter for forespørgslerKrævetType / længdeBeskrivelse
request_idVælg enstring · 1–64Den anmodning-id, du genererer og gemmer, før du opretter en betaling. Genbrug det til forespørgsel eller prøv igen det samme forsøg.
order_idVælg enstring · 1–32Ordreidentifikatoren returneres af MochiPay efter oprettelse af betaling.
merchant_order_idVælg enstring · 1–100Din butiks ordrenummer skelner mellem store og små bogstaver og kan gentages. Hvis flere betalinger matcher, forespørg med request_id eller order_id i stedet.

Angiv kun én forespørgsels-id: request_id, order_id eller merchant_order_id.

  1. En oprettelsestimeout betyder ikke fejl. Første forespørgsel med request_id gemt før oprettelse.
  2. Hvis forespørgslen finder en ordre, skal du fortsætte denne ordre. Skab ikke endnu en betaling.
  3. Prøv kun den oprindelige oprettelse igen, når en bekræftet forespørgsel returnerer ORDER_NOT_FOUND med recovery_contract=request-id-v1. Genbrug den samme request_id og uændrede krop.
  4. Hvis verifikationen mislykkes, eller resultatet er uklart, behold den gemte anmodning og forespørg igen senere. Udskift ikke request_id.

Spørgeeksempler

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

Med selection_required=true er payment_method og payment_address tomme, og pay_amount er 0. Brug payment_url. order_id og fristen er uændrede efter bekræftelsen.

Felter for vellykket respons

Forespørgslen returnerer wallet_type og network separat; Opret ordre returnerer deres kombinerede payment_method. Sammenlign dem med den metode, der er gemt på din lokale ordre. Returnerer kun nødvendige betalingsfelter til kundebrowseren.

FeltType / længdeBeskrivelse
order_idstring · 32MochiPay ordreidentifikator.
merchant_order_idstring · ≤100Din handelsordre id.
sourcestring · ≤20Ordrekilde, såsom API.
descriptionstring · ≤500Ordrebeskrivelse.
product_typestring · ≤20PHYSICAL eller DIGITAL_SERVICE.
product_infoJSON / string / nullProdukt eller vogn oplysninger leveret, da ordren blev oprettet.
statusstring · ≤20Samlet ordrebetalingsstatus.
merchant_statusstring · ≤50Merchant-vender ordre status.
amountdecimal(28,8)Oprindeligt ordrebeløb.
currencystring · ≤20Oprindelig ordre valuta, såsom USD, EUR, USDT eller USDC.
base_pay_amountdecimal(28,8)Konverteret betalingsbeløb før den unikke matchtilpasning.
unique_amount_deltadecimal(28,8)Små underskrevne beløb tilføjet til eller fratrukket basisbeløbet.
unique_amount_directionstring · ≤10UP eller DOWN.
pay_amountdecimal(28,8)Præcis cryptocurrency beløb kunden skal betale.
received_amountdecimal(28,8)Cryptocurrency beløb modtaget indtil videre.
manual_payment_acceptedBooleanSeparate authenticated proof of an operator acceptance; never infer it from PAID alone.
exchange_ratedecimal(38,18)Change-rate snapshot bruges, når ordren blev oprettet.
rate_markup_percentdecimal(9,4)Salgsrente markup snapshot bruges til ordren.
wallet_typestring · ≤20Betalingsaktiv: USDT, USDC, BTC, ETH SOL eller TRX.
networkstring · ≤30Blokkæden netværk, såsom TRC20 eller ERC20.
payment_addressstring · ≤255Merchant modtageadresse valgt til denne ordre.
tx_hashstring/null · ≤255Fundet kunde betaling transaktion hash.
confirmationsintegerAktuel blokkæden bekræftelse tæller.
customer_email … postal_codestring/nullValgfri kunde og shipping felter leveres ved ordreoprettelsen.
payment_urlstring · URLHPP kasse URL; integrationer på stedet forespørger den samme ordre for status og betalingsinstruktioner.
expires_atdatetimeBestil udløbsdato.
paid_atdatetime/nullBetalingsfrist.
created_atdatetimeBestil skabelse tid.
updated_atdatetimeSidste ordre opdatering tid.

Eksempel på kode

PHP, Node.js, Python, C# / .NET Framework, Java, iOS Swift og Android Kotlin. Én gemt betaling understøtter ON_SITE og HPP.

PHP SDK på Pacsagist

Installer PHP SDK med komponist.

Opret og forespørg betalingsordrer fra din PHP-motor. Hold API legitimationsoplysninger på din server.

v1.0.2 · PHP 7.4+ · MIT

composer require mochipay/php-sdk:^1.0

Gratis downloads. Abonnement for direkte betalinger.

Vis abonnementsplaner

Vælg kildepakken til dit program

Et nuværende ZIP pr. sprog eller mobil platform. Engelsk opsætningsvejledning er inkluderet. Native butik plugins forbliver adskilt og eksisterende integreringer fortsætter med at virke.

SERVERDEMO · ON_SITE + HPP

PHP

7.0–8.4

Originale PHP ruter: order.php, checkout.php og callback.php

Hent ZIP
SERVERDEMO · ON_SITE + HPP

Node.js

22+

Fælles mobil- / backend-ruter

Hent ZIP
SERVERDEMO · ON_SITE + HPP

Python

3.10+

Fælles mobil- / backend-ruter

Hent ZIP
SERVERDEMO · ON_SITE + HPP

C# / .NET Framework

4.6.1 / VS2019

Fælles mobil- / backend-ruter

Hent ZIP
SERVERDEMO · ON_SITE + HPP

Java

JDK17+

Fælles mobil- / backend-ruter

Hent ZIP
MOBILKILDE · ON_SITE + HPP

iOS Swift

iOS15+ / Xcode14+

Brug én fælles motor; kun kildeprojekt

Hent ZIP
MOBILKILDE · ON_SITE + HPP

Android Kotlin

API26+ / SDK35 / JDK17

Brug én fælles motor; kun kildeprojekt

Hent ZIP

Kør en komplet backend flow

  1. Konfigurer private MochiPay legitimation, aktive tegnebøger, den offentlige HTTPS callback oprindelse og en uafhængig iscenesættelse adgang token. Serveren ejer demo-prisen; browseren kan ikke erstatte den.
  2. Opret eller gendan ved at bruge den samme gemte request_id og uændrede nyttelast. Præcise UTF-8-anmodningsbytes og kodede forespørgselsstrenge er HMAC-SHA256-signerede.
  3. Åbn den gemte ON_SITE popup eller HPP omdirigering. Begge bruger én betalingsordre. ON_SITE inkluderer QR, kopikontroller og en tisprogsvælger.
  4. Bearbejd notify_url på serveren, og forespørg igen på det gemte ID. De synkrone retur- og afstemningsruter genbruger den samme binding/exact-amount-verifikation.
  5. Optag den verificerede betalte stat en gang. Erstat iscenesættelse fil butik og markør med din ansøgning autentificeret ejerskab og atomic database ordre opdatering før produktionen.

PHP bevarer sin oprindelige order.php / checkout.php / callback.php flow. De fire nye backends afslører de fælles ruter nedenfor for browser og mobile kunder.

RuteAnsvar
POST /paymentsOpret eller gendan en vare til en serverpris; request_id og payment_method; iscenesættelsesbærertegn.
GET /checkout?r=…&t=…&mode=ON_SITESaved- order merchant- local payment popup.
GET /checkout?…&mode=HPP303 omdirigere efter bindende og destination validering.
GET /status?r=…&t=…Underskrevet opstrømsforespørgsel; minimal decimal- streng betaling DTO.
POST /callback?r=…&t=…Asynkron verifikation og kun én betalt markør.
GET /complete?r=…&t=…Verificerede synkrone retur- / resultatside.

Mobile checkout uden mobile API hemmeligheder

Swift og Kotlin kildeprojekter bruger en af de fire almindelige backends. Konfigurer kun din sælgers HTTPS oprindelse i appen. ON_SITE viser din lokale kasse i WKWebView eller Android WebView; HPP åbner forhandlerens omdirigeringsrute i en ekstern browser. Appen tjekker backend igen, når den er aktiv; lukning af appen stopper aldrig servermeddelelser.

Det gemte forespørgsels- ID overlever genforsøg / genstarter. Grænseflade og sprogændringer genbruger samme rækkefølge. Den iscenesættelse adgang token er adskilt fra MochiPay legitimationsoplysninger; erstatte det med din applikations autentificerede bruger session.

Disse er integrationskilde demoer, ikke indenlandske betaling SDK 'er eller app- store godkendelser. Gennemgang Regler for Apple fakturering og Google Play betalingspolitik til dit produkt og din målregion.

Verificér før du går live

Brug hver pakkes README og TESTING.md. Lokale underskrevne inventar dækker reles, bindende mismatch, ulønnede stater og duplikerede meddelelser. Native Xcode / Android Studio enhed accept og en lille reel betaling stadig har brug for din iscenesættelse validering. Ingen ny MochiPay database tabel eller plugin geninstallation er påkrævet.

Implementere synkrone returnering og asynkrone meddelelser →

Returnerer & meddelelser

Implementer HPP synkrone returneringer, HPP asynkrone meddelelser og ON_SITE asynkrone opdateringer med én server-side verifikator.

Tre indgange. En bekræftet ordreopdatering.

flowAPI-felt / indgangFormål
HPP synkront afkastredirect_url · GET i browserenVis et resultat efter signeret serverforespørgsel. Kunden vender måske aldrig tilbage.
HPP asynkron meddelelsenotify_url · POST til serverenVerificer og opdater den lokale ordre uden at stole på browseren.
ON_SITE asynkron meddelelseDen samme notify_url · server POSTOpdatér den lokale ordre, selv om betalingen popup eller app er lukket.
ON_SITE statusvisningBrowser / app meningsmålinger købmand / statusVis et minimalt resultat af samme backend verifikation.

HPP: synkront browserafkast

Når du opretter en betaling, skal du gemme redirect_url med den lokale ordres kapacitet. Eksemplet indstiller det til din HTTPS-forhandler /complete?r=…&t=…. Efter hostet kassen vender browseren tilbage hertil. Indlæs den gemte lokale ordre, valider dens ejerskab/kapacitet, og underskriv derefter forespørgselsordre ved hjælp af det gemte MochiPay order_id.

Vis kun betaling efter den bindende og nøjagtige modtaget beløb pass. Ellers vise vente eller gennemgang. Et URL-flag, browserbesked eller skærmaftryk er ikke bevis for betaling. Callback levering kan forekomme før eller efter dette browserbesøg.

HPP og ON_SITE: asynkron servermeddelelse

Gem notify_url under oprettelsen; eksemplerne bruger /callback?r=…&t=…. MochiPay poster her uafhængigt af kundens browser. Behandl indgående felter som upålidelige opslagstip. Forespørg på den godkendte API, og sammenlign det gemte id, reference, originalt beløb/valuta, aktiv/netværk, adresse og det nøjagtige beløb, der skal betales.

Kræv PAID, positive forventet/modtaget-beløb og enten nøjagtig lighed eller streng boolesk manual_payment_accepted=sand fra den godkendte forespørgsel. Atomisk registrere den verificerede lokale betaling én gang; gentagne bekræftede meddelelser returnerer OK uden at opdatere eller levere to gange. Ubekræftede tilstande, ugyldige bindinger og overordnet tjeneste/lagring-fejl må ikke anerkendes som en vellykket betaling.

Demoerne fortsætter som en enkelt gang paid_verified-markør. Erstat den med en transaktion i din egen ordredatabase; det opfylder ikke varer. En tilbagekaldstekst alene udløser aldrig en ordreopdatering.

ON_SITE: asynkrone opdateringer og popup-afstemning

ON_SITE indstiller den samme notify_url, så betalingsbekræftelsen fortsætter, når pop op-vinduet lukker, eller appen går offline. Popup-afstemningen afstemninger kun din autentificerede backend med 15-sekunders intervaller, mens den er synlig. Dens backend forespørger MochiPay og returnerer en lille betalings-DTO med decimalstrengsbeløb. PAID-skærmen bruger den samme verifikator som tilbagekaldet; ingen API-hemmelighed eller fuldstændig kundesvar kommer ind i browseren.

Lukning, genåbning eller ændring af ON_SITE/HPP genbruger én gemt betaling. Behold request_id og den nøjagtige oprettelsesnyttelast efter en timeout; ændring af referencen kan skabe en uønsket yderligere ordre.

Kode, der kan køres i hver rygsøjle

Hvert eksempel inkluderer både præsentationsgrene, notifikationshåndtering, returside, sikker statusslutpunkt og holdbare forsøg. API-felterne er notify_url og redirect_url; betalingstilstand er en lokal præference, ikke et felt for Opret ordre.

Kontrol, tilbagesendelse og anmeldelse

Uddrag fra den løbbare pakke. Route variabler og lagerhjælpere er defineret i den komplette kilde; indsætte den fulde integration snarere end disse linjer alene.

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))});
Kontrol, tilbagesendelse og anmeldelse

Uddrag fra den løbbare pakke. Route variabler og lagerhjælpere er defineret i den komplette kilde; indsætte den fulde integration snarere end disse linjer alene.

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 Rammer for kontrol, tilbagesendelse og anmeldelse

Uddrag fra den løbbare pakke. Route variabler og lagerhjælpere er defineret i den komplette kilde; indsætte den fulde integration snarere end disse linjer alene.

        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))}});
Kontrol, tilbagesendelse og anmeldelse

Uddrag fra den løbbare pakke. Route variabler og lagerhjælpere er defineret i den komplette kilde; indsætte den fulde integration snarere end disse linjer alene.

    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))));
Kontrol, tilbagesendelse og anmeldelse af PHP

Uddrag fra den løbbare pakke. Route variabler og lagerhjælpere er defineret i den komplette kilde; indsætte den fulde integration snarere end disse linjer alene.

    // 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']);
}
Download komplette eksempler

Fejlsvar

Fejl returnerer en HTTP-statuskode og en stabil maskinlæsbar meddelelse.

JSON
{ "success": false, "message": "INVALID_SIGNATURE" }
HTTPMeddelelseBeskrivelse
400INVALID_JSON / INVALID_AMOUNTAnmoder data er ugyldige.
400CURRENCY_REQUIRED / CURRENCY_TOO_LONGAnmoder data er ugyldige.
400INVALID_UNIQUE_AMOUNT_DIRECTION / INVALID_PRODUCT_TYPEDen retning eller produkt-type værdi er ikke understøttet.
400FIELD_TOO_LONG / INVALID_REDIRECT_URL / INVALID_NOTIFY_URLEt valgfrit felt overskrider grænsen, eller en leveret URL er ugyldig.
400ORDER_ID_REQUIRED / ORDER_IDENTIFIER_CONFLICTForespørgselsidentifikation mangler eller er modstridende.
401INVALID_API_KEY / INVALID_SIGNATUREGodkendelse mislykkedes.
403SUBSCRIPTION_REQUIRED / SUBSCRIPTION_EXPIREDHandelsabonnement er ikke tilgængeligt.
403MERCHANT_DISABLEDHandelskontoen er deaktiveret.
404ORDER_NOT_FOUNDDer blev ikke fundet nogen matchende handelsordre.
500SYSTEM_ERRORAnmodningen kunne ikke fuldføres.

Klassisk SaaS-integration

Kun HPP-kompatibilitet til Shopyy / Shopoem, Shoplus, Wooshoppaas og Fecify. Ingen plugin-download eller SaaS-kildekodeændring er påkrævet.

Tilstand 1: fast valuta og netværk

Med /{PaymentMethod} går kunden direkte til QR-betalingssiden for den valuta og det netværk.

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

Tilstand 2: vælg ved betaling

Kunden vælger betalingsvaluta og netværk på MochiPay, før QR-koden oprettes.

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

Begge tilstande bruger de samme POST-parametre, svarformat og tilbagekaldsforløb.

Brug API nøgle, aldrig API hemmelighed, i denne URL.

Understøttede platforme

Shopyy / ShopoemSamme virksomhed og kompatibelt gateway format
ShoplusIndstil betalingsgrænsefladeURL
WooshoppaasIndstil betalingsgrænsefladeURL
FecifyIndstil betalingsgrænsefladeURL

Opsætning

  1. Kopier handelsmand API nøgle fra MochiPay handelsmand instrumentbræt.
  2. Indsæt den udfyldte URL i SaaS betalingsgateways grænseflade eller send URL-indstilling.
  3. Hold SaaS-platformens eksisterende POST-parametre, returnér URL og notificer URL uændret.

URL-eksempler

LEGACY BETALING INTERFACE 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

Betalingsmetoder

USDT_TRC20USDT på TRON
USDC_ERC20USDC på ethereum
BTC_BITCOINIndfødt BTC på Bitcoin
ETH_ERC20Indfødt ETH på ethereum
SOL_SOLANAIndfødt SOL på Solana
TRX_TRONIndfødt TRX på TRON

Krævede ældre felter

ParameterFormål
merchant_urlOriginal SaaS butik værdi, bevaret i den komplette anmodning rekord for diagnostik.
system_nameEksisterende SaaS-platformsidentifikator, som opbevares i den fuldstændige anmodningsjournal.
account_type / payment_modeHold platformens eksisterende værdier, normalt live og sale.
orders_idOriginal SaaS ordreidentifikator.
amount / currencyOprindelig ordre beløb og valuta.
return_urlKunderetur- URL efter bekræftet betaling.
notify_urlServeranmeldelsesURL for den afsluttede betaling.
securityTokenValgfri pass through token returneres uændret.
productsValgfrit produkt eller indkøbskurv data.
customer_*Eksisterende kunde-, adresse-, IP- og brugeragentfelter.

Skaberens ordrerespons

Den eksisterende SaaS integration udtrækker den hostede checkout URL fra tredelt klartekst svar.

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

Felter for vellykket tilbagesendelse og anmeldelse

FeltVærdi
securityTokenDen oprindelige adgangsværdi.
paymentMethodonlinepay
paymentStatusCompleted
paymentTransactionDen bekræftede blokkæde transaktion hash.
paymentCommentsMochiPay payment confirmed
orderIDDen oprindelige SaaS orders_id.

E- commerce Plugin Downloads

Tilføj MochiPay til din uafhængige butik med en platformspecifik udvidelse. Vælg din platform og version gren nedenfor. Hver af de 19 downloads er en uafhængig ZIP med engelske instruktioner og PHP krav indeni. Brug PHP-miljøet tilladt ved din nøjagtige butik udgivelse.

ON- SITE + HPP

WooCommerce

Classic Checkout, Checkout Blocks og HPOS.

PlatformWooCommerce 5.8 eller senere med den indfødte gateway API
PHPPHP 7.4–8.4

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

OpenCart 2.0–2.2

Tidlig betaling ruter og version- specifikke skabelon stier.

PlatformOpenCart 2.0.x-2.2.x
PHPPHP 5.6-7.4; nyere PHP har brug for kernepatches

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

OpenCart 2.3

Den separate 2.3-udvidelses- / betalingsstruktur.

PlatformOpenCart 2.3.x
PHPPHP 5.6-7.4; nyere PHP har brug for kernepatches

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

OpenCart 3

Twig udsigt og den indfødte OpenCart 3 betaling gateway.

PlatformOpenCart 3.0.x
PHPPHP 5.6-8.4; der gælder eksakte krav til kerne / afhængighed

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

OpenCart 4

Indfødt 4.x navneraces, ruter og udvidelse emballage.

PlatformOpenCart 4.0.2.x-4.1.x
PHPPHP 8.0.2- 8.4; 4.1.0.4 kræver 8.1 +

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

Zen Cart 1.5.3–1.5.7

Legacy define-baserede sprogfiler og indfødte statusindstillinger.

PlatformZen Cart 1.5.3-1.5.7
PHPPHP 5.6-8.0, afhængigt af kernen version

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

Zen Cart 1.5.8–2.2

Moderne array- baserede sprogfiler og indfødte statusindstillinger.

PlatformZen Cart 1.5.8 / 2.0.x / 2.1.x / 2.2.x
PHPPHP 7.3-8.4, afhængigt af den centrale version

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

Magento 1 / OpenMage

Magento CE 1.9.3.0- 1.9.4.5 og kompatibel OpenMage 19 / 20.

PlatformMagento CE 1.9.3.0- 1.9.4.5; OpenMage 19 / 20 native M1 API
PHPPHP 5.6-8.4; PHP 8 kræver en kompatibel OpenMage kerne

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

Magento 2

Magento Open Source 2.3.7-2.4.8 med indfødt udtjekning.

PlatformMagento Open Source 2.3.7-2.4.8 ved hjælp af native checkout
PHPPHP 7.3-8.4, afhængigt af den centrale version

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

PrestaShop 1.6

PrestaShop 1.6.1 betalingskrog og indsende formular.

PlatformPrestaShop 1.6.1.x
PHPPHP 5.6–7.1

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

PrestaShop 1.7 / 8 / 9

PrestaShop 1.7.6- 1.7.8, 8.x og 9.0.x betalingsmuligheder.

PlatformPrestaShop 1.7.6-1.7.8 / 8.x / 9.0.x
PHPPHP 5.6-8.4, afhængigt af den centrale version

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

Shopware 6.6

Separate indfødte håndtere til Shopware 6.6 og 6.7.

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

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

Shopware 6.7

Separate indfødte håndtere til Shopware 6.6 og 6.7.

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

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

Drupal Commerce

Native Commerce betalingsgateway for de støttede Drupal og Commerce filialer.

PlatformHandel 2.40.x med Drupal 9.3-10.x; eller handel 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, kun når det er tilladt ved den nøjagtige Drupal frigivelse

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

EC-CUBE 4.3

Indfødt JPY-kasse med EC-CUBE-købsflowet.

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

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

Bagisto 2.3

Laravel pakke med indfødte ordrer og faktura håndtering.

PlatformBagisto >=2.3.0 <2.4.0
PHPPHP 8.2.x / 8.3.x / 8.4.x (opfylder også lagerafhængighedslås)

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

Sylius 2.0

Native Payum checkout og Sylius betaling stat maskine.

PlatformSylius > = 2.0.0 < 2.1.0 med PayumBundle 2.6 + / Payum 1.7- kompatibel kerne
PHPPHP 8.2.x / 8.3.x / 8.4.x (opfylder også lagerafhængighedslås)

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

osCommerce 4.14

Indfødt V4 betalingsmodul; adskilt fra arv osCommerce 2.x og 3.x.

PlatformosCommerce 4.14.x; native V4 orderPayment modul API
PHPPHP 7.4.x- 8.3.x, med forbehold af den installerede osCommerce frigivelse og afhængighedslås

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →
ON- SITE + HPP

thirty bees 1.6

Indbygget betalingsmodul og ordrehistorik for thirty bees 1.6.

Platformthirty bees >=1.6.0 <1.7.0
PHPPHP 7.4.x / 8.0.x / 8.1.x / 8.2.x / 8.3.x; brug den matchende thirty bees distribution

Engelsk installationsvejledning og den detaljerede PHP tabel er inde i denne ZIP.

Hent ZIPOpsætningsguide →

Nye adaptere er indledende integration bygger. Komplet installation og realbetaling accept i din egen iscenesættelse butik, før du aktiverer levende trafik.

Start bygning med MochiPay

Opret en MochiPay-konto og vælg den integrationsmetode, der passer til din betaling workflow.

Start