CÂU CHUYỆN

Phát triển ADI

Các ví dụ về tham chiếu, phụ trợ và di động của API cũng như các khoản trả lại và thông báo thanh toán ở cùng một nơi. PHP, Node.js, Python, C#, Java, iOS Swift và Android Kotlin hỗ trợ ON_SITE và HPP.

REST API · TRÌNH BÀY CHECKOUT

Một lệnh thanh toán. Chọn ON_SITE hoặc HPP.

Tạo đơn hàng trên máy chủ của bạn, lưu ràng buộc của đơn hàng đó vào đơn hàng địa phương của bạn, sau đó chọn cách khách hàng xem khoản thanh toán. Cả hai chế độ đều sử dụng cùng một order_id.

Xem Trả về đồng bộ HPP và xử lý thông báo không đồng bộ ON_SITE/HPPVới PHP, Node.js, Python, C# và mã Java.

ON_SITE

Hộp thoại thanh toán trong hóa đơn

Hiển thị số tiền, địa chỉ, mạng và QR chính xác trong hộp thoại trên tên miền của riêng bạn. Phần phụ trợ của bạn truy vấn MochiPay và trả về chế độ xem thanh toán an toàn.

Name
HPP

Chuyển hướng đến thanh toán MochiPay

Máy chủ của bạn chuyển hướng khách hàng đến payment_url. Sau khi thanh toán, hãy xác minh việc trả lại hoặc thông báo thông qua Lệnh truy vấn đã được xác thực.

Xem chuyển hướng PHP

Các đoạn trích bên dưới đến từ checkout.php và các trợ giúp đi kèm trong PHP Demo 1.1.4 (PHP 7.0–8.4). Đầu tiên tạo đơn hàng với order.php; kết quả của nó cung cấp liên kết đến cả hai ví dụ. Các cửa hàng sản xuất phải giải quyết đơn hàng địa phương được ủy quyền từ session/database của họ và hoàn thành đơn hàng đó thông qua giao dịch bình thường.

Name

HPP · PHP

Kiểm tra lại sự kết nối và đích đã lưu, rồi gửi địa điểm đầu trang đầu trước khi có trang nào xuất ra.

thanh tra.php ·HPP chi nhánh
// 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.

Tệp hoàn chỉnh tải lần thử đã lưu và xác thực mã thông báo, truy vấn đã xác thực và payment_url dự kiến ​​trước nhánh này.

Nhốt hộp thoại vào trang riêng của bạn

ON_SITE · PHP + HTML

Bao gồm tài sản thoại cục bộ trong HTML thanh toán của bạn. Trình duyệt nói chuyện với điểm bỏ phiếu của bạn; nó không bao giờ ra dấu yêu cầu hoặc nhận giấy ủy quyền cho máy tính xách tay.

Tài sản hộp thoại cục bộ
// 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>

trên trang đã có. Đóng nó để có thể nhìn thấy được; nút Mở hộp thoại thanh toán mở mở mở lại cùng một khoản thanh toán.

Name

Cho phép tham chiếu/mã thông báo đã lưu, truy vấn theo order_id MochiPay được lưu trữ và so sánh số tiền/tiền tệ, tài sản/mạng, địa chỉ và số tiền phải trả chính xác. Chỉ trả lại chế độ xem thanh toán an toàn với chuỗi thập phân.

Thứ tự.p· điểm bỏ phiếu cục bộ
// 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.

Bản chứng minh đầy đủ thêm xác nhận số tiền đã nhận được cho PAID. Gọi lại. Phiên bản thông báo và duyệt trở lại. Một ảnh chụp màn hình, chuyển tiếp hoặc cờ duyệt không bao giờ là bằng chứng của thanh toán.

Kiểm thử tích hợp thanh toán

Bật Sandbox trong Cổng người bán → Chế độ thanh toán. Giữ nguyên thông tin xác thực API, URL yêu cầu, bước kiểm tra qua truy vấn đơn hàng và cách xử lý thông báo. Chuyển lại Live trước khi nhận thanh toán thật.

Sandbox dùng QR minh họa và số tiền mô phỏng, không phải ví nhận hay báo giá thật. Sử dụng các nút mô phỏng trong HPP hoặc hộp thoại ON_SITE đã cập nhật. Thanh toán thành công được mô phỏng có thể kích hoạt quy trình xử lý đơn thông thường của cửa hàng, vì vậy hãy dùng cửa hàng thử nghiệm.

Chế độ trả tiền · Tải về

Xác thực

Mọi yêu cầu của ARI đều phải bao gồm chìa khóa của hãng buôn, và dấu hiệu của căn cứ 64 mã hóa HMAC-SHA256.

Đầu trangCần thiếtMô tả
X-Mochi-KeyCóChìa khóa thương gia của anh.
X-Mochi-SignatureCóCơ sở 64 mã hóa HMAC-SHA256.
Content-TypeCommentapplication/json
Giữ bí mật trên máy chủ. Không bao giờ phơi bày nó trong trình duyệt JavaScript, ứng dụng di động hay mã nguồn công cộng.

Chữ ký

Để tạo ra Trật tự, hãy ký vào cơ thể JSON. Để truy vấn Thứ tự, hãy ký chuỗi truy vấn thô mà không cần hướng dẫn ?.

NHỮNG BÀI HỌC
Base64(HMAC-SHA256(UTF8(signing_text), UTF8(api_secret)))

