Kiểm thử tích hợp Pay27 an toàn với dữ liệu ảo, không ảnh hưởng đến giao dịch thật.
Hai môi trường hoàn toàn độc lập. Dưới đây là bảng so sánh chi tiết.
| Thuoc tinh | Sandbox | Production |
|---|---|---|
| API Base URL | https://sandbox.api.pay27.vn/v1 | https://api.pay27.vn/v1 |
| API Key prefix | pb_test_... | pb_live_... |
| Dữ liệu | Ao (simulated) | That (live) |
| Giao dịch | Giao dịch ảo, không chuyển tiền thật | Giao dịch thật, xử lý qua cổng thanh toán |
| Webhook | Mô phỏng từ Dashboard | Gửi tự động khi giao dịch hoàn tất |
| Giới hạn request | 100 requests/ngay | Theo goi dich vu |
Bạn cần một API Key riêng cho môi trường Sandbox. Làm theo các bước dưới đây.
Truy cập dashboard.pay27.vn và đăng nhập bằng tài khoản của bạn.
Trong sidebar, chọn 'API Keys' hoặc truy cập trực tiếp mục quản lý key.
Nhấn nút 'Tạo API Key', chọn loại 'Test' (Sandbox). Đặt tên dễ nhận biết, ví dụ: 'Dev Server', 'Local Testing'.
API Key có prefix pb_test_ sẽ được hiển thị một lần duy nhất. Lưu lại ngay lập tức.
Lưu ý: Không dùng Sandbox API Key trong production. Key test chỉ hoạt động với sandbox endpoint và trả về dữ liệu ảo.
Sử dụng sandbox endpoint với API Key test của bạn. Tất cả dữ liệu trả về đều là ảo.
# API Sandbox - Tạo payout thử nghiệm
curl -X POST https://sandbox.api.pay27.vn/v1/payouts \
-H "X-API-Key: pb_test_x1y2z3a4b5c6d7e8f9" \
-H "Content-Type: application/json" \
-d '{
"gateway": "paypal",
"amount": 50.00,
"currency": "USD",
"recipient": "test@example.com",
"note": "Test payout from sandbox"
}'
# Response (dữ liệu ảo)
{
"id": "txn_sandbox_a1b2c3d4",
"status": "completed",
"gateway": "paypal",
"amount": 50.00,
"currency": "USD",
"created_at": "2026-06-02T07:30:00Z",
"sandbox": true
}// Cài đặt: npm install @pay27/sdk
import { Pay27 } from "@pay27/sdk";
const client = new Pay27({
apiKey: "pb_test_x1y2z3a4b5c6d7e8f9",
environment: "sandbox", // Quan trọng: dùng "sandbox"
});
const payout = await client.payouts.create({
gateway: "paypal",
amount: 50.0,
currency: "USD",
recipient: "test@example.com",
note: "Test payout from sandbox",
});
console.log(payout.id); // txn_sandbox_a1b2c3d4
console.log(payout.status); // completed
console.log(payout.sandbox); // true# Cài đặt: pip install pay27-sdk
from pay27 import Pay27Client
client = Pay27Client(
api_key="pb_test_x1y2z3a4b5c6d7e8f9",
environment="sandbox" # Quan trọng: dùng "sandbox"
)
payout = client.payouts.create(
gateway="paypal",
amount=50.00,
currency="USD",
recipient="test@example.com",
note="Test payout from sandbox"
)
print(payout.id) # txn_sandbox_a1b2c3d4
print(payout.status) # completed
print(payout.sandbox) # True// Cài đặt: composer require pay27/sdk
use Pay27\Client;
$client = new Client([
'api_key' => 'pb_test_x1y2z3a4b5c6d7e8f9',
'environment' => 'sandbox', // Quan trọng: dùng "sandbox"
]);
$payout = $client->payouts->create([
'gateway' => 'paypal',
'amount' => 50.00,
'currency' => 'USD',
'recipient' => 'test@example.com',
'note' => 'Test payout from sandbox',
]);
echo $payout['id']; // txn_sandbox_a1b2c3d4
echo $payout['status']; // completedKiểm tra endpoint nhận webhook của bạn bằng tính năng mô phỏng từ Dashboard Pay27.
Vào Dashboard > Webhooks > 'Thêm endpoint'. Nhập URL public (HTTPS) của server bạn. Pay27 sẽ cung cấp một Webhook Secret để verify signature.
Trong trang Webhooks, chọn endpoint đã cấu hình > 'Mô phỏng'. Chọn loại event muốn test, ví dụ: payout.completed, payout.failed.
Pay27 sẽ gửi một POST request đến endpoint của bạn với payload ảo. Kiểm tra log server để xác nhận đã nhận được webhook.
Dùng Webhook Secret từ Dashboard để HMAC-SHA256 verify chữ ký trong header X-Pay27-Signature. Đảm bảo chỉ chấp nhận request hợp lệ.
// Cach mo phong webhook tu Dashboard
// 1. Vao Dashboard > Webhooks > "Mô phỏng"
// 2. Chon loai event muon test, vi du: payout.completed
// Payload webhook được gửi đến endpoint của bạn:
{
"event": "payout.completed",
"data": {
"id": "txn_sandbox_a1b2c3d4",
"status": "completed",
"gateway": "paypal",
"amount": 50.00,
"currency": "USD",
"recipient": "test@example.com",
"created_at": "2026-06-02T07:30:00Z",
"sandbox": true
},
"sandbox": true
}
// Header: X-Pay27-Signature (HMAC-SHA256)
// Dùng sandbox webhook secret de verifyEndpoint phải là HTTPS
Sandbox cũng yêu cầu HTTPS để đảm bảo bảo mật.
Trả về 200 OK trong 5 giây
Xử lý nhanh và trả về 200 OK để Pay27 ghi nhận thành công.
Môi trường Sandbox có một số giới hạn nhất định. Vui lòng lưu ý trước khi phát triển.
Mỗi tài khoản sandbox được gọi tối đa 100 API requests mỗi ngày.
Tất cả giao dịch, số dư, thông tin trả về đều là dữ liệu giả lập.
Sandbox không kết nối với cổng thanh toán thật. Giao dịch không được xử lý.
Webhook không tự động gửi. Phải mô phỏng thủ công từ Dashboard.
Dữ liệu sandbox có thể được xóa hoặc reset trong quá trình bảo trì.
Tính năng nâng cao như batch payout, report chỉ có sẵn trong production.
Khi đã kiểm thử đầy đủ trong Sandbox, chuyển sang Production API Key để bắt đầu xử lý giao dịch thật.