Sumber Daya Pembangunan

API Pengembangan

API referensi, backend dan contoh mobile, dan pengembalian pembayaran dan pemberitahuan di satu tempat. PHPUntuk Node.js Pythondan C#, Java, iOS Swift dan Android Kotlin dukungan ON_SITE dan HPP.

sisa API · Persembahan yang disiapkan

Satu pesanan pembayaran. Pilih ON_SITE atau HPP.

Buat pesanan di server Anda, simpan ikatan ke pesanan lokal Anda, kemudian pilih cara pelanggan melihat pembayaran. order_id.

Lihat HPP Sinkronisasi kembali dan ON_SITE/HPP Informasi AsynchronousDengan PHPUntuk Node.js PythonC# dan Java dengan kode.

ON_SITE

Dialog pembayaran di checkout Anda

Menunjukkan jumlah yang tepat, alamat, jaringan dan QR dalam dialog di domain Anda sendiri. pertanyaan backend Anda MochiPay dan mengembalikan pandangan pembayaran yang aman.

Menampilkan HTML + PHP →
HPP

Alihkan ke checkout MochiPay

Server Anda mengarahkan klien ke payment_urlSetelah pembayaran, verifikasi pengembalian atau pemberitahuan melalui Perintah Query yang terautentik.

Lihatlah yang PHP redirect →