Tiền tệ được hỗ trợ

Lệnh giá tiền tệ mua hàng. Phương pháp thanh toán được chọn để mã hóa và chặn mạng lưới dùng để trả tiền.

NHỮNG CÂU CHUYỆN

28 tiền tệ được hỗ trợ

Dùng một trong những mã ISO chính xác trong currency cánh đồng.

USDEURGBPCAD AUDNZDJPYCNY HKDSGDCHFSEK NOKDKKPLNCZK HUFAEDSARINR IDRTHBMYRPHP KRWBRLMXNZAR
CRYPTO ORESRENES

Định giá tiền điện tử

Đơn đặt hàng cũng có thể được định giá trực tiếp bằng các loại tiền điện tử này.

USDTUSDCBTCETHSOLTRX
NHỮNG CÂU CHUYỆN

Hỗ trợ mã hoá và tổ hợp mạng

Gửi một trong những giá trị chính xác trong các payment_method cánh đồng.

USDT_TRC20USDT trên TRON
USDC_ERC20USDC trên Ethereum
BTC_BITCOINBTC gốc trên Bitcoin
ETH_ERC20ETH gốc trên Ethereum
SOL_SOLANASOL gốc trên Solana
TRX_TRONNgười bản địa TRX trên TRON
Quy tắc đảo ngược: Nếu loại tiền đặt hàng và tài sản thanh toán giống nhau, MochiPay sử dụng tỷ giá 1 mà không đổi đạo. Nếu không, tỷ lệ trao đổi được lưu trữ và số lượng thương gia được áp dụng khi trật tự được tạo ra. Xem tỷ lệ trao đổi tham khảo hiện tại
Giá trị Thứ tựPhương pháp thanh toánKết quả
49.90 USDUSDT_TRC20Sử dụng tỷ giá USD → USDT được lưu trữ và đánh dấu người bán.
100 EURBTC_BITCOINSử dụng tỷ giá EUR → BTC được lưu trữ và đánh dấu người bán.
25 USDCUSDC_ERC20Không cải đạo. Tỷ lệ trao đổi là 1.

Tạo đơn hàng

Tạo một thứ tự thanh toán với địa chỉ URL trả tiền được máy và hướng dẫn thanh toán cần thiết cho giao diện ở- chỗ.

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

Yêu cầu tham số

Thứ tự tiền tệ và phương pháp thanh toán là những khái niệm khác nhau. amount và currency Xác định giá trị thứ tự ban đầu của thương nhân. payment_method xác định mạng lưới tiền điện tử và chuỗi khối được khách hàng sử dụng để thanh toán. Ví dụ, 49.90 USD có USDT_TRC20 có nghĩa là một đơn đặt hàng có mệnh giá USD được thanh toán với số tiền USDT được tính toán trên mạng TRON.

Mỗi lần thanh toán mới sẽ tạo một đơn hàng mới, ngay cả khi merchant_order_id lặp lại.

Thời gian chờ tạo không có nghĩa là thất bại. Truy vấn đầu tiên với request_id được lưu trước khi tạo.

Truy vấn request_id đã lưu để khôi phục kết quả không chắc chắn; merchant_order_id chỉ mang tính chất tham khảo.

Tham sốCần thiếtKiểu/ Chiều dàiMô tả
request_idTùy chọn, đề nghịstring · 1–64Yêu cầu nhận diện bạn tạo và lưu trước khi tạo một thanh công. Dùng lại nó để truy vấn hoặc thử lại cùng một nỗ lực.
merchant_order_idCóstring · 1–100Số đơn đặt hàng của cửa hàng của bạn phân biệt chữ hoa chữ thường và có thể lặp lại. Nếu nhiều khoản thanh toán khớp nhau, thay vào đó hãy truy vấn bằng request_id hoặc order_id.
amountCódecimal(28,8)Số tiền đặt hàng ban đầu dương. Fiat thường sử dụng chữ số thập phân 2; tiền điện tử được hỗ trợ có thể sử dụng tối đa 8.
currencyCóstring · 1–20Thứ tự tiền tệ gốc. Nó có thể là bụi, như là USD hay EURhoặc tiền điện tử, chẳng hạn như USDT hay USDC.
payment_methodKhôngTài sản 20 + mạng 30Name ASSET_NETWORK Định dạng, như USDT_TRC20 hay USDC_ERC20.
unique_amount_directionKhôngUP hay DOWNHướng dùng cho việc điều chỉnh số lượng nhỏ độc nhất. Mặc định UP.
product_typeKhôngPHYSICAL hay DIGITAL_SERVICEKiểu yêu cầu được thể hiện tại thanh toán. Mặc định DIGITAL_SERVICECác cánh đồng vận chuyển vẫn còn tùy chọn cho cả hai loại.
descriptionKhôngstring · 0–500Mô tả trật tự đọc được của con người.
product_infoKhôngJSON/ string· nvarchar (max)Sản phẩm, xe đẩy hoặc siêu dữ liệu tùy chỉnh. Toàn bộ yêu cầu của HTTP không thể vượt quá 65.536 byte.
customer_emailKhôngstring · 0–255Địa chỉ email khách hàng. Khi được cung cấp, nó phải là một địa chỉ email hợp lệ.
customer_phoneKhôngstring · 0–50Số điện thoại khách hàng.
first_nameKhôngstring · 0–100Tên khách hàng.
last_nameKhôngstring · 0–100Họ khách hàng.
companyKhôngstring · 0–200Công ty khách hàng hoặc tên tổ chức.
countryKhôngstring · 0–100Một nước hay một vùng nào đó.
stateKhôngstring · 0–100Nhà nước, tỉnh lẻ hay khu vực.
cityKhôngstring · 0–100Thành phố khách hàng.
address1Khôngstring · 0–500Đường dây khách hàng chính.
address2Khôngstring · 0–500Địa chỉ khách hàng thêm.
postal_codeKhôngstring · 0–30Bưu điện khách hàng hoặc mã ZIP.
notify_urlKhôngstring · 0–1000Tuyệt đối http:// hay https:// Thông báo URL của máy phục vụ bàn. Chỉ có những điểm đến công cộng mới được phép; máy địa phương, địa chỉ IP cá nhân và địa điểm chuyển hướng bị chặn.
redirect_urlKhôngstring · 0–1000Khách hàng tuyệt đối trả lại URL được dùng sau khi thanh toán thành công.
customer_ipKhôngIPv4/IPv6· 0–45IP của khách hàng do người bán cung cấp. MochiPay cũng ghi riêng IP yêu cầu API.

