Tài liệu Eppay

Hướng dẫn đầy đủ để tích hợp và sử dụng cổng thanh toán tiền mã hóa Eppay

Giới thiệu

Eppay là cổng thanh toán tiền mã hóa an toàn và mượt mà, được thiết kế để việc giao dịch USDT trở nên dễ dàng trên nhiều mạng blockchain. Dù bạn là người dùng cá nhân muốn thanh toán bằng tiền mã hóa hay nhà phát triển đang tích hợp chức năng thanh toán vào ứng dụng, Eppay cung cấp công cụ và hạ tầng bạn cần.

Lưu ý: Hiện tại Eppay hỗ trợ giao dịch USDT trên nhiều mạng blockchain, bao gồm Ethereum, Binance Smart Chain, Polygon, Avalanche và nhiều mạng khác.

Dành cho người dùng

Gửi và nhận thanh toán USDT nhanh chóng, an toàn trên nhiều mạng blockchain với mức phí tối thiểu.

Tìm hiểu thêm

Dành cho nhà phát triển

Tích hợp hệ thống thanh toán của Eppay vào ứng dụng của bạn với API đơn giản và bộ công cụ thân thiện với nhà phát triển.

Tìm hiểu thêm

Hướng dẫn người dùng

Bắt đầu

1

Tải ứng dụng

Tải Eppay từ App Store hoặc Google Play Store.

2

Tạo ví của bạn

Làm theo hướng dẫn trên màn hình để tạo ví an toàn của bạn. Hãy đảm bảo lưu giữ cụm từ khôi phục một cách an toàn.

3

Nạp tiền vào ví

Thêm USDT vào ví của bạn từ ví khác hoặc từ sàn giao dịch. Hãy đảm bảo có một ít token gốc (ETH, BNB, v.v.) để trả phí giao dịch.

4

Thiết lập bảo mật

Bật xác thực sinh trắc học và tạo mã PIN để tăng cường bảo mật. Cả hai sẽ được dùng để xác nhận giao dịch.

Nhận thanh toán (Get Paid)

Ứng dụng Eppay giúp bạn dễ dàng yêu cầu và nhận thanh toán qua quy trình mã QR đơn giản:

  1. 1

    Chạm nút "Get Paid" trong ứng dụng.

  2. 2

    Trong cửa sổ hiện ra, chọn mạng blockchain mà bạn muốn nhận thanh toán.

  3. 3

    Nhập số tiền USDT (hoặc loại tiền thanh toán bạn đã chọn) mà bạn muốn nhận.

    Lưu ý: Bạn có thể chọn loại tiền thanh toán ưa thích trong phần cài đặt ứng dụng.

  4. 4

    Chạm "Generate QR Code" để tạo yêu cầu thanh toán.

  5. 5

    Chia sẻ mã QR vừa tạo cho người thanh toán. Họ có thể quét mã bằng ứng dụng Eppay để hoàn tất thanh toán.

  6. 6

    Bạn sẽ nhận được thông báo khi khoản thanh toán được xác nhận trên blockchain.

Mẹo: Mã QR chứa toàn bộ thông tin thanh toán cần thiết. Người thanh toán chỉ cần quét bằng ứng dụng Eppay - không phải nhập tay bất cứ điều gì!

Gửi thanh toán (Pay)

Thanh toán bằng Eppay rất nhanh và đơn giản:

  1. 1

    Mở ứng dụng Eppay và chạm nút "Pay".

  2. 2

    Dùng camera để quét mã QR do người nhận tiền cung cấp.

    Mã QR chứa toàn bộ thông tin thanh toán cần thiết, bao gồm số tiền, địa chỉ người nhận và mạng lưới.

  3. 3

    Xem lại chi tiết thanh toán hiển thị trên màn hình.

  4. 4

    Xác nhận giao dịch bằng mã PIN hoặc xác thực sinh trắc học.

  5. 5

    Chờ giao dịch được xử lý trên blockchain.

  6. 6

    Sau khi được xác nhận, cả bạn và người nhận đều sẽ nhận được thông báo thanh toán thành công.