Pesan-pesan di bawah ini berasal dari checkout.php dan pembantu-pembantu yang terikat dalam PHP Demo 1.1.4 (PHP 7.0–8.4Pertama-tama membuat pesanan dengan order.php; hasilnya memberikan tautan ke kedua contoh. toko produksi harus menyelesaikan pesanan lokal yang diberi izin dari sesi / database mereka dan menyelesaikannya melalui transaksi yang tidak berdaya.

Setelah verifikasi server

HPP · PHP

Validasi pengikat pesanan yang disimpan dan tujuan, kemudian kirim judul Lokasi sebelum output halaman apa pun.

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

Fail lengkap memuat percobaan yang disimpan dan mengevaluasi token, pertanyaan yang terauten dan diharapkan. payment_url sebelum cabang ini.

Masukkan dialog ke halaman Anda sendiri

ON_SITE · PHP + HTML

Include the local dialog assets in your checkout HTML. The browser talks to your local poll endpoint; it never signs requests or receives API credentials.

checkout.php · local dialog assets
// 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 opens the dialog over your existing page. Closing it leaves checkout visible; the Open payment dialog button reopens the same payment.

Anda akan mengkonfirmasi pesanan

Mengaktifkan referensi / token yang disimpan, pertanyaan oleh penyimpanan MochiPay order_id, dan membandingkan jumlah / mata uang asli, aset / jaringan, alamat dan jumlah yang dapat dibayar yang tepat.

order.php · local polling 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.

The full demo additionally verifies the received amount for PAID. callback.php verifies notifications and browser returns. A screenshot, redirect or browser flag is never proof of payment.

autentikasi

Setiap API Permintaan harus dimasukkan oleh pedagang. API Kunci dan dasar64Kode HMAC-SHA256 dengan tandatangan.

KepalawajibDeskripsi
X-Mochi-KeyYa Yapedagang Anda API Kunci yang
X-Mochi-SignatureYa YaBasis64Kode HMAC-SHA256 dengan tandatangan.
Content-TypePost Permintaanapplication/json
Tetaplah Anda API rahasia pada server. Jangan pernah menggunakannya di browser JavaScriptAplikasi mobile atau kode sumber publik.

Tanda tangan

Untuk membuat perintah, tandatangan yang tepat JSON Untuk Query Order, tandakan string pertanyaan mentah tanpa ledger ?.

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

Mata uang yang didukung

Metode pembayaran memilih cryptocurrency dan jaringan blockchain yang digunakan untuk membayar.

Perintah Kekerapan

28 Mata uang fiat yang didukung

Gunakan salah satu kode ISO yang tepat di currency Lapangan yang

USDEURGBPCAD AUDNZDJPYCNY HKDSGDCHFSEK NOKDKKPLNCZK HUFAEDSARINR IDRTHBMYRPHP KRWBRLMXNZAR
CRYPTO ORDER CURRENCIES

Harga Cryptocurrency

Pesanan juga dapat dibayarkan langsung dalam cryptocurrency ini.

USDTUSDCBTCETHSOL
Metode Pembayaran

Cryptocurrency dan kombinasi jaringan yang didukung

Mengirimkan salah satu nilai yang tepat di payment_method Lapangan yang

USDT_TRC20USDT pada TRON
USDC_ERC20USDC Untuk Ethereum
BTC_BITCOINOrang asli BTC Untuk Bitcoin
ETH_ERC20Orang asli ETH Untuk Ethereum
SOL_SOLANAOrang asli SOL di Solana
Peraturan Konversi : Jika mata uang pesanan dan aset pembayaran adalah sama, MochiPay Menggunakan tingkat yang 1 Jika tidak, kadar pertukaran yang disimpan dan markup pedagang akan diterapkan ketika pesanan dibuat. Lihat kadar pertukaran referensi saat ini
Order nilaiMetode pembayaranHasilnya
49.90 USDUSDT_TRC20Gunakan yang disimpan USD → USDT harga dan merek dagang.
100 EURBTC_BITCOINMenggunakan EUR yang disimpan BTC harga dan merek dagang.
25 USDCUSDC_ERC20Tidak ada konversi. kurs pertukaran adalah 1.

Buat pesanan

Buat pesanan pembayaran dengan URL pembayaran yang dihoskan dan instruksi pembayaran yang diperlukan untuk interaksi di situs.

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

Permintaan Parameter

Mata uang pesanan dan metode pembayaran adalah konsep yang berbeda. amount dan currency Menentukan nilai pesanan asli pedagang. payment_method menentukan cryptocurrency dan blockchain jaringan yang digunakan oleh pelanggan untuk membayar. 49.90 USD Dengan USDT_TRC20 Ini berarti bahwa a USDPembayaran dilakukan dengan jumlah yang dihitung dari USDT Pada yang TRON Jaringan yang

WEB82.3: authenticated create/query JSON advertises recovery_contract=merchant-reference-v1. Query an uncertain legacy reference first. Only 404 ORDER_NOT_FOUND with this contract allows replay of its unchanged reference/payload. Query errors and older servers do not authorize blind creation. Conflicting financial fields return MERCHANT_ORDER_ID_CONFLICT; historical duplicates return MERCHANT_ORDER_ID_AMBIGUOUS. Deploy the website API before the recovery plugins.

ParameterwajibJenis / PanjangDeskripsi
merchant_order_idYa YaString yang 1–100One unique, case-sensitive reference per purchase. On WEB82.3, repeating the same reference and financial fields reuses its unique invoice. A genuinely new purchase uses a different reference, even for the same buyer and amount. Optional request_id additionally binds the full creation payload.
amountYa YaKeterangan (28,8)Positive original order amount. Fiat normally uses 2 decimal places; supported cryptocurrencies may use up to 8.
currencyYa YaString yang 1–20Kode mata uang asli pesanan. itu dapat fiat, seperti USD atau EURatau cryptocurrency, seperti USDT atau USDC.
payment_methodYa YaAset ≤20 + jaringan ≤30Pembayaran cryptocurrency dan blockchain jaringan dalam ASSET_NETWORK format, seperti USDT_TRC20 atau USDC_ERC20.
unique_amount_directionTidakUP atau DOWNarah yang digunakan untuk penyesuaian jumlah kecil yang unik. UP.
product_typeTidakPHYSICAL atau DIGITAL_SERVICEJenis pesanan yang ditampilkan di check-out. defisit untuk DIGITAL_SERVICE. medan pengiriman tetap optional untuk kedua jenis.
descriptionTidakString yang 0–500deskripsi perintah yang dapat dibaca.
product_infoTidakJSON/string · nvarchar(max)Produk, kotak atau metadata yang disesuaikan. HTTP Permohonan tidak boleh melebihi 65,536 dan bytes.
customer_emailTidakString yang 0–255Alamat email pelanggan.Ketika disediakan, itu harus menjadi alamat email yang valid.
customer_phoneTidakString yang 0–50nomor telepon pelanggan.
first_nameTidakString yang 0–100Nama pelanggan pertama.
last_nameTidakString yang 0–100Nama pelanggan terakhir.
companyTidakString yang 0–200Nama perusahaan atau organisasi pelanggan.
countryTidakString yang 0–100Negara atau wilayah pelanggan.
stateTidakString yang 0–100Negara, wilayah atau wilayah pelanggan.
cityTidakString yang 0–100Kota pelanggan
address1TidakString yang 0–500alamat utama pelanggan.
address2TidakString yang 0–500Alamat pelanggan tambahan.
postal_codeTidakString yang 0–30Pesan Pesan atau ZIP dengan kode.
request_idTidakString yang 1–64Kunci retry pilihan, diselesaikan kepada pedagang Anda. menandatangani dengan JSON Menggunakan kunci yang sama dan beban setelah timout. Permintaan Deduplikasi.
notify_urlTidakString yang 0–1000Absolut http:// atau https:// asynchronous server notification URL. Only public destinations are allowed; localhost, private/reserved IPs and redirects are blocked.
redirect_urlTidakString yang 0–1000Absolute customer return URL yang digunakan setelah pembayaran yang sukses.
customer_ipTidakIPv4dan IPv6 · 0–45IP pelanggan yang disediakan oleh pedagang. MochiPay Juga mencatat bahwa API IP secara terpisah.

Permintaan Contoh

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# · Membuat perintah
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 · Membuat perintah
<?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 => false,
    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.');
}
?>

