Sandbox Environment

Sandbox — Môi trường thử nghiệm

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.

API ảo An toàn Miễn phí

Sandbox vs Production

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 tinhSandboxProduction
API Base URLhttps://sandbox.api.pay27.vn/v1https://api.pay27.vn/v1
API Key prefixpb_test_...pb_live_...
Dữ liệuAo (simulated)That (live)
Giao dịchGiao dịch ảo, không chuyển tiền thậtGiao dịch thật, xử lý qua cổng thanh toán
WebhookMô phỏng từ DashboardGửi tự động khi giao dịch hoàn tất
Giới hạn request100 requests/ngayTheo goi dich vu

Tao Sandbox API Key

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.

01

Đăng nhập vào Dashboard Pay27

Truy cập dashboard.pay27.vn và đăng nhập bằng tài khoản của bạn.

02

Di den trang API Keys

Trong sidebar, chọn 'API Keys' hoặc truy cập trực tiếp mục quản lý key.

03

Tạo Test API 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'.

04

Sao chép API Key

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.

Gọi API Sandbox

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.

cURL

Terminal
# 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
}

Node.js

sandbox.js
// 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

Python

sandbox.py
# 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

PHP

sandbox.php
// 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'];  // completed

Mô phỏng Webhook

Kiểm tra endpoint nhận webhook của bạn bằng tính năng mô phỏng từ Dashboard Pay27.

1

Cấu hình Webhook Endpoint

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.

2

Chọn sự kiện mô phỏng

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.

3

Kiểm tra kết quả

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.

4

Verify signature

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ệ.

Payload Webhook mau

webhook-payload.json
// 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 verify

Endpoint 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.

Giới hạn Sandbox

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.

100 requests/ngay

Mỗi tài khoản sandbox được gọi tối đa 100 API requests mỗi ngày.

Dữ liệu ảo

Tất cả giao dịch, số dư, thông tin trả về đều là dữ liệu giả lập.

Không hỗ trợ giao dịch thật

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 mô phỏng

Webhook không tự động gửi. Phải mô phỏng thủ công từ Dashboard.

Dữ liệu reset định kỳ

Dữ liệu sandbox có thể được xóa hoặc reset trong quá trình bảo trì.

Một số tính năng hạn chế

Tính năng nâng cao như batch payout, report chỉ có sẵn trong production.

Sẵn sàng tích hợp thật?

Khi đã kiểm thử đầy đủ trong Sandbox, chuyển sang Production API Key để bắt đầu xử lý giao dịch thật.