Quan trọng: Hãy luôn đảm bảo bạn có đủ USDT và token gốc (ETH, BNB, MATIC, v.v.) để trang trải số tiền thanh toán và phí giao dịch trên mạng bạn đã chọn.

Hướng dẫn nhà phát triển

Tổng quan tích hợp

Eppay cung cấp một API đơn giản cho phép nhà phát triển tích hợp chức năng thanh toán tiền mã hóa vào ứng dụng của mình. Quy trình tích hợp rất trực tiếp và chỉ cần thiết lập tối thiểu.

Đăng ký và lấy khóa API

Tạo tài khoản tại eppay.io và tạo khóa API của bạn từ bảng điều khiển.

Tích hợp API

Tích hợp Eppay API vào ứng dụng của bạn để tạo yêu cầu thanh toán và nhận xác nhận thanh toán.

Tạo mã QR

Tạo và hiển thị mã QR để người dùng của bạn quét bằng ứng dụng Eppay.

Xác minh thanh toán

Xác minh trạng thái thanh toán thông qua lệnh gọi API và cập nhật ứng dụng của bạn tương ứng.

Luồng tích hợp

Dưới đây là quy trình từng bước để tích hợp thanh toán Eppay vào ứng dụng của bạn:

  1. 1

    Đăng ký và lấy khóa API

    Đăng ký tại eppay.io rồi vào mục API trong bảng điều khiển để tạo khóa API của bạn.

  2. 2

    Tạo yêu cầu thanh toán

    Khi người dùng bắt đầu thanh toán trong ứng dụng của bạn, hãy gửi một yêu cầu POST tới endpoint của Eppay API (https://eppay.io/generate-code) kèm các thông tin thanh toán cần thiết:

    • Khóa API của bạn
    • Số tiền thanh toán
    • Địa chỉ ví người nhận
    • Địa chỉ RPC của mạng
    • Địa chỉ hợp đồng token
    • URL callback khi thành công
  3. 3

    Nhận mã thanh toán

    API sẽ trả về một paymentId duy nhất cho giao dịch này.

  4. 4

    Tạo mã QR

    Tạo mã QR theo định dạng: product=uuideppay&id=PAYMENT_ID, trong đó PAYMENT_ID là mã định danh duy nhất từ bước trước.

  5. 5

    Hiển thị mã QR cho người dùng

    Hiển thị mã QR cho người dùng của bạn, họ có thể quét bằng ứng dụng Eppay để hoàn tất thanh toán.

  6. 6

    Kiểm tra trạng thái thanh toán

    Trong khi hiển thị mã QR, hãy kiểm tra trạng thái thanh toán định kỳ bằng cách gửi yêu cầu GET tới https://eppay.io/payment-status/{paymentId}.

  7. 7

    Xử lý xác nhận thanh toán

    Khi trạng thái trả về true, khoản thanh toán đã hoàn tất thành công. Hãy cập nhật ứng dụng của bạn tương ứng và tiếp tục xử lý đơn hàng hoặc dịch vụ của người dùng.

Lưu ý: Ứng dụng Eppay xử lý toàn bộ tương tác với blockchain, giúp quá trình thanh toán trở nên mượt mà cho người dùng của bạn mà không đòi hỏi họ phải có kiến thức kỹ thuật về giao dịch tiền mã hóa.

Gói tích hợp chính thức

Bỏ qua việc tích hợp thủ công! Hãy dùng các gói chính thức của chúng tôi để tích hợp EpPay vào ứng dụng của bạn nhanh nhất.

Gói Laravel

Gói Laravel chính thức với các thành phần Blade, facade và auto-discovery. Phù hợp cho ứng dụng Laravel 10 và 11.

Cài đặt:
composer require eppay/laravel-eppay
Bắt đầu nhanh:
// .env
EPPAY_API_KEY=your-api-key

// Controller
use EpPay\LaravelEpPay\Facades\EpPay;

$payment = EpPay::generatePayment(100.00);

// Blade
<x-eppay-payment-qr
    :payment-id="$payment['paymentId']"
    :auto-refresh="true"
/>

JavaScript/TypeScript SDK

SDK TypeScript đầy đủ cho backend Node.js và các framework frontend (React, Vue, Angular, Next.js, Express).

Cài đặt:
npm install eppay
# or
yarn add eppay
Bắt đầu nhanh:
import { EpPayClient, EpPayWidget } from 'eppay';

// Backend (Node.js/Express/Next.js)
const client = new EpPayClient({ apiKey: 'your-key' });
const payment = await client.generatePayment({ amount: 100 });

// Frontend Widget
const widget = new EpPayWidget({
  paymentId: payment.paymentId,
  container: '#payment',
  autoRefresh: true
});
await widget.init();

Tích hợp ứng dụng Shopify

Chấp nhận thanh toán bằng tiền mã hóa ngay trong cửa hàng Shopify của bạn với tích hợp ứng dụng gốc của chúng tôi. Không cần lập trình!

Cách hoạt động:
  1. 1. Truy cập eppay.io/shopify và cài đặt ứng dụng
  2. 2. Kết nối cửa hàng Shopify của bạn bằng xác thực OAuth
  3. 3. Thêm nút thanh toán tiền mã hóa vào trang thanh toán của bạn
  4. 4. Khách hàng quét mã QR bằng ứng dụng di động EpPay để hoàn tất thanh toán
Mã tích hợp:
<button onclick="payWithCrypto()">Pay with Crypto</button>

<script>
async function payWithCrypto() {
  const response = await fetch('https://eppay.io/shopify/api/payments/create', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      amount: {{ "{{ cart.total_price }}" }},
      order_id: {{ "{{ order.id }}" }}
    })
  });
  const { paymentId } = await response.json();
  window.location.href = 'https://eppay.io/shopify/payment/' + paymentId;
}
</script>