Jawaban yang sukses

LapanganJenis / PanjangDeskripsi
successBoleanSesungguhnya, ketika penciptaan itu berhasil.
order_idString yang 32MochiPay sistem identifier. menyimpannya dengan pesanan lokal Anda.
merchant_order_idKeterangan ≤100Referensi pembeli asli Anda.
product_typeKeterangan ≤20fisik atau DIGITAL_SERVICE.
statusKeterangan ≤20Status pembayaran saat ini.
amountKeterangan (28,8)Original order amount; preserve decimal precision.
currencyKeterangan ≤20harga mata uang asli.
base_pay_amountKeterangan (28,8)Mengubah jumlah sebelum penyesuaian unik.
unique_amount_deltaKeterangan (28,8)Menandatangani penyesuaian yang sesuai.
unique_amount_directionKeterangan ≤10naik atau turun.
pay_amountKeterangan (28,8)Jumlah rantai yang tepat untuk dipaparkan dan dikirimkan.Jangan bulat.
payment_methodStringProperti / jaringan yang dipilih, misalnya. USDT_TRC20.
payment_addressKeterangan ≤255Menerima alamat untuk pembayaran ini dan jaringan.
payment_urlString dan URLHPP URL. di situs menggunakan instruksi pesanan yang sama.
expires_attanggalPenundaan dalam format yyyy-MM-dd HH:mm:ss.
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"
}

Perintah Query

Mengembalikan pesanan yang dimiliki oleh pedagang yang terautentik menggunakan satu identifikasi pesanan.

GET https://mochi.bz/api/v1/orders/query
Perbedaan Query ParameterwajibJenis / PanjangDeskripsi
order_idSalah satu dari duaString yang 32MochiPay Identifikasi order
merchant_order_idSalah satu dari duaString yang 1–100Identifikasi pesanan pedagang Anda.Jika digunakan kembali, pesanan yang paling baru akan dikembalikan.
Penggunaan order_id once stored. After an uncertain Create response, query the same unique merchant reference before deciding what happened; on WEB82.3, its merchant-reference-v1 contract permits safe recovery with the same purchase reference and financial fields. Only authenticated404 ORDER_NOT_FOUND with this contract authorizes legacy replay; older servers and query errors do not. Send only one identifier. Sign the exact raw query string, for example merchant_order_id=ORDER-20260919-001.

Cari contoh

C# · Perintahkan
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 · Meminta pesanan
<?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 => false,
    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.');
}
?>

Bidang Respon Sukses

Pertanyaan kembali wallet_type dan network separately; Create Order returns their combined payment_methodBandingkan dengan metode yang disimpan pada pesanan lokal Anda. mengembalikan hanya medan pembayaran yang diperlukan ke browser pelanggan.

