# 🧩 Tích hợp kỹ thuật

## Thông tin môi trường sandbox

Môi trường sandbox dùng trực tiếp trên môi trường Productions, chỉ khác nhau về tài khoản sandbox và tài khoản thật. Nếu quý khách có nhu cầu cần tài khoản sandbox riêng có thể liên hệ bộ phận kỹ thuật qua kỹ thuật để được cung cấp.

| Key          | Value                                                    |
| ------------ | -------------------------------------------------------- |
| **Website** | `https://pay2s.vn`                     |
| **Tài khoản - mật khẩu** | pay2s - 123456789                     |
| **Method**       | `POST`                                                 |
| **API EndPoint**       | **Sandbox:** `https://payment.pay2s.vn` |
| **Tạo giao dịch ảo**       | `https://pay2s.vn/client/demo-transfer` |
| **Khởi tạo IPN**       | `https://pay2s.vn/client/demo-ipn-test` |

## 🔑 Thông tin tích hợp

Pay2S cung cấp bộ mã định danh dùng để tích hợp hệ thống:

- **Partner Code**: Định danh duy nhất cho tài khoản Pay2S của bạn.
- **Access Key**: Mã dùng để cấp quyền truy cập API.
- **Secret Key**: Khoá bí mật dùng để tạo **digital signature** trong quá trình xác thực yêu cầu.

> ⚠️ **Bảo mật**: Không chia sẻ Access Key và Secret Key cho bất kỳ ai. Bạn nên lưu trữ các thông tin này ở nơi an toàn và chỉ dùng trên server backend.

![Tích hợp kỹ thuật](/assets/tich-hop-thanh-toan.png)

---

## 🔄 Luồng xử lý

1. Khách hàng thực hiện mua hàng trên Website hoặc ứng dụng của merchant và lựa chọn thanh toán trực tuyến Napas 247 cho đơn hàng.
2. Website hoặc ứng dụng của merchant tiến hành gọi tạo [link thanh toán ](/api/collection-link.html), Pay2S sẽ kiểm tra dữ liệu và trả về kết quả chứa link thanh toán. Khi hệ thống của merchant nhận kết quả link thanh toán cần chuyển hướng khách hàng của bạn đến trang checkout của Pay2S bằng cách mở link thanh toán từ kết quả.
3. Khách hàng sử dụng ứng dụng ngân hàng để quét mã VietQR từ link thanh toán.
4. Giao dịch ghi nhận thành công tại ngân hàng, Pay2S sẽ trả kết quả thành công về redirectUrl gồm: trạng thái, mã đơn hàng, mã link thanh toán, ... Từ kết quả nhận được trên redirectUrl Website hoặc ứng dụng của merchant hiển thị giao diện thành công.
5. Sau khi có kết quả ở giao diện, đồng thời Pay2S sẽ gửi một kết quả với đầy đủ thông tin thanh toán tới ipnUrl của cửa hàng, sau đó merchant cập nhật trạng thái đơn hàng phù hợp.

## ⚙️ Cấu hình HTTP Request

| Key          | Value                                                    |
| ------------ | -------------------------------------------------------- |
| **Content-Type** | `application/json; charset=UTF-8`                       |
| **Method**       | `POST`                                                 |
| **Domain**       | **Production:** `https://payment.pay2s.vn`
 |               |    **Sandbox:** `https://sandbox-payment.pay2s.vn`             |

---

## 🧾 Mã giao dịch Pay2S (`trans_id`)

Mỗi giao dịch tại Pay2S được gán một **mã giao dịch duy nhất (`trans_id`)**.  
Đây là mã do hệ thống Pay2S tự sinh và dùng để truy vết, kiểm tra và đối soát giao dịch.

---

## 📦 Mã đơn hàng đối tác (`orderId`)

Đây là mã giao dịch bạn tự định nghĩa bên phía hệ thống của mình để xác định đơn hàng.

> ✅ **Quy định đặt mã đơn hàng:**
>
> - Không được để trống  
> - Không vượt quá **64 byte**  
> - Không chứa thông tin **bí mật** hoặc **nhạy cảm**  

`orderId` nên mang ý nghĩa định danh rõ ràng và có thể liên kết tới đơn hàng trong hệ thống của bạn.

## 📦 Mã thông tin đơn hàng (`orderInfo`)

Đây là mã chuyển tièn bạn tự định nghĩa bên phía hệ thống của mình để khách hàng chuyển khoản theo nội dung này.

Lưu ý: Giới hạn 10-32 ký tự, chỉ chấp nhậ ký tự chữ + số, không dấu gạch ngang hoặc đặc biêt.

> ✅ **Quy định đặt mã đơn hàng:**
> 
  - Không được trùng lặp giữa các đơn hàng.
> - Không được để trống.  
> - Không vượt quá **64 byte**  
> - Không chứa thông tin **bí mật** hoặc **nhạy cảm**  

`orderInfo` nên mang ý nghĩa định danh rõ ràng và không được chứa các kí tự không được phép xuất hiện trong nội dung chuyển tiền của ngân hàng.
---

🎯 **Tiếp theo**: [Cách tạo chữ ký số (Signature)](/others/signature.html)