Nếu payment_method thiếu, trống hoặc không được hỗ trợ, màn hình chọn HPP sẽ mở. Giá trị được hỗ trợ vẫn thanh toán trực tiếp. Lựa chọn bị khóa sau khi tạo QR.

Ví dụ yêu cầu

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 · TẠO ĐƠN HÀNG
<?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.');
}
?>

Đáp ứng thành công

TrườngKiểu/ Chiều dàiMô tả
successbooleanĐúng khi sự sáng tạo thành công.
order_idstring · 32Mã định danh hệ thống MochiPay. Lưu trữ nó với đơn đặt hàng địa phương của bạn.
merchant_order_idstring · ≤100Tài liệu tham khảo đầu tiên của anh.
product_typestring · ≤20VẬT LÝ hoặc DIGITAL_SERVICE.
statusstring · ≤20Trạng thái thanh toán hiện thời.
amountdecimal(28,8)Số thứ tự gốc; bảo tồn độ chính xác thập phân.
currencystring · ≤20Giá tiền gốc.
base_pay_amountdecimal(28,8)Chuyển đổi số lượng trước khi điều chỉnh duy nhất.
unique_amount_deltadecimal(28,8)Ký hợp đồng điều chỉnh.
unique_amount_directionstring · ≤10Lên hay xuống.
pay_amountdecimal(28,8)Phần mở rộng chuỗi để hiển thị và gửi. Đừng vòng lại.
payment_methodstringNội dung/mạng đã chọn, ví dụ: USDT_TRC20.
payment_addressstring · ≤255Nhận địa chỉ trả và mạng.
payment_urlstring · URLHPP URL. Tại chỗ sử dụng các hướng dẫn đặt hàng tương tự.
expires_atdatetimeHạn sử dụng theo định dạng yy-MM-dH:mm.
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"
}

Thứ tự truy vấn

Lấy một đơn đặt hàng của thương gia xác thực sử dụng chính xác một thứ tự nhận diện.

GET https://mochi.bz/api/v1/orders/query
Truy vấn tham sốCần thiếtKiểu/ Chiều dàiMô tả
request_idChọn mộtstring · 1–64Yêu cầu nhận diện bạn tạo và lưu trước khi tạo một thanh công. Dùng lại nó để truy vấn hoặc thử lại cùng một nỗ lực.
order_idChọn mộtstring · 1–32Mã nhận dạng đơn hàng được MochiPay trả về sau khi tạo thanh toán.
merchant_order_idChọn mộtstring · 1–100Số đơn đặt hàng của cửa hàng của bạn phân biệt chữ hoa chữ thường và có thể lặp lại. Nếu nhiều khoản thanh toán khớp nhau, thay vào đó hãy truy vấn bằng request_id hoặc order_id.

Chỉ cung cấp một mã định danh truy vấn: request_id, order_id hoặc merchant_order_id.

  1. Thời gian chờ tạo không có nghĩa là thất bại. Truy vấn đầu tiên với request_id được lưu trước khi tạo.
  2. Nếu truy vấn tìm thấy lệnh, hãy tiếp tục lệnh đó. Đừng tạo ra một khoản thanh toán khác.
  3. Chỉ thử lại quá trình tạo ban đầu khi truy vấn đã xác minh trả về ORDER_NOT_FOUND với recovery_contract=request-id-v1. Tái sử dụng request_id tương tự và không thay đổi phần thân.
  4. Nếu xác minh không thành công hoặc kết quả không rõ ràng, hãy giữ lại yêu cầu đã lưu và truy vấn lại sau. Không thay thế request_id.

Hỏi ví dụ

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 · TRUY VẤN ĐẶT HÀNG
<?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.');
}
?>

Khi selection_required=true, payment_method và payment_address trống, pay_amount là 0. Hãy mở payment_url. order_id và thời hạn không đổi sau khi xác nhận.

Name

Name wallet_type và network Tách ra; tạo ra Trật tự trở lại kết hợp của họ payment_methodSo sánh chúng với phương pháp tiết kiệm theo thứ tự địa phương. Trả lại chỉ cho trình duyệt khách hàng các trường hợp cần thiết.