LapanganJenis / PanjangDeskripsi
order_idString yang 32MochiPay Identifikasi order
merchant_order_idKeterangan ≤100Identifikasi pesanan pedagang Anda.
sourceKeterangan ≤20sumber perintah, seperti API.
descriptionKeterangan ≤500Untuk deskripsi pesanan.
product_typeKeterangan ≤20PHYSICAL atau DIGITAL_SERVICE.
product_infoJSON/ String / NullProduk atau informasi kartu yang disampaikan ketika pesanan dibuat.
statusKeterangan ≤20Status pembayaran pesanan keseluruhan.
merchant_statusKeterangan ≤50Status perintah yang dihadapi oleh pedagang.
amountKeterangan (28,8)Jumlah pesanan asli.
currencyKeterangan ≤20Mata uang asli, seperti USD, EUR, USDT atau USDC.
base_pay_amountKeterangan (28,8)Jumlah pembayaran terkonversi sebelum penyesuaian yang unik.
unique_amount_deltaKeterangan (28,8)Jumlah kecil yang ditandatangani ditambahkan atau ditarik dari jumlah dasar.
unique_amount_directionKeterangan ≤10UP atau DOWN.
pay_amountKeterangan (28,8)Jumlah cryptocurrency yang tepat yang harus dibayar oleh pelanggan.
received_amountKeterangan (28,8)Jumlah cryptocurrency yang diterima sampai sekarang.
exchange_rateKeterangan (38,18)Tindakan pertukaran yang digunakan ketika pesanan dibuat.
rate_markup_percentKeterangan (9,4)Merchant rate markup snapshot yang digunakan untuk pesanan.
wallet_typeKeterangan ≤20Aset Pembayaran : USDT, USDC, BTC, ETH atau SOL.
networkKeterangan ≤30jaringan blockchain, seperti TRC20 atau ERC20.
payment_addressKeterangan ≤255Merchant menerima alamat yang dipilih untuk pesanan ini.
tx_hashString / null · ≤255Transaksi pembayaran pelanggan yang ditemui.
confirmationsIntegrasiPerhitungan pengesahan blockchain saat ini.
customer_email … postal_codeKeterangan / NullPelanggan pilihan dan lapangan pengiriman yang disediakan saat membuat pesanan.
payment_urlString dan URLHPP checkout URL; on-site integrations query the same order for status and payment instructions.
expires_attanggalPerintah waktu penundaan.
paid_atwaktu / nullwaktu penyelesaian pembayaran.
created_attanggalwaktu penciptaan yang teratur.
updated_attanggalWaktu update terakhir.

Contoh kode

PHPUntuk Node.js PythonC# dan .NET Framework Java, iOS Swift dan Android Kotlin1 Pembayaran yang disimpan ON_SITE dan HPP.

PHP SDK pada Packagist

Instalasi yang PHP SDK Dengan Composer.

Membuat dan meminta pesanan pembayaran dari Anda PHP Langkah-langkah yang harus dilakukan API Kode di server Anda.

v1.0.0 · PHP 7.4+ · MIT

composer require mochipay/php-sdk:^1.0

Download gratis. berlangganan untuk pembayaran langsung.

Lihat rencana langganan

Pilih paket sumber untuk aplikasi Anda

Satu saat ini ZIP per bahasa atau platform mobile. instruksi setup bahasa Inggris dimasukkan. plugins toko asli tetap terpisah dan integrasi yang ada terus bekerja.

Pembuatan demo server ON_SITE + HPP

PHP

7.0–8.4

asli PHP Rute: order.php, checkout.php dan callback.php

Unduh ZIP
Pembuatan demo server ON_SITE + HPP

Node.js

22+

Rute mobile / backend umum

Unduh ZIP
Pembuatan demo server ON_SITE + HPP

Python

3.10+

Rute mobile / backend umum

Unduh ZIP
Pembuatan demo server ON_SITE + HPP

C# dan .NET Framework

4.6.1 / VS2019

Rute mobile / backend umum

Unduh ZIP
Pembuatan demo server ON_SITE + HPP

Java

JDK17+

Rute mobile / backend umum

Unduh ZIP
sumber mobil · ON_SITE + HPP

iOS Swift

iOS15+ / Xcode14+

Gunakan satu backend umum; proyek sumber hanya

Unduh ZIP
sumber mobil · ON_SITE + HPP

Android Kotlin

API26+ / SDK35 / JDK17

Gunakan satu backend umum; proyek sumber hanya

Unduh ZIP

Menggunakan Backend Flow

  1. Konfigurasi Privasi MochiPay Aktif, uang tunai aktif, publik HTTPS callback asal dan token akses yang terpisah. server memiliki harga demo; browser tidak dapat menggantikannya.
  2. Mencipta atau memulihkan menggunakan yang sama disimpan request_id dan beban yang tidak berubah. tepat UTF-8 byte permintaan dan string pertanyaan yang dikodkan adalah HMAC-SHA256 ditandatangani
  3. Membuka yang diselamatkan ON_SITE Popup atau HPP Kedua menggunakan satu pesanan pembayaran. ON_SITE termasuk QR, kontrol salinan dan selektor sepuluh bahasa.
  4. Proses notify_url pada server dan mengajukan kembali ID yang disimpan. rute pengembalian dan pencarian yang bersinkron menggunakan kembali verifikasi pengikat / tepat.
  5. Mengganti toko file dan penanda dengan pemilikan yang diidentifikasi aplikasi Anda dan pembaruan pesanan database atomik sebelum produksi.

