# Kiểm thử (/vi/online/getting-started/testing)



Hãy kiểm thử tích hợp Checkout của bạn trong sandbox của Tapaya trước khi nhận thanh toán thật. Các khoản thanh toán trong sandbox dùng thẻ thử nghiệm, nên không có tiền thật nào được chuyển. Checkout trên môi trường production nhận thanh toán thật từ các merchant đã được phê duyệt.

<div className="fd-steps [&_h3]:fd-step">
  ### Trỏ máy chủ của bạn đến API sandbox [#point-your-server-at-the-sandbox-api]

  Đặt `TAPAYA_CHECKOUT_API_URL` thành `https://api.sandbox.tapaya.com` và lưu checkout key của merchant vào `TAPAYA_CHECKOUT_API_KEY`. Giữ cả hai trên máy chủ của bạn.

  ```bash title=".env"
  TAPAYA_CHECKOUT_API_URL=https://api.sandbox.tapaya.com
  TAPAYA_CHECKOUT_API_KEY=tapaya_test_...
  ```

  Hoàn tất [onboarding](/merchants/onboarding) với tính năng thanh toán trực tuyến và kiểm tra rằng merchant ở trạng thái **Ready** trong [Cài đặt Checkout](/online/integration/checkout_settings). Lưu các URL trả về nếu bạn dùng Hosted Checkout.

  ### Tạo một phiên thử nghiệm [#create-a-test-session]

  Tạo một phiên cho đơn hàng thử nghiệm, đúng như trong [Hướng dẫn bắt đầu nhanh](./quick_start_guide). Lưu
  `id` được trả về cùng với đơn hàng trước khi chuyển hướng, để bạn có thể kiểm tra kết quả ngay cả khi trình duyệt bị đóng.

  ### Thanh toán bằng thẻ thử nghiệm [#pay-with-a-test-card]

  Mở `url` của phiên và thanh toán bằng một trong các thẻ dưới đây, với ngày hết hạn bất kỳ trong tương lai và CVC `123`.

  ### Xác minh từ máy chủ của bạn [#verify-from-your-server]

  Truy xuất phiên từ máy chủ của bạn và so sánh mã tham chiếu đơn hàng, số tiền, loại tiền tệ và
  `paymentStatus` với đơn hàng đã lưu. Việc trình duyệt quay lại URL thành công của bạn không chứng minh rằng đã thanh toán.
</div>

## Thẻ thử nghiệm [#test-cards]

Sử dụng các thẻ thử nghiệm sau.

| Tình huống            | Số thẻ                | Kết quả mong đợi                                                                                     |
| :-------------------- | :-------------------- | :--------------------------------------------------------------------------------------------------- |
| Thanh toán thành công | `4242 4242 4242 4242` | `paymentStatus: successful`. Máy chủ của bạn hoàn tất đơn hàng một lần.                              |
| Thẻ bị từ chối        | `4916 0184 7581 4056` | `paymentStatus: failed`, `status` vẫn là `open`. Khách hàng có thể thử thẻ khác trong cùng phiên.    |
| Yêu cầu 3-D Secure    | `4012 0018 0000 0016` | Hoàn tất bước xác thực thử nghiệm. Chỉ hoàn tất đơn hàng sau khi việc truy xuất xác nhận thành công. |

Một thẻ gây lỗi xử lý có thể vượt qua bước tokenization và chỉ thất bại khi bị trừ tiền, vì vậy hãy luôn kiểm tra trạng thái đã truy xuất
thay vì phản ứng của biểu mẫu thẻ.

## Môi trường sandbox bao gồm những gì [#what-the-sandbox-environment-covers]

* **Hosted Checkout:** thẻ, với các thẻ thử nghiệm ở trên. Các nút ví phụ thuộc vào cài đặt của merchant cũng như
  thiết bị và trình duyệt của khách hàng, vì vậy đừng trông đợi chúng xuất hiện trong mọi lần kiểm thử.
* **Thanh toán nhúng:** thẻ và các ví được hỗ trợ với Tapaya.js 0.2.0. Hãy kiểm thử khả năng hiển thị ví, việc hủy, thay đổi tổng tiền và xác minh phía máy chủ. Apple Pay yêu cầu một tên miền cửa hàng đã đăng ký. Xem [Embedded Checkout](/online/integration/embedded_checkout#add-apple-pay-and-google-pay).
* **Thời hạn phiên:** các phiên nhận thanh toán mới trong 30 phút kể từ khi được tạo. Dùng một `merchantOrderId` mới cho
  mỗi lần kiểm thử độc lập: một đơn hàng chỉ có thể được thanh toán một lần, và một phiên mới cho đơn hàng chưa thanh toán sẽ thay thế
  phiên trước đó.

Khi luồng cơ bản đã chạy được, hãy thực hiện theo [Danh sách kiểm tra QA](./checklist), bao gồm việc thử lại, phản hồi bị mất
và những khách hàng không bao giờ quay lại.