TrườngKiểu/ Chiều dàiMô tả
order_idstring · 32Mã định danh đơn hàng MochiPay.
merchant_order_idstring · ≤100Lệnh của thương gia.
sourcestring · ≤20Nguồn hàng, như API.
descriptionstring · ≤500Mô tả.
product_typestring · ≤20PHYSICAL hay DIGITAL_SERVICE.
product_infoJSON/ chuỗi/null@ info/ rich
statusstring · ≤20Hoàn toàn có lệnh thanh toán.
merchant_statusstring · ≤50Báo cáo tình hình.
amountdecimal(28,8)Tiền đặt hàng ban đầu.
currencystring · ≤20Thứ tự tiền tệ gốc, như USD, EUR, USDT hay USDC.
base_pay_amountdecimal(28,8)Chuyển đổi số tiền công trước khi điều chỉnh một cách khớp.
unique_amount_deltadecimal(28,8)Một lượng ký hiệu nhỏ thêm vào hoặc trừ đi từ các cơ sở.
unique_amount_directionstring · ≤10UP hay DOWN.
pay_amountdecimal(28,8)Giá chính xác mà khách hàng phải trả.
received_amountdecimal(28,8)Số tiền điện tử đã nhận được cho đến nay.
manual_payment_acceptedBooleanSeparate authenticated proof of an operator acceptance; never infer it from PAID alone.
exchange_ratedecimal(38,18)Ảnh chụp mức độ trao đổi được dùng khi tạo ra thứ tự.
rate_markup_percentdecimal(9,4)Ảnh chụp theo tỷ lệ thương mại được sử dụng cho thứ tự.
wallet_typestring · ≤20Tài sản trả tiền: USDT, USDC, BTC, ETH SOL hay TRX.
networkstring · ≤30Name TRC20 hay ERC20.
payment_addressstring · ≤255Các thương gia nhận được địa chỉ đã chọn theo thứ tự này.
tx_hashstring/null · ≤255Phát hiện giao dịch thanh toán khách hàng.
confirmationsintegerSố lần xác nhận bị chặn.
customer_email … postal_codestring/nullKhách hàng và các trường vận chuyển được cung cấp theo thứ tự tạo ra.
payment_urlstring · URLHPP thanh toán URL; tích hợp tại chỗ truy vấn cùng một thứ tự để biết trạng thái và hướng dẫn thanh toán.
expires_atdatetimeKêu hết giờ nghỉ.
paid_atdatetime/nullThanh toán giờ hoàn thành.
created_atdatetimeSắp xếp thời gian sáng tạo.
updated_atdatetimeThời gian cập nhật lệnh cuối cùng.

Ví dụ mã

PHP, Node.js, Python, C# / .NET Framework, Java, iOS Swift và Android Kotlin. Một khoản thanh toán đã lưu hỗ trợ ON_SITE và HPP.

PHP SDK trên Packagist

Cài đặt PHP SDK với trình soạn thảo.

Tạo và truy vấn lệnh thanh toán từ hậu phương PHP của bạn. Giữ thông tin mật trên máy chủ.

v1.0.2 · PHP 7.4+ · MIT

composer require mochipay/php-sdk:^1.0

Tải miễn phí. Phục vụ cho việc thanh toán trực tiếp.

Xem kế hoạch đăng ký

Chọn gói nguồn cho ứng dụng của bạn

Một hệ thống ZIP hiện tại trên mỗi ngôn ngữ hoặc nền tảng di động. Chỉ dẫn thiết lập tiếng Anh được bao gồm. Bổ sung lưu trữ bản địa vẫn còn tách biệt và hiện có vẫn còn hoạt động.

DEMO MÁY CHỦ · ON_SITE + HPP

PHP

7.0–8.4

Các tuyến PHP ban đầu: order.php, checkout.php và callback.php

Tải về
DEMO MÁY CHỦ · ON_SITE + HPP

Node.js

22+

Đường di động/ Lùi thường

Tải về
DEMO MÁY CHỦ · ON_SITE + HPP

Python

3.10+

Đường di động/ Lùi thường

Tải về
DEMO MÁY CHỦ · ON_SITE + HPP

C# / .NET Framework

4.6.1 / VS2019

Đường di động/ Lùi thường

Tải về
DEMO MÁY CHỦ · ON_SITE + HPP

Java

JDK17+

Đường di động/ Lùi thường

Tải về
NGUỒN DI ĐỘNG · ON_SITE + HPP

iOS Swift

iOS15+ / Xcode14+

Dùng một hậu phương chung; chỉ dự án nguồn

Tải về
NGUỒN DI ĐỘNG · ON_SITE + HPP

Android Kotlin

API26+ / SDK35 / JDK17

Dùng một hậu phương chung; chỉ dự án nguồn

Tải về