PHP mengekalkan aliran order.php / checkout.php / callback.php asal. empat backend baru mengeksplorasi rute umum di bawah untuk browser dan klien mobile.

JalanTanggung jawab
POST / PembayaranMencipta atau memulihkan item dengan harga server; request_id dan payment_method• Menggunakan token pengangkut.
GET /checkout?r=…&t=…&mode=ON_SITEPerintah penyimpanan pembeli-lokal pembayaran popup.
GET /checkout?…&mode=HPP303 Setelah validasi dan validasi tujuan.
GET /status?r=…&t=…Menandatangani upstream query; minimal dekimal-string pembayaran DTO.
POST /callback?r=…&t=…Verifikasi asynchronous dan penanda yang hanya dibayar sekali.
GET /complete?r=…&t=…Halaman hasil / return synchronous.

Cek mobil tanpa ponsel API rahasia

Swift dan Kotlin sumber proyek menggunakan salah satu dari empat backend umum. mengkonfigurasi hanya pedagang Anda HTTPS berasal dari aplikasi. ON_SITE menunjukkan cek lokal Anda di WKWebView atau Android dengan WebView; HPP membuka jalur pengalihan pedagang dalam browser eksternal. aplikasi memeriksa backend lagi ketika aktif; menutup aplikasi tidak pernah menghentikan pemberitahuan server.

ID permintaan yang disimpan bertahan retries/restart. interface dan perubahan bahasa menggunakan ulang perintah yang sama. token akses berturut-turut terpisah dari MochiPay pengesahan; menggantikannya dengan sesi pengguna yang terautentikasi dari aplikasi Anda.

Ini adalah demo sumber integrasi, bukan SDK pembayaran asli atau kelulusan App Store. Peraturan Akuntansi Apple dan Kebijakan Pembayaran Google Play untuk produk dan wilayah sasaran Anda.

Periksa sebelum hidup

Gunakan setiap paket README dan TESTING.md. tempatan ditandatangani pengaturan mencakup retries, ketidaksesuaian wajib, status yang tidak dibayar dan pemberitahuan duplikat.Android Aksepsi perangkat studio dan pembayaran nyata yang kecil masih membutuhkan validasi peringkat Anda. MochiPay Database tab atau plugin perlu dipasang kembali.

Mengimplementasikan pengembalian sinkron dan pemberitahuan asinkron

Pengembalian dan notifikasi

implementasi HPP Pengembalian Synchronous HPP Notifikasi asinkron dan ON_SITE Update asinkron dengan satu verifier server-side.

Tiga titik masuk. satu update pesanan yang disahkan.

aliranAPI Lapangan / entryTujuan
HPP Kembali Sinkronredirect_url · Browser dapatMenampilkan hasil setelah menandatangani pertanyaan server. klien mungkin tidak pernah kembali.
HPP Informasi Asynchronousnotify_url • POST serverPeriksa dan update pesanan lokal tanpa bergantung pada browser.
ON_SITE Informasi Asynchronousyang sama notify_url • POST serverMengemas kini pesanan lokal bahkan jika popup pembayaran atau aplikasi ditutup.
ON_SITE Status PameranBrowser/app survei merchant / statusMenunjukkan hasil minimal dari verifikasi latar belakang yang sama.

HPPTag: pengembalian browser synchronic

Ketika membuat pembayaran, simpan redirect_url dengan kapasitas perintah lokal. contohnya menetapkan itu kepada HTTPS merchant /complete?r=...&t=....Selepas check-out yang dihoskan, browser kembali ke sini.Larikan pesanan lokal yang disimpan, validasi pemilikan/kapasitasnya, kemudian tandakan Pesanan Query menggunakan pesanan yang disimpan MochiPay order_id.

Tampilkan PAID hanya setelah lulus jumlah yang wajib dan tepat yang diterima. Jika tidak, tampilan menunggu atau ulasan. Sebuah URL bendera, pesan browser atau screenshot tidak membuktikan pembayaran. Pengiriman panggilan balik dapat terjadi sebelum atau setelah kunjungan browser ini.

HPP dan ON_SITEInformasi Asynchronous Server