An toàn & nhanh chóng: Xác thực OAuth, xác minh thanh toán theo thời gian thực, tự động xác nhận đơn hàng, và hỗ trợ USDT, USDC, ETH, BNB trên nhiều mạng blockchain.

Tính năng của gói:

Mọi gói đều bao gồm:
  • Tạo thanh toán
  • Xác minh trạng thái
  • Tạo mã QR tích hợp sẵn
  • Widget tự động cập nhật
  • Kiểu dữ liệu TypeScript/PHP
  • Tài liệu toàn diện
Hỗ trợ nền tảng:
  • Laravel 10 & 11
  • React & Next.js
  • Vue.js & Nuxt
  • Angular
  • Express & Node.js
  • Shopify Stores

New! Simplified API v2 is available — no RPC URLs or contract addresses needed. View API v2 Docs →

Tham chiếu API

Generate Code

POST https://eppay.io/api/generate-code

Tạo một yêu cầu thanh toán mới và trả về mã thanh toán duy nhất.

Tham số yêu cầu

Tham số Kiểu Bắt buộc Mô tả
apiKey String Khóa API của bạn từ bảng điều khiển Eppay
amount String Số lượng USDT cần yêu cầu
to String Địa chỉ ví của người thụ hưởng
rpc String Địa chỉ RPC của mạng
token String Địa chỉ token USDT trên mạng đã chọn
success String URL callback để nhận thông báo thành công

Ví dụ yêu cầu

{
    "apiKey": "WlJSciIhgHkUzduirHj2AqIwxFvVGN",
    "amount": "1",
    "to": "0x8AB960B95aCCc5080c15721fdeA30e72C8251F0b",
    "rpc": "https://rpc.scimatic.net",
    "token": "0x65C4A0dA0416d1262DbC04BeE524c804205B92e8",
    "success": "https://eppay.io/payment-success"
}

Phản hồi

{
    "paymentId": "8a020135-19b7-42df-be4b-1a8722ad0570"
}

Định dạng mã QR

Mã QR phải được tạo theo định dạng sau:

product=uuideppay&id=PAYMENT_ID

Trong đó PAYMENT_ID là mã định danh duy nhất do API trả về.