Chạy một dòng chảy ngược hoàn chỉnh

  1. Định cấu hình thông tin xác thực MochiPay riêng tư, ví hoạt động, nguồn gốc gọi lại HTTPS công khai và mã thông báo truy cập dàn dựng độc lập. Máy chủ sở hữu giá demo; trình duyệt không thể thay thế nó.
  2. Tạo hoặc khôi phục bằng cách sử dụng cùng request_id đã lưu và tải trọng không thay đổi. Các byte yêu cầu UTF-8 chính xác và chuỗi truy vấn được mã hóa đều có chữ ký HMAC-SHA256.
  3. Mở cửa sổ bật lên ON_SITE đã lưu hoặc chuyển hướng HPP. Cả hai đều sử dụng một lệnh thanh toán. ON_SITE bao gồm QR, điều khiển sao chép và bộ chọn mười ngôn ngữ.
  4. Xử lý notify_url trên máy chủ và truy vấn lại ID đã lưu. Các tuyến quay lại và bỏ phiếu đồng bộ sử dụng lại cùng một xác minh binding/exact-amount.
  5. Ghi lại một lần được kiểm tra. Thay thế cửa hàng và đánh dấu kiểu thiết lập tập tin bằng quyền sở hữu và cơ sở dữ liệu nguyên tử được xác thực trước khi sản xuất.

PHP giữ nguyên thứ tự gốc.php / check out.php/ callback.php. Bốn hậu phương mới phơi bày các tuyến đường phổ biến bên dưới cho trình duyệt và khách hàng di động.

ĐườngTrách nhiệm
POST /paymentsTạo hoặc khôi phục một mặt hàng có giá trên máy chủ; request_id và payment_method; dàn dựng mã thông báo mang.
GET /checkout?r=…&t=…&mode=ON_SITEĐã được bảo quản và được trả tiền.
GET /checkout?…&mode=HPP303 chuyển hướng sau khi ràng buộc và xác nhận đích.
GET /status?r=…&t=…Đăng ký truy vấn dòng ngược; thanh toán dòng thập phân tối thiểu DTO.
POST /callback?r=…&t=…Xác thực và chỉ được trả một lần.
GET /complete?r=…&t=…Xem trước

Comment

Các dự án nguồn Swift và Kotlin sử dụng bất kỳ một trong bốn chương trình phụ trợ phổ biến. Chỉ định cấu hình nguồn gốc HTTPS của người bán của bạn trong ứng dụng. ON_SITE hiển thị thanh toán địa phương của bạn trong WKWebView hoặc Android WebView; HPP mở tuyến chuyển hướng người bán trong trình duyệt bên ngoài. Ứng dụng sẽ kiểm tra lại phần phụ trợ khi hoạt động; đóng ứng dụng không bao giờ ngừng thông báo máy chủ.

ID yêu cầu đã lưu vẫn tồn tại retries/restarts. Giao diện và các thay đổi ngôn ngữ sẽ sử dụng lại theo cùng một thứ tự. Mã thông báo truy cập theo giai đoạn tách biệt với thông tin xác thực MochiPay; thay thế nó bằng phiên người dùng được xác thực của ứng dụng của bạn.

Đây là các bản thử nghiệm mã nguồn tích hợp, không phải bản địa trả cho SDKs hoặc các chấp thuận ứng dụng. Xem lại hiện tại Quy tắc hóa đơn Apple và Name Cho sản phẩm của bạn và khu vực mục tiêu.

Kiểm tra trước khi lên sóng.

Sử dụng README và TESTING.md của mỗi gói. Lịch thi đấu được ký kết tại địa phương bao gồm số lần thử lại, liên kết không khớp, trạng thái chưa thanh toán và thông báo trùng lặp. Việc chấp nhận thiết bị Xcode/Android Studio gốc và một khoản thanh toán thực tế nhỏ vẫn cần xác thực dàn dựng của bạn. Không cần cài đặt lại bảng cơ sở dữ liệu MochiPay mới hoặc cài đặt lại plugin.

Đồng bộ hóa kết quả và thông báo an toàn

Thông báo

Triển khai trả về đồng bộ HPP, thông báo không đồng bộ HPP và cập nhật không đồng bộ ON_SITE bằng một trình xác minh phía máy chủ.

Ba điểm. Một bản cập nhật đã xác nhận.

ChảyTên trường:Mục đích
Trả về đồng bộ HPPredirect_url · trình duyệt GETHiển thị kết quả sau khi truy vấn máy phục vụ đã ký. Khách hàng có thể không bao giờ trở lại.
Thông báo không đồng bộ HPPnotify_url · máy chủ POSTKiểm tra và cập nhật lệnh cục bộ, không phụ thuộc vào trình duyệt.
Thông báo không đồng bộ ON_SITETương tự notify_url · máy chủ POSTCập nhật trật tự cục bộ ngay cả khi thanh công cụ đóng hay ứng dụng đã đóng.
Hiển thị trạng thái ON_SITENameHiển thị kết quả tối thiểu từ cùng xác thực hậu phương.

HPP: trả về trình duyệt đồng bộ

Khi tạo thanh toán, hãy lưu redirect_url với khả năng của đơn hàng địa phương. Ví dụ này đặt nó cho người bán HTTPS /complete?r=…&t=…. Sau khi kiểm tra trên máy chủ, trình duyệt sẽ quay lại đây. Tải đơn đặt hàng địa phương đã lưu, xác thực quyền sở hữu/khả năng của nó, sau đó ký vào Đơn đặt hàng truy vấn bằng cách sử dụng order_id MochiPay đã lưu.

Hiển thị PAID chỉ sau khi các giấy thông hành và chính xác được thông qua. Nếu không hiển thị chờ đợi hoặc phê bình. Cờ địa chỉ Mạng, thông điệp duyệt hay ảnh chụp màn hình không phải là bằng chứng của thanh toán. Việc gửi trả lại có thể xảy ra trước hay sau lần thăm lại trình duyệt này.

