Đăng ký và quản lý ứng dụng

Nội dung Markdown đầy đủ của trang tài liệu.

# Đăng ký và quản lý ứng dụng

## Tạo ứng dụng cá nhân ngay trong Pay2S

Đăng nhập Pay2S → **Ứng dụng của tôi** → **Ứng dụng tôi tạo** → **Tạo ứng dụng cá nhân**. Nhập tên, URL HTTPS quay lại sau cấp quyền và chọn quyền cần dùng. Không cần khai báo địa chỉ nhận webhook khi đăng ký ứng dụng. Ứng dụng cá nhân được dùng ngay, chỉ chủ tài khoản được kết nối.

Danh sách **Ứng dụng tôi tạo** dùng chung dữ liệu với Developer theo cùng tài khoản đăng nhập. Tab **Ứng dụng đã kết nối** hiển thị các kết nối đã được người dùng cấp quyền, không phải danh sách ứng dụng đã đăng ký.

Ứng dụng dành cho khách hàng khác vẫn đăng ký và gửi duyệt tại Developer. Quản lý hồ sơ, cấp lại Secret và khóa ứng dụng cũng thực hiện tại Developer.


Mở [Ứng dụng của tôi](/applications/), chọn **Đăng nhập Developer** và dùng tài khoản Pay2S hiện có. Đây là nơi dành cho người phát triển tích hợp; khách chỉ sử dụng ứng dụng đã đăng ký không cần tạo app hoặc gửi hồ sơ xét duyệt.

### Chọn mục đích sử dụng

| Loại ứng dụng | Ai được kết nối? | Xét duyệt |
|---|---|---|
| Dùng cho tài khoản của tôi | Chỉ tài khoản Pay2S tạo ứng dụng, kể cả công cụ nội bộ doanh nghiệp | Không cần; tạo xong có thể cấp quyền và gọi API |
| Tích hợp cho khách hàng | Chủ app và tài khoản demo Pay2S được thử trước; sau khi duyệt, khách thật có thể kết nối | Cần duyệt trước khi mở cho tài khoản khác |

Ứng dụng cá nhân có `app_type=personal`, trạng thái hoạt động `approved` nhưng vẫn bị backend giới hạn vào chủ ứng dụng. Không thể dùng app cá nhân để xin quyền tài khoản khác.

### Đăng ký và cấu hình

Bước 1: chọn loại, nhập tên ứng dụng và logo nếu có. Với ứng dụng đối tác, bổ sung người liên hệ, email, điện thoại, tên đơn vị phát triển và mô tả mục đích trước khi gửi duyệt. Mã số thuế và giấy phép là thông tin bổ sung; tài liệu đính kèm được lưu riêng cho chủ ứng dụng và người duyệt.

Bước 2: nhập callback HTTPS và chọn quyền cần dùng. Mỗi ứng dụng chỉ có một callback HTTPS, cổng 443, không dùng wildcard. Mỗi website tạo một ứng dụng riêng. Nếu nhận thông báo giao dịch, dev truyền URL HTTPS tại API tạo webhook sau khi người dùng cấp quyền webhooks:write. Lưu Client Secret ngay khi được cấp; hệ thống không hiển thị lại secret đã cấp.

Ứng dụng đối tác mới có trạng thái `draft`, cho phép thử với tài khoản chủ app hoặc tài khoản được Pay2S đánh dấu demo. Tài khoản demo chỉ được chọn ngân hàng demo và đọc giao dịch demo; vẫn cần đồng ý cấp quyền. Tài khoản chủ app thông thường vẫn sử dụng dữ liệu thật của chính mình. Chọn **Gửi duyệt ứng dụng** để chuyển sang `pending`. Pay2S xét hồ sơ, URL và quyền yêu cầu; `approved` mới cho phép khách thật khác kết nối. Khi cần bổ sung hoặc bị từ chối, app trở về `draft` cùng lý do trong Chi tiết, bạn có thể sửa hồ sơ và gửi lại. `disabled` dừng quyền truy cập và chuyển tiếp webhook.

### Chuyển ứng dụng cá nhân sang tích hợp cho khách hàng

Trong Chi tiết chọn **Đăng ký tích hợp cho khách hàng**, bổ sung hồ sơ và gửi duyệt. Client ID, Secret và kết nối tài khoản chủ app được giữ; việc chuyển loại không tự mở quyền cho tài khoản khác.

### Khách hàng kết nối thế nào?

Khách bắt đầu từ phần mềm đã tích hợp, chọn **Kết nối Pay2S**, đăng nhập Pay2S, xem quyền yêu cầu và chọn ngân hàng. Sau khi khách đồng ý, ứng dụng nhận authorization code tại callback và đổi token từ backend. Khách không phải đăng ký ứng dụng, gửi giấy tờ hay chờ xét duyệt. Khách quản lý và ngắt kết nối tại mục **Ứng dụng đã kết nối** trong Pay2S.

Bản này dành cho ứng dụng có backend giữ Client Secret. Không đưa Client Secret vào JavaScript trình duyệt, app mobile hoặc gói plugin công khai. Cơ chế kết nối một chạm cho plugin phát hành công khai cần triển khai riêng; không được nhúng secret dùng chung vào plugin. URL và quyền được cố định khi tạo; cần thay đổi thì tạo ứng dụng mới, ứng dụng đối tác cần được duyệt lại.