menyelamatkan notify_url dalam proses penciptaan; contoh menggunakan /callback?r=...&t=.... MochiPay POST di sini independen dari browser klien. memperlakukan medan masuk sebagai petunjuk pencarian yang tidak dipercaya. API dan membandingkan ID yang disimpan, referensi, jumlah / mata uang asli, aset / jaringan, alamat dan jumlah yang dapat dibayar.

Memerlukan biaya dan received_amount Sama dengan yang pay_amountAtomically record the verified local payment once; repeated verified notifications return OK without updating or delivering twice. status yang tidak disahkan, ikatan yang tidak sah dan upstream / penyimpanan kegagalan tidak harus diakui sebagai pembayaran yang sukses.

Demo yang satu-satu kali paid_verified menggantikan dengan transaksi di database pesanan Anda sendiri; tidak memenuhi barang. badan panggilan balik sendiri tidak pernah memicu pembaruan pesanan.

ON_SITE: update asynchronous dan popup polling

ON_SITE menetapkan hal yang sama notify_url, jadi verifikasi pembayaran berlanjut ketika popup ditutup atau aplikasi pergi offline. popup hanya menyiasat backend autentik Anda di15-interval kedua saat terlihat. pertanyaan latar belakangnya MochiPay dan mengembalikan pembayaran kecil DTO dengan jumlah yang sepuluh. paparan PAID menggunakan verifier yang sama dengan callback; tidak API Rahasia atau respon pelanggan penuh masuk ke browser.

Menutup, membuka atau mengubah ON_SITE/HPP Mengembalikan satu pembayaran disimpan.Retain request_id dan beban penciptaan yang tepat setelah timout; mengubah referensi dapat menciptakan pesanan tambahan yang tidak diinginkan.

Kode yang dapat diluncurkan di setiap paket backend

Setiap contoh termasuk kedua cabang presentasi, pengendali pemberitahuan, halaman pengembalian, titik akhir status yang aman dan percobaan yang berkelanjutan. API Lapangan adalah notify_url dan redirect_urlMode check-out adalah preferensi lokal, bukan medan Create Order.

Node.js · verifikasi, pengembalian dan pemberitahuan

Variabel rute dan pembantu penyimpanan ditakrifkan dalam sumber lengkap; menyikat integrasi penuh bukannya garis-garis ini sendiri.

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 · verifikasi, pengembalian dan pemberitahuan

Variabel rute dan pembantu penyimpanan ditakrifkan dalam sumber lengkap; menyikat integrasi penuh bukannya garis-garis ini sendiri.

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 · verifikasi, pengembalian dan pemberitahuan

Variabel rute dan pembantu penyimpanan ditakrifkan dalam sumber lengkap; menyikat integrasi penuh bukannya garis-garis ini sendiri.

        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 · verifikasi, pengembalian dan pemberitahuan

Variabel rute dan pembantu penyimpanan ditakrifkan dalam sumber lengkap; menyikat integrasi penuh bukannya garis-garis ini sendiri.

    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 · verifikasi, pengembalian dan pemberitahuan

Variabel rute dan pembantu penyimpanan ditakrifkan dalam sumber lengkap; menyikat integrasi penuh bukannya garis-garis ini sendiri.

    // 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 (!isset($order['received_amount']) || MochiPayPortable::decimal($order['received_amount']) !== MochiPayPortable::decimal($order['pay_amount'])) 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 contoh lengkap

Jawaban yang salah

Kesalahan Kembalikan HTTP kode status dan pesan yang stabil yang dapat dibaca mesin.

JSON
{ "success": false, "message": "INVALID_SIGNATURE" }
HTTPpesanDeskripsi
400INVALID_JSON / INVALID_AMOUNTData permintaan tidak sah.
400INVALID_CURRENCY / INVALID_PAYMENT_METHODMata uang atau metode pembayaran tidak didukung.
400INVALID_UNIQUE_AMOUNT_DIRECTION / INVALID_PRODUCT_TYPENilai arah atau jenis produk tidak didukung.
400FIELD_TOO_LONG / INVALID_REDIRECT_URL / INVALID_NOTIFY_URLSebuah medan pilihan melebihi batasnya atau URL yang disediakan tidak sah.
400ORDER_ID_REQUIRED / ORDER_IDENTIFIER_CONFLICTIdentifikasi Query hilang atau berkonflik.
401INVALID_API_KEY / INVALID_SIGNATUREAuthentication gagal.
403SUBSCRIPTION_REQUIRED / SUBSCRIPTION_EXPIREDSubscription tidak tersedia.
403MERCHANT_DISABLEDAkun pedagang disabilitas.
404ORDER_NOT_FOUNDTidak ditemukan pesanan yang sesuai dengan pemegang saham.
500SYSTEM_ERRORPermintaan tersebut tidak dapat dipenuhi.