HPP và ON_SITE: thông báo máy chủ không đồng bộ

Lưu notify_url trong quá trình tạo; các ví dụ sử dụng /callback?r=…&t=…. MochiPay POST ở đây độc lập với trình duyệt của khách hàng. Hãy coi các trường đến là gợi ý tra cứu không đáng tin cậy. Truy vấn API đã được xác thực và so sánh ID đã lưu, tham chiếu, số tiền/tiền tệ gốc, tài sản/mạng, địa chỉ và số tiền phải trả chính xác.

Yêu cầu PAID, số lượng dự kiến/đã nhận dương và đẳng thức chính xác hoặc Boolean manual_payment_accepted=true nghiêm ngặt từ truy vấn được xác thực đó. Ghi lại khoản thanh toán địa phương đã được xác minh một lần; thông báo được xác minh lặp lại trả về OK mà không cập nhật hoặc gửi hai lần. Các trạng thái chưa được xác nhận, các ràng buộc không hợp lệ và lỗi dịch vụ thượng nguồn/lưu trữ không được thừa nhận là thanh toán thành công.

Các bản demo vẫn tồn tại điểm đánh dấu paid_verified duy nhất một lần. Thay thế nó bằng một giao dịch trong cơ sở dữ liệu đơn hàng của riêng bạn; nó không đáp ứng hàng hóa. Chỉ nội dung gọi lại không bao giờ kích hoạt cập nhật đơn hàng.

ON_SITE: cập nhật không đồng bộ và bỏ phiếu bật lên

ON_SITE đặt notify_url tương tự, vì vậy việc xác minh thanh toán sẽ tiếp tục khi cửa sổ bật lên đóng hoặc ứng dụng ngoại tuyến. Cửa sổ bật lên chỉ thăm dò phần phụ trợ đã được xác thực của bạn ở khoảng thời gian 15 giây khi hiển thị. Phần phụ trợ của nó truy vấn MochiPay và trả về một DTO thanh toán nhỏ với số lượng chuỗi thập phân. Màn hình PAID sử dụng cùng một trình xác minh như lệnh gọi lại; không có bí mật API hoặc phản hồi đầy đủ của khách hàng được đưa vào trình duyệt.

Đóng, mở lại hoặc thay đổi ON_SITE/HPP sẽ sử dụng lại một khoản thanh toán đã lưu. Giữ lại request_id và tải trọng tạo chính xác sau khi hết thời gian chờ; việc thay đổi tham chiếu có thể tạo ra thứ tự bổ sung không mong muốn.

Mã chạy được trong mỗi gói hậu phương

Mỗi ví dụ bao gồm cả nhánh trình bày, trình xử lý thông báo, trang trả về, điểm cuối trạng thái an toàn và nỗ lực theo giai đoạn lâu dài. Các trường API là notify_url và redirect_url; chế độ thanh toán là tùy chọn cục bộ, không phải trường Tạo đơn hàng.

nút.js . thẩm tra, trả lại và thông báo

Ghi chú trong gói có thể chạy được. Việc thay đổi đường và hỗ trợ lưu trữ được định nghĩa trong nguồn đầy đủ; việc dán sự tích hợp đầy đủ thay vì chỉ các dòng này.

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))});
Comment

Ghi chú trong gói có thể chạy được. Việc thay đổi đường và hỗ trợ lưu trữ được định nghĩa trong nguồn đầy đủ; việc dán sự tích hợp đầy đủ thay vì chỉ các dòng này.

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 Khung làm việc và xác thực, trả lại và thông báo

Ghi chú trong gói có thể chạy được. Việc thay đổi đường và hỗ trợ lưu trữ được định nghĩa trong nguồn đầy đủ; việc dán sự tích hợp đầy đủ thay vì chỉ các dòng này.

        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))}});
Kiểm tra & Java

Ghi chú trong gói có thể chạy được. Việc thay đổi đường và hỗ trợ lưu trữ được định nghĩa trong nguồn đầy đủ; việc dán sự tích hợp đầy đủ thay vì chỉ các dòng này.

    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))));
Độ chính xác, trả lại và thông báo

Ghi chú trong gói có thể chạy được. Việc thay đổi đường và hỗ trợ lưu trữ được định nghĩa trong nguồn đầy đủ; việc dán sự tích hợp đầy đủ thay vì chỉ các dòng này.

    // 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']);
}
Tải về các ví dụ hoàn chỉnh

Comment

Lỗi trả lại một mã trạng thái HTTP và một tin nhắn ổn định cho máy đọc được.

JSON
{ "success": false, "message": "INVALID_SIGNATURE" }
HTTPThông điệpMô tả
400INVALID_JSON / INVALID_AMOUNTDữ liệu yêu cầu không hợp lệ.
400CURRENCY_REQUIRED / CURRENCY_TOO_LONGDữ liệu yêu cầu không hợp lệ.
400INVALID_UNIQUE_AMOUNT_DIRECTION / INVALID_PRODUCT_TYPEGiá trị hướng hoặc kiểu sản phẩm không được hỗ trợ.
400FIELD_TOO_LONG / INVALID_REDIRECT_URL / INVALID_NOTIFY_URLMột trường tuỳ chọn vượt quá giới hạn hoặc một địa chỉ URL đã cung cấp không hợp lệ.
400ORDER_ID_REQUIRED / ORDER_IDENTIFIER_CONFLICTBộ nhận diện truy vấn bị thiếu hoặc mâu thuẫn.
401INVALID_API_KEY / INVALID_SIGNATUREXác thực thất bại.
403SUBSCRIPTION_REQUIRED / SUBSCRIPTION_EXPIREDKhông có đăng ký thương mại.
403MERCHANT_DISABLEDTài khoản thương mại bị vô hiệu hóa.
404ORDER_NOT_FOUNDKhông tìm thấy đơn hàng thương gia phù hợp.
500SYSTEM_ERRORKhông thể thực hiện yêu cầu.