Lưu ý: Phần product=uuideppay là một chuỗi cố định giúp nhận diện mã QR là một yêu cầu thanh toán của Eppay. Ứng dụng Eppay nhận ra định dạng này và xử lý thanh toán tương ứng.

Kiểm tra trạng thái thanh toán

GET https://eppay.io/api/payment-status/{paymentId}

Kiểm tra trạng thái của một khoản thanh toán bằng mã thanh toán của nó.

Tham số đường dẫn

Tham số Kiểu Mô tả
paymentId String (UUID) Mã thanh toán duy nhất được trả về từ endpoint generate-code

Ví dụ phản hồi

{
    "status": true
}

Quan trọng: Trong khi hiển thị mã QR cho người dùng, bạn nên kiểm tra trạng thái thanh toán định kỳ bằng endpoint này. Khi trạng thái trả về true, điều đó cho biết khoản thanh toán đã được xử lý thành công.

Giá trị trạng thái

Giá trị Mô tả
true (or 1) Khoản thanh toán đã hoàn tất thành công
false (or 0) Khoản thanh toán đang chờ xử lý hoặc chưa được bắt đầu

Phản hồi callback

Khi một khoản thanh toán hoàn tất, Eppay cũng gửi một yêu cầu POST tới URL callback đã chỉ định trong yêu cầu ban đầu.

{
    "success": "success",
    "message": "Payment updated successfully",

}

Ví dụ mã nguồn

Looking for the simplified API? These examples use the v1 format (rpc + token). For the easier v2 format (network + token_type), see v2 examples →

Ví dụ JavaScript

// 1. Create Payment Request
const apiUrl = 'https://eppay.io/generate-code';
const data = {
    apiKey: "WlJSciIhgHkUzduirHj2AqIwxFvVGN",
    amount: "1",
    to: "0x8AB960B95aCCc5080c15721fdeA30e72C8251F0b",
    rpc: "https://rpc.scimatic.net",
    token: "0x65C4A0dA0416d1262DbC04BeE524c804205B92e8",
    success: "https://eppay.io/payment-success"
};

fetch(apiUrl, {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
    console.log('Payment ID:', data.paymentId);

    // 2. Generate QR code with the format: "product=uuideppay&id=" + data.paymentId
    const qrCodeData = `product=uuideppay&id=${data.paymentId}`;
    generateQRCode(qrCodeData);

    // 3. Start checking payment status
    checkPaymentStatus(data.paymentId);
})
.catch(error => console.error('Error:', error));

// Function to check payment status periodically
function checkPaymentStatus(paymentId) {
    const statusUrl = `https://eppay.io/payment-status/${paymentId}`;
    const statusElement = document.getElementById('payment-status');

    // Check every 5 seconds
    const statusCheck = setInterval(() => {
        fetch(statusUrl)
            .then(response => response.json())
            .then(data => {
                if (data.status === true) {
                    // Payment successful
                    clearInterval(statusCheck);
                    statusElement.textContent = 'Payment Successful!';
                    document.getElementById('success-message').classList.remove('hidden');

                    // Proceed with order fulfillment or next steps
                    console.log('Payment confirmed, proceeding with order...');

                    // Redirect to success page
                    window.location.href = '/payment-success?id=' + paymentId;
                }
            })
            .catch(error => console.error('Error checking status:', error));
    }, 5000);

    // Set a timeout to stop checking after 30 minutes (optional)
    setTimeout(() => {
        clearInterval(statusCheck);
        statusElement.textContent = 'Payment Timeout';
        document.getElementById('timeout-message').classList.remove('hidden');
    }, 30 * 60 * 1000);
}

// Example function using qrcode.js library
function generateQRCode(data) {
    // Clear previous QR code if any
    document.getElementById('qrcode').innerHTML = '';

    // Generate new QR code
    new QRCode(document.getElementById('qrcode'), {
        text: data,
        width: 256,
        height: 256,
        colorDark: '#000000',
        colorLight: '#ffffff',
        correctLevel: QRCode.CorrectLevel.H
    });
}

Ví dụ PHP