Integrasi Perdagangan Legacy SaaS

HPP-kompatibilitas hanya untuk Shopyy / Shopoem, Shoplus, Wooshoppaas dan Fecify. tidak perlu download plugin atau perubahan kode sumber SaaS.

POST https://mochi.bz/api/v/orders/legacy_create/{MerchantApiKey}/{PaymentMethod}
Gunakan yang API kunci, tidak pernah API Dalam URL ini. URL mengidentifikasi pedagang dan metode pembayaran. platform SaaS terus mengirimkan yang ada application/x-www-form-urlencoded Lapangan perintah

Platform yang didukung

Shopyy / ShopoemPerusahaan yang sama dan format gateway yang kompatibel
ShoplusMengkonfigurasi antara muka pembayaran URL
WooshoppaasMengkonfigurasi antara muka pembayaran URL
FecifyMengkonfigurasi antara muka pembayaran URL

Setup

  1. Copy dari pedagang API Kunci dari MochiPay Pemasaran dashboard
  2. Pilih salah satu metode pembayaran yang didukung untuk opsi pembayaran SaaS ini.
  3. Penggantian {MerchantApiKey} dan {PaymentMethod} di akhir URL.
  4. Masukkan URL lengkap ke antara muka gateway pembayaran SaaS atau kirim pengaturan URL.
  5. Simpan parameter POST yang ada di platform SaaS, kembalikan URL dan beri tahu URL tidak berubah.

Contoh URL

Interface Pembayaran 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

Metode Pembayaran

USDT_TRC20USDT pada TRON
USDC_ERC20USDC Untuk Ethereum
BTC_BITCOINOrang asli BTC Untuk Bitcoin
ETH_ERC20Orang asli ETH Untuk Ethereum
SOL_SOLANAOrang asli SOL di Solana

Warisan yang dibutuhkan

ParameterTujuan
merchant_urlNilai toko SaaS asli, disimpan dalam catatan permintaan lengkap untuk diagnosis.
system_nameIdentifikasi platform SaaS yang ada, disimpan dalam catatan permintaan lengkap.
account_type / payment_modeMenjaga nilai-nilai yang ada di platform, normal live dan sale.
orders_idIdentifikasi Order SaaS.
amount / currencyJumlah pesanan dan mata uang asli.
return_urlURL pengembalian setelah pembayaran yang disahkan.
notify_urlURL pemberitahuan server untuk pembayaran selesai.
securityTokenOptional matchhrough token kembali tak berubah.
productsData produk atau kartu pilihan.
customer_*Pelanggan yang ada, alamat, IP dan user-agent fields.

Respon order yang dibuat

Integrasi SaaS yang ada mengekstrak URL checkout yang dihoskan dari jawaban teks rata tiga bagian.

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

Bidang Pengembalian dan Notifikasi yang Sukses

LapanganNilai
securityTokenNilai asli yang sesuai.
paymentMethodonlinepay
paymentStatusCompleted
paymentTransactionHal ini dikonfirmasi oleh blockchain transaction hash.
paymentCommentsMochiPay payment confirmed
orderIDSaaS yang asli orders_id.

E-Commerce Plugin untuk Download

Tambahkan MochiPay ke toko independen Anda dengan ekstensi khusus platform. Pilih platform dan cabang versi Anda di bawah ini. 19 Download adalah independen ZIP dengan instruksi bahasa Inggris dan PHP Keterangan di dalam. gunakan PHP lingkungan yang diizinkan oleh pembebasan toko Anda yang tepat.

Situs + HPP

WooCommerce

Checkout Classic, Checkout Blocks dan HPOS.

PlatformWooCommerce 5.8 atau kemudian dengan pintu gerbang asli API
PHPPHP 7.4–8.4

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

OpenCart 2.0–2.2

Rute pembayaran awal dan laluan template spesifik versi.

PlatformOpenCart 2.0x -2.2x
PHPPHP 5.6–7.4· lebih baru PHP Memerlukan patch inti

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

OpenCart 2.3

yang terpisah 2.3 struktur pembayaran / pembiayaan.

PlatformOpenCart 2.3x
PHPPHP 5.6–7.4· lebih baru PHP Memerlukan patch inti

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

OpenCart 3

Pemandangan Twig dan Native OpenCart 3 Pinjaman gateway

PlatformOpenCart 3.0x
PHPPHP 5.6–8.4· Ketentuan inti / ketergantungan yang tepat berlaku

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

OpenCart 4

Orang asli 4.x nama ruang, rute dan pembungkusan ekspansi.

PlatformOpenCart 4.0.2x -4.1x
PHPPHP 8.0.2–8.4; 4.1.0.4 Menuntut 8.1+

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

Zen Cart 1.5.3–1.5.7

Legacy adalah file bahasa yang didasarkan pada definisi dan pengaturan status asli.

PlatformKartu Zen 1.5.3-1.5.7
PHPPHP 5.6–8.0Tergantung pada versi inti

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

Zen Cart 1.5.8–2.2

File bahasa berbasis array modern dan pengaturan status asli.

PlatformKartu Zen 1.5.8 / 2.0x / 2.1x / 2.2x
PHPPHP 7.3–8.4Tergantung pada versi inti

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

Magento 1 / OpenMage

Magento yang 1.9.3.0–1.9.4.5 Memiliki OpenMage yang kompatibel 19/20.

PlatformMagento yang 1.9.3.0-1.9.4.5· Pembukaan 19/20 Kelahiran M1 API
PHPPHP 5.6–8.4; PHP 8 Memerlukan OpenMage Core yang kompatibel

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

Magento 2

Magento sumber terbuka 2.3.7–2.4.8 dengan cek asli.

PlatformMagento sumber terbuka 2.3.7-2.4.8 Menggunakan Checkout asli
PHPPHP 7.3–8.4Tergantung pada versi inti

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

PrestaShop 1.6

dan yang PrestaShop 1.6.1 Pembayaran dan formulir penyerahan.

PlatformPrestaShop 1.6.1x
PHPPHP 5.6–7.1

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

PrestaShop 1.7 / 8 / 9

PrestaShop 1.7.6–1.7.8, 8x dan 9.0.x Pembayaran Opsi

PlatformPrestaShop 1.7.6-1.7.8 / 8x / 9.0x
PHPPHP 5.6–8.4Tergantung pada versi inti

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

Shopware 6.6

Pemilik Domestik yang terpisah Shopware 6.6 dan 6.7.

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

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

Shopware 6.7

Pemilik Domestik yang terpisah Shopware 6.6 dan 6.7.

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

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

Drupal Commerce

Pintu pembayaran Native Commerce untuk yang didukung Drupal dan cabang perdagangan.

PlatformCommerce 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.4Hanya jika diizinkan oleh yang tepat Drupal Pembebasan

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

EC-CUBE 4.3

JPY yang terdaftar dengan EC-CUBE Pembelian aliran

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

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

Bagisto 2.3

Paket Laravel dengan pesanan asli dan pemrosesan invoice.

PlatformBagisto >=2.3.0 <2.4.0
PHPPHP 8.2x / 8.3x / 8.4.x (juga memuaskan kunci dependensi toko)

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

Sylius 2.0

Cukai Payum dan Cukai Sylius mesin pembayaran negara.

PlatformSylius >=2.0.0 <2.1.0 with PayumBundle 2.6+ / Payum 1.7-compatible core
PHPPHP 8.2x / 8.3x / 8.4.x (juga memuaskan kunci dependensi toko)

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

osCommerce 4.14

Kelahiran V4 Modul pembayaran; terpisah dari warisan osCommerce 2x dan 3x yang

PlatformosCommerce 4.14.x; asli V4 Modul Pembayaran API
PHPPHP 7.4x -8.3.x, sesuai dengan yang terinstal osCommerce Pembebasan dan ketergantungan kunci

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan
Situs + HPP

thirty bees 1.6

Modul pembayaran asli dan sejarah pesanan untuk tiga puluh lebah 1.6.

Platformthirty bees >=1.6.0 <1.7.0
PHPPHP 7.4x / 8.0x / 8.1x / 8.2x / 8.3.x; gunakan distribusi yang sepadan dengan tiga puluh lebah

Instalasi bahasa Inggris dan detail PHP Jadual ini ada di dalam ZIP.

Unduh ZIPSetup Panduan

Adapter baru adalah bangunan integrasi awal. pemasangan lengkap dan penerimaan pembayaran nyata di toko tangga Anda sendiri sebelum memungkinkan lalu lintas langsung.

Mulai dengan membangun MochiPay

Mencipta A MochiPay akun dan pilih metode integrasi yang sesuai dengan aliran kerja pembayaran Anda.

Mulai