Tích hợp SaaS cổ điển

Khả năng tương thích chỉ dành cho HPP dành cho Shopyy / Shopoem, Shoplus, Wooshoppaas và Fecify. Không cần tải xuống plugin hoặc thay đổi mã nguồn SaaS.

Chế độ 1: cố định tiền và mạng

Có /{PaymentMethod}, khách hàng vào thẳng trang thanh toán QR của loại tiền và mạng đó.

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

Chế độ 2: chọn tại trang thanh toán

Khách hàng chọn tiền và mạng thanh toán trên MochiPay trước khi mã QR được tạo.

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

Cả hai chế độ dùng cùng tham số POST, định dạng phản hồi và quy trình callback.

Sử dụng các phím ADI, không bao giờ bí mật của ADI, trong URL này.

Nền tảng đã hỗ trợ

Shopyy / ShopoemCùng công ty và định dạng cổng tương thích
ShoplusCấu hình URL giao diện thanh công cụ
WooshoppaasCấu hình URL giao diện thanh công cụ
FecifyCấu hình URL giao diện thanh công cụ

Thiết lập

  1. Sao chép khóa API của người bán từ bảng thông tin người bán MochiPay.
  2. Dán địa chỉ URL hoàn tất vào giao diện cổng trả tiền của SaaS hoặc gửi URL.
  3. Giữ cho các tham số PST của nền tảng SaaS tồn tại, trả lại URL và thông báo URL không thay đổi.

Ví dụ URL

LEGACY BÀI HỌC
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

Phương pháp thanh toán

USDT_TRC20USDT trên TRON
USDC_ERC20USDC trên Ethereum
BTC_BITCOINBTC gốc trên Bitcoin
ETH_ERC20ETH gốc trên Ethereum
SOL_SOLANASOL gốc trên Solana
TRX_TRONNgười bản địa TRX trên TRON

Name

Tham sốMục đích
merchant_urlGiá trị cửa hàng SaaS gốc, giữ lại trong hồ sơ yêu cầu đầy đủ để chẩn đoán.
system_nameTrình nhận dạng SaaS tồn tại, giữ lại trong danh sách yêu cầu.
account_type / payment_modeGiữ giá trị tồn tại của nền tảng, thường live và sale.
orders_idBộ nhận dạng SaaS gốc.
amount / currencySố tiền gốc và tiền tệ.
return_urlTùy chỉnh trả lại URL sau khi được xác nhận trả.
notify_urlThông báo URL máy phục vụ cho lần thanh toán hoàn tất.
securityTokenTấm thẻ đi qua tùy chọn đã được trả lại không thay đổi.
productsSản phẩm hay dữ liệu xe đẩy tùy chọn.
customer_*Khách hàng tồn tại, địa chỉ, IP và các trường đại diện người dùng.

Đáp ứng lệnh tạo

Tích hợp SaaS hiện tại trích xuất thanh toán URL được lưu trữ trên máy chủ từ phản hồi văn bản thuần túy gồm ba phần.

VĂN BẢN
_____https://mochi.bz/pay/ORDER_ID_____

Name

TrườngGiá trị
securityTokenGiá trị vượt qua ban đầu.
paymentMethodonlinepay
paymentStatusCompleted
paymentTransactionĐã xác nhận giao dịch cản trở.
paymentCommentsMochiPay payment confirmed
orderIDNguyên bản SaaS orders_id.

Tải về các bổ sung điện tử

Thêm MochiPay vào cửa hàng độc lập của bạn bằng tiện ích mở rộng dành riêng cho nền tảng. Chọn nhánh nền tảng và phiên bản của bạn bên dưới. Mỗi bản tải xuống 19 là một ZIP độc lập có hướng dẫn bằng tiếng Anh và các yêu cầu PHP bên trong. Sử dụng môi trường PHP được cửa hàng chính xác của bạn cho phép.

Biểu đồ tần xuất và HPP

WooCommerce

Thanh toán cổ điển, Khối thanh toán và HPOS.

Nền tảngWooCommerce 5.8 hoặc sau đó với cổng ra vào của bản địa API
PHPPHP 7.4–8.4

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

OpenCart 2.0–2.2

Các tuyến thanh toán đầu tiên và các đường mẫu cụ thể phiên bản.

Nền tảngOpenCart 2.0.x-2.2.x
PHPPHP 5. 6–7. 4; mới hơn PHP cần bản vá lõi

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

OpenCart 2.3

Cấu trúc mở rộng 2,3/trả tiền riêng biệt.

Nền tảngOpenCart 2.3.x
PHPPHP 5. 6–7. 4; mới hơn PHP cần bản vá lõi

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

OpenCart 3