<?php
// 1. Create Payment Request
$apiUrl = 'https://eppay.io/generate-code';
$data = [
    "apiKey" => "WlJSciIhgHkUzduirHj2AqIwxFvVGN",
    "amount" => "1",
    "to" => "0x8AB960B95aCCc5080c15721fdeA30e72C8251F0b",
    "rpc" => "https://rpc.scimatic.net",
    "token" => "0x65C4A0dA0416d1262DbC04BeE524c804205B92e8",
    "success" => "https://eppay.io/payment-success"
];

$options = [
    'http' => [
        'header'  => "Content-Type: application/json\r\n",
        'method'  => 'POST',
        'content' => json_encode($data),
    ],
];

$context = stream_context_create($options);
$response = file_get_contents($apiUrl, false, $context);

if ($response === FALSE) {
    // Handle error
    die('Error creating payment request');
}

$result = json_decode($response, true);
$paymentId = $result['paymentId'];

// 2. Store payment ID in session for later verification
session_start();
$_SESSION['payment_id'] = $paymentId;

// 3. Display payment page with QR code
?>

<!DOCTYPE html>
<html>
<head>
    <title>Payment Page</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
    <style>
        body {
            font-family: 'Arial', sans-serif;
            line-height: 1.6;
            color: #333;
            max-width: 600px;
            margin: 0 auto;
            padding: 20px;
        }
        h1 {
            color: #225573;
            text-align: center;
        }
        #qrcode {
            display: flex;
            justify-content: center;
            margin: 30px 0;
        }
        #status {
            text-align: center;
            padding: 15px;
            border-radius: 4px;
            background-color: #f5f5f5;
            margin-top: 20px;
        }
        .success {
            background-color: #d4edda;
            color: #155724;
        }
        .instructions {
            margin-top: 20px;
            padding: 15px;
            background-color: #e8f4fd;
            border-radius: 4px;
        }
    </style>
</head>
<body>
    <h1>Complete Your Payment</h1>

    <div class="instructions">
        <p>Scan the QR code below with your Eppay app to complete the payment of 1 USDT.</p>
    </div>

    <div id="qrcode"></div>
    <div id="status">Waiting for payment...</div>

    <script>
        // Generate QR code
        var qrCode = new QRCode(document.getElementById("qrcode"), {
            text: "product=uuideppay&id=8a020135-19b7-42df-be4b-1a8722ad0570",
            width: 256,
            height: 256,
            colorDark: "#000000",
            colorLight: "#ffffff",
            correctLevel: QRCode.CorrectLevel.H
        });

        // Check payment status every 5 seconds
        var checkStatus = setInterval(function() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', 'check_payment_status.php', true);
            xhr.onload = function() {
                if (xhr.status === 200) {
                    var response = JSON.parse(xhr.responseText);
                    if (response.status === true) {
                        clearInterval(checkStatus);
                        document.getElementById('status').innerHTML = 'Payment successful!';
                        document.getElementById('status').className = 'success';

                        // Redirect to success page after 2 seconds
                        setTimeout(function() {
                            window.location.href = 'payment-success.php';
                        }, 2000);
                    }
                }
            };
            xhr.send();
        }, 5000);
    </script>
</body>
</html>

<?php
// check_payment_status.php
session_start();
$paymentId = $_SESSION['payment_id'];

$statusUrl = "https://eppay.io/payment-status/{$paymentId}";
$response = file_get_contents($statusUrl);
$result = json_decode($response, true);

// Return the status as JSON
header('Content-Type: application/json');
echo json_encode($result);
?>

Ví dụ Python

import requests
import json
import time
import qrcode
from PIL import Image
from flask import Flask, render_template, session, jsonify

app = Flask(__name__)
app.secret_key = 'your_secret_key'

@app.route('/create-payment', methods=['POST'])
def create_payment():
    # 1. Create Payment Request
    api_url = 'https://eppay.io/generate-code'
    data = {
        "apiKey": "WlJSciIhgHkUzduirHj2AqIwxFvVGN",
        "amount": "1",
        "to": "0x8AB960B95aCCc5080c15721fdeA30e72C8251F0b",
        "rpc": "https://rpc.scimatic.net",
        "token": "0x65C4A0dA0416d1262DbC04BeE524c804205B92e8",
        "success": "https://eppay.io/payment-success"
    }

    response = requests.post(api_url, json=data)

    if response.status_code == 200:
        result = response.json()
        payment_id = result.get('paymentId')

        # Store payment ID in session
        session['payment_id'] = payment_id

        # 2. Generate QR code
        qr_data = f"product=uuideppay&id={payment_id}"
        img = qrcode.make(qr_data)
        img.save(f"static/qr_{payment_id}.png")

        return render_template('payment.html', payment_id=payment_id)
    else:
        return jsonify({"error": "Failed to create payment"}), 500

@app.route('/check-status', methods=['GET'])
def check_status():
    payment_id = session.get('payment_id')
    if not payment_id:
        return jsonify({"error": "No payment in progress"}), 400

    status_url = f"https://eppay.io/payment-status/{payment_id}"
    response = requests.get(status_url)

    if response.status_code == 200:
        return response.json()
    else:
        return jsonify({"error": "Failed to check payment status"}), 500

@app.route('/payment-success', methods=['GET'])
def payment_success():
    payment_id = session.get('payment_id')
    return render_template('success.html', payment_id=payment_id)

if __name__ == '__main__':
    app.run(debug=True)

Mẫu HTML cho ví dụ Python:

<!-- templates/payment.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Eppay Payment</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <style>
        body {
            font-family: 'Arial', sans-serif;
            max-width: 600px;
            margin: 0 auto;
            padding: 20px;
            text-align: center;
        }
        h1 {
            color: #225573;
            margin-bottom: 20px;
        }
        .qr-container {
            margin: 30px 0;
        }
        #status-message {
            padding: 15px;
            border-radius: 4px;
            background-color: #f5f5f5;
            margin-top: 20px;
        }
        .success {
            background-color: #d4edda;
            color: #155724;
        }
        .info {
            background-color: #e8f4fd;
            color: #0c5460;
            padding: 15px;
            border-radius: 4px;
            margin-top: 20px;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>Complete Your Payment</h1>

        <div class="info">
            Scan the QR code with your Eppay app to complete the payment of 1 USDT.
        </div>

        <div class="qr-container">
            <img src="{{ url_for('static', filename='qr_' + payment_id + '.png') }}" alt="Payment QR Code">
        </div>

        <div id="payment-status">
            <div id="status-message">Waiting for payment...</div>
        </div>
    </div>

    <script>
        // Check payment status every 5 seconds
        function checkPaymentStatus() {
            $.ajax({
                url: '/check-status',
                type: 'GET',
                success: function(data) {
                    if (data.status === true) {
                        $('#status-message').text('Payment successful!');
                        $('#status-message').addClass('success');

                        // Redirect to success page after 2 seconds
                        setTimeout(function() {
                            window.location.href = '/payment-success';
                        }, 2000);
                    } else {
                        // Continue checking if payment is not yet complete
                        setTimeout(checkPaymentStatus, 5000);
                    }
                },
                error: function() {
                    $('#status-message').text('Error checking payment status');
                    // Try again after a delay
                    setTimeout(checkPaymentStatus, 10000);
                }
            });
        }

        // Start checking payment status when the page loads
        $(document).ready(function() {
            checkPaymentStatus();
        });
    </script>
</body>
</html>

<!-- templates/success.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Payment Successful</title>
    <style>
        body {
            font-family: 'Arial', sans-serif;
            max-width: 600px;
            margin: 0 auto;
            padding: 20px;
            text-align: center;
        }
        h1 {
            color: #225573;
            margin-bottom: 20px;
        }
        .success-container {
            background-color: #d4edda;
            color: #155724;
            padding: 20px;
            border-radius: 5px;
            margin: 30px 0;
        }
        .success-icon {
            font-size: 48px;
            color: #28a745;
            margin-bottom: 15px;
        }
        .order-details {
            background-color: #f8f9fa;
            padding: 15px;
            border-radius: 5px;
            margin-top: 20px;
            text-align: left;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>Payment Successful!</h1>

        <div class="success-container">
            <div class="success-icon">✓</div>
            <p>Your payment of 1 USDT has been successfully processed.</p>
            <p>Payment ID: 8a020135-19b7-42df-be4b-1a8722ad0570</p>
        </div>

        <div class="order-details">
            <h3>Transaction Details:</h3>
            <p>Amount: 1 USDT</p>
            <p>Network: Scimatic</p>
            <p>Date: {{ now().strftime('%Y-%m-%d %H:%M:%S') }}</p>
        </div>

        <p>Thank you for using Eppay!</p>

        <a href="/">Return to Home</a>
    </div>
</body>
</html>

Quy trình tích hợp đầy đủ

Dưới đây là hướng dẫn từng bước kết hợp toàn bộ các yếu tố chính khi tích hợp thanh toán Eppay:

  1. Tạo một yêu cầu thanh toán bằng Eppay API, cung cấp khóa API, số tiền, địa chỉ người nhận và thông tin blockchain của bạn.
  2. Nhận mã thanh toán duy nhất từ phản hồi của API.
  3. Tạo mã QR theo định dạng product=uuideppay&id=PAYMENT_ID.
  4. Hiển thị mã QR cho người dùng của bạn để quét bằng ứng dụng Eppay.
  5. Gọi định kỳ endpoint trạng thái thanh toán để kiểm tra xem khoản thanh toán đã hoàn tất hay chưa.
  6. Xử lý xác nhận thanh toán khi trạng thái trả về true, đồng thời cập nhật ứng dụng của bạn tương ứng.
  7. Xử lý thông báo callback được gửi tới URL thành công của bạn để xác nhận thêm một lần nữa.

Mẹo chuyên sâu: Hãy luôn triển khai cả cơ chế gọi định kỳ lẫn xử lý callback để đạt độ tin cậy cao nhất khi phát hiện các khoản thanh toán đã hoàn tất.

Mạng được hỗ trợ

Hiện tại Eppay hỗ trợ giao dịch USDT trên các mạng blockchain sau:

binance

Binance

bsc
USDT USDC
ethereum

Ethereum

eth
USDT USDC
scimatic

Scimatic

scimatic
USDT
avalanche

Avalanche

avalanche
USDT USDC
polygon

Polygon

polygon
USDT USDC
fantom

Fantom

fantom
USDT USDC
cronos

Cronos

cronos
USDT USDC
arbitrum

Arbitrum

arbitrum
USDT USDC
cosmos

Cosmos

cosmos
USDT
celo

Celo

celo
USDT USDC
tron

Tron

tron
USDT

Network Slugs for API

Use these slug values with the network parameter in API v2:

Network Slug Coin USDT USDC
Binance bsc BNB
Ethereum eth ETH
Scimatic scimatic SCI
Avalanche avalanche AVAX
Polygon polygon MATIC
Fantom fantom FTM
Cronos cronos CRO
Arbitrum arbitrum ARB
Cosmos cosmos ATOM
Celo celo CELO
Tron tron TRX

Lưu ý: Để tìm URL RPC và địa chỉ token của các mạng này, hãy truy cập chainlist.org.

Bảo mật

Eppay triển khai nhiều lớp bảo mật để bảo vệ tiền và dữ liệu của bạn:

Quản lý khóa riêng tư

Mọi khóa riêng tư đều được lưu trữ an toàn trên thiết bị của người dùng và không bao giờ được truyền tới máy chủ của Eppay. Khóa được mã hóa bằng các thuật toán theo tiêu chuẩn ngành.

Xác thực sinh trắc học

Ứng dụng di động Eppay hỗ trợ xác thực sinh trắc học (vân tay/Face ID) để mở ứng dụng và xác nhận giao dịch, bổ sung thêm một lớp bảo mật.

Bảo mật blockchain

Mọi giao dịch đều được bảo vệ bởi mạng blockchain tương ứng. Eppay tận dụng các tính năng bảo mật vốn có của công nghệ blockchain để đảm bảo tính toàn vẹn của giao dịch.

Bảo mật API

Với nhà phát triển, Eppay API dùng khóa API để xác thực và kết nối HTTPS an toàn cho mọi liên lạc. Dữ liệu nhạy cảm không bao giờ bị lộ trong phản hồi của API.

Thực hành bảo mật tốt nhất:

  • Không bao giờ chia sẻ cụm từ khôi phục hoặc khóa riêng tư của bạn với bất kỳ ai
  • Luôn cập nhật ứng dụng lên phiên bản mới nhất
  • Luôn kiểm tra kỹ chi tiết giao dịch trước khi xác nhận
  • Sử dụng kết nối internet an toàn khi thực hiện giao dịch
  • Bật mọi tính năng bảo mật có sẵn trong ứng dụng

Câu hỏi thường gặp

Hiện tại Eppay hỗ trợ thanh toán USDT (Tether) trên nhiều mạng blockchain. Chúng tôi dự định bổ sung hỗ trợ thêm nhiều loại tiền mã hóa khác trong tương lai.

Eppay thu mức phí tối thiểu cho các giao dịch. Mức phí chính xác phụ thuộc vào mạng blockchain bạn chọn sử dụng. Chúng tôi hiển thị phí mạng trước khi bạn xác nhận bất kỳ giao dịch nào, nên không có bất ngờ nào cả.

Thời gian giao dịch thay đổi tùy theo mạng blockchain được sử dụng. Phần lớn giao dịch được xác nhận trong vài giây đến vài phút, trong đó các mạng như BSC, Polygon và Avalanche thường xử lý nhanh hơn Ethereum.

Hoàn toàn phù hợp! Eppay được thiết kế cho cả người dùng cá nhân lẫn doanh nghiệp. Đây là lựa chọn lý tưởng cho các đơn vị bán hàng, người làm tự do và doanh nghiệp ở mọi quy mô muốn chấp nhận thanh toán bằng tiền mã hóa. API giúp việc tích hợp với hệ thống sẵn có của bạn trở nên dễ dàng.

Eppay áp dụng các biện pháp bảo mật hàng đầu ngành, bao gồm mã hóa cho mọi giao dịch và dữ liệu cá nhân. Khóa riêng tư của bạn luôn nằm trên thiết bị của bạn và không bao giờ được truyền tới máy chủ của chúng tôi. Ngoài ra, bạn có thể bật xác thực sinh trắc học để có thêm một lớp bảo mật.

Nếu bạn đã lưu cụm từ khôi phục gồm 12 từ, bạn có thể khôi phục ví trên thiết bị mới. Không có cụm từ này thì tiền của bạn không thể khôi phục được, đó là lý do việc lưu giữ nó an toàn ngay khi tạo ví lần đầu là vô cùng quan trọng.

Việc tích hợp rất đơn giản. Trước tiên, hãy đăng ký tài khoản tại eppay.io và lấy khóa API của bạn. Sau đó, dùng API của chúng tôi để tạo mã thanh toán, tạo mã QR và xác minh trạng thái thanh toán. Chúng tôi cung cấp tài liệu chi tiết và ví dụ mã nguồn bằng nhiều ngôn ngữ lập trình để bạn bắt đầu nhanh chóng.

Có hai cách để xác nhận thanh toán đã hoàn tất: (1) Bạn có thể kiểm tra trạng thái thanh toán định kỳ bằng endpoint API của chúng tôi, endpoint này sẽ trả về true khi thanh toán hoàn tất, và (2) Chúng tôi sẽ gửi thông báo kèm chi tiết giao dịch tới URL callback bạn đã chỉ định khi khoản thanh toán được xác nhận trên blockchain.

Bắt đầu với Eppay

Sẵn sàng tích hợp thanh toán tiền mã hóa chưa?

Gia nhập cùng hàng nghìn doanh nghiệp và cá nhân đang tin tưởng Eppay cho nhu cầu thanh toán tiền mã hóa của họ.