Cảnh báo và cổng trả tiền bản địa OpenCart 3

Nền tảngOpenCart 3.0.x
PHPPHP 5. 6–8.4; chính xác các yêu cầu chức năng phụ thuộc

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

OpenCart 4

Khu vực tên người bản địa 4.

Nền tảngOpenCart 4.0.2.x-4.1.x
PHPPHP 8.0.2–8.4; 4.1.0.4 yêu cầu 8.1+

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

Zen Cart 1.5.3–1.5.7

Di sản xác định tập tin ngôn ngữ và thiết lập trạng thái bản địa.

Nền tảngZen Cart 1.5.3-1.5.7
PHPPHP 5.6–8.0, phụ thuộc vào phiên bản lõi

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

Zen Cart 1.5.8–2.2

Tập tin ngôn ngữ có sẵn và thiết lập trạng thái bản địa.

Nền tảngZen Cart 1.5.8 / 2.0.x / 2.1.x / 2.2.x
PHPPHP 7.3–8.4, phụ thuộc vào phiên bản lõi

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

Magento 1 / OpenMage

Magento CE 1.9.3.0–1.9.4.5 và tương thích OpenMage 19/20.

Nền tảngMagento CE 1.9.3.0-1.9.4.5; OpenMage 19/20 bản xứ M1 API
PHPPHP 5. 6–8.4; PHP 8 yêu cầu một lõi OpenMage tương thích

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

Magento 2

Magento Mã nguồn mở 2.3.7–2.4.8 với thanh toán gốc.

Nền tảngMagento Mã nguồn mở 2.3.7-2.4.8 sử dụng thanh toán gốc
PHPPHP 7.3–8.4, phụ thuộc vào phiên bản lõi

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

PrestaShop 1.6

PrestaShop 1.6.1 móc thanh toán và nộp đơn.

Nền tảngPrestaShop 1.6.1.x
PHPPHP 5.6–7.1

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

PrestaShop 1.7 / 8 / 9

PrestaShop 1.7.6–1.7.8, 8.x và 9.0.x thanh toán Options.

Nền tảngPrestaShop 1.7.6-1.7.8 / 8.x / 9.0.x
PHPPHP 5. 6–8.4, phụ thuộc vào phiên bản lõi

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

Shopware 6.6

Trình xử lý gốc riêng biệt cho Shopware 6.6 và 6.7.

Nền tảngShopware >=6.6.10.0 <6.7.0.0
PHPPHP 8.2.x / 8.3.x / 8.4.x

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

Shopware 6.7

Trình xử lý gốc riêng biệt cho Shopware 6.6 và 6.7.

Nền tảngShopware >=6.7.0.0 <6.8.0.0
PHPPHP 8.2.x / 8.3.x / 8.4.x

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

Drupal Commerce

Cửa hàng thương mại nội địa cho các chi nhánh được hỗ trợ và thương mại.

Nền tảngThương mại 2.40.x với Drupal 9.3–10.x; hoặc Thương mại 3.3.10+ <3.4 với 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, chỉ khi được cho phép bởi chính xác giải phóng Druphal.

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

EC-CUBE 4.3

Thanh toán JPY gốc với quy trình mua EC-CUBE.

Nền tảngEC-CUBE >=4.3.0 <4.4.0
PHPPHP 8.1.x / 8.2.x / 8.3.x

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

Bagisto 2.3

Gói Laravel với lệnh bản địa và hóa đơn xử lý.

Nền tảngBagisto >=2.3.0 <2.4.0
PHPPHP 8. 2x / 8.3.x / 8.4.x (cũng thỏa mãn khoá phụ thuộc của cửa hàng)

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

Sylius 2.0

Thanh toán Payum gốc và máy trạng thái thanh toán Sylius.

Nền tảngSylius >=2.0.0 <2.1.0 với PayumBundle 2.6+ / lõi tương thích Payum 1.7
PHPPHP 8. 2x / 8.3.x / 8.4.x (cũng thỏa mãn khoá phụ thuộc của cửa hàng)

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

osCommerce 4.14

Người bản địa V4; tách khỏi di sản osCommerce 2. x và 3. x.

Nền tảngosCommerce 4.14.x; đơn hàng V4 gốc Mô-đun thanh toán API
PHPPHP 7.4.x–8.3.x, tùy thuộc vào khóa phụ thuộc và phát hành osCommerce đã cài đặt

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn
Biểu đồ tần xuất và HPP

thirty bees 1.6

Mô-đun thanh toán gốc và lịch sử đặt hàng cho thirty bees 1.6.

Nền tảngthirty bees >=1.6.0 <1.7.0
PHPPHP 7.4.x / 8.0.x / 8.1.x / 8.2.x / 8.3.x; sử dụng phân phối thirty bees phù hợp

Chỉ thị cài đặt tiếng Anh và bảng thông tin chi tiết là bên trong ZIP này.

Tải vềThiết lập hướng dẫn

Bộ điều hợp mới là bản dựng tích hợp ban đầu. Hoàn tất cài đặt và chấp nhận thanh toán thực trong cửa hàng dàn dựng của riêng bạn trước khi bật lưu lượng truy cập trực tiếp.

Bắt đầu xây dựng với MochiPay

Tạo tài khoản MochiPay và chọn phương thức tích hợp phù hợp với quy trình thanh toán của bạn.

Bắt đầu