Cho App Server

Tích hợp tài khoản App

Để hoàn thành Tích hợp tài khoản app, App Client và App Server cần:

  1. App Client đã tích hợp Market SDK thành công. Chi tiết xem Hướng dẫn tích hợp Market SDK.

  2. App Server theo hướng dẫn của tài liệu dưới đây

A-Luồng xử lý đăng nhập cho App

Ký hiệu, từ viết tắt

Sequence Diagram Notation

Main Flow

Sequence Diagram

Mô tả các bước

Trường hợp 1: User đã có tài khoản trên App hoặc Marketplace
Bước Nội dung
1 User click Đăng nhập trên App.
2 App gọi hàm chỉ định của Market SDK để gửi yêu cầu đăng nhập.
(*) Các bước từ 3 tới 9R (ngoại trừ 7-7R) được xử lý bởi Market SDK, cụ thể*
3-3R-4 Market SDK gọi Market Server để kiểm tra session của user. Trường hợp session không tồn tại hoặc đã hết hiệu lực, Market Server sẽ gửi phản hồi để Market SDK redirect tới trang đăng nhập của Market.
5 User cung cấp số điện thoại và mật khẩu nhận được để tiếp tục đăng nhập.
6 Market SDK gửi thông tin đăng nhập của user tới Market Server để kiểm tra có hợp lệ hay không.
7
Nếu user đã có tài khoản trên Market Server, bỏ qua bước này, tiếp tục bước 8-8R.
Nếu user chưa có tài khoản trên Market Server, Market Server gọi App Server để validate thông tin username (phone) và password của user.
Chi tiết xem tại Danh sách các API > API:ValidateUsernamePassword.
7R Market Server xử lý kết quả phản hồi của App Server:
Nếu App Server phản hồi hợp lệ, Market Server sẽ tạo mới tài khoản user với phone/password tương ứng trên Market Server.
Nếu không hợp lệ, hiển thị thông báo lỗi cho user, kết thúc luồng đăng nhập tại đây.
8-8R Market Server gọi API:GetAppUser của App Server để thực hiện enrich thông tin user từ App sang Market.
Chi tiết xem tại Danh sách các API > API:GetAppUser.
6R-10 Market SDK nhận thông tin đăng nhập thành công, gọi Market Server để yêu cầu market token (bao gồm access token và id token) và thông tin user.
10R-9R App nhận market token (bao gồm: access token, id token) từ Market SDK.
Nếu App đang sử dụng market token thì tiếp tục giữ luồng xử lý hiện tại của App,
Nếu không thì tiếp tục bước 11-11R.
(*) Các bước 11 tới 11R, App sinh app token.
11-12 App Client gọi App Server với access token của Marketplace nhận được ở bước 10R-10RR. App Server sử dụng access token đó để gọi API:GetUserInfoByAccessToken của Market Server. Chi tiết xem tại Danh sách các API > API:GetUserInfoByAccessToken.
12R-11R App Server xử lý phản hồi của Market Server, quyết định sinh app token hay không
1- Trường hợp Market Server phản hồi thông tin user
_(Nếu App sử dụng hệ thống phân quyền cung cấp bởi Marketplace, thông tin user sẽ có thêm thông tin phân quyền)_
App Server nhận thông tin user thực hiện mapping user nhận được với user đang có trong database của App (qua số điện thoại và thông tin merchant (nếu cần)).
- Nếu không tìm thấy user thì tạo mới tài khoản dùng thử theo thông tin user được API trả về.
- Nếu có thay đổi thì tự động cập nhật các thay đổi đó.
Sau đó, App Server sinh app token trả về cho App Client đồng thời set session cookie để hoàn thành đăng nhập user vào sử dụng app theo licence và quyền tương ứng của user đó trên App.
2- Trường hợp Market Server phản hồi có lỗi hoặc không có thông tin user thì hiển thị thông báo lỗi tương ứng, kết thúc luồng xử lý ở đây.
Trường hợp 2: User chưa có tài khoản trên Marketplace và App

Với trường hợp này, User được yêu cầu để tạo tài khoản. App có thể chọn một trong hai cách xử lý sau:

  • Cách 1: Vẫn sử dụng luồng đăng ký hiện tại của App

    Thông tin user sau khi đăng ký, App có thể chọn đồng bộ qua Market Server theo hai cách:

    • Cách 1: Gọi API:UpsertUser của Market Server để đồng bộ luôn thông user user. Chi tiết xem tại Danh sách các API > API:UpsertUser.
    • Cách 2: Không làm thêm gì cả, thông tin user sẽ đồng bộ khi user đăng nhập ở bước 8-8R của Luồng đăng nhập.
  • Cách 2: Sử dụng luồng đăng ký của Marketplace

    Hiện tại chỉ hỗ trợ đăng ký qua phone/password và có yêu cầu xác nhận OTP. Các bước sau xử lý bởi Market SDK tương tự Luồng đăng nhập.


B-Luồng xử lý user chuyển App

Ký hiệu, từ viết tắt

Sequence Diagram Notation

Main Flow

Sequence Diagram

Mô tả các bước

Bước Nội dung
1 User click Market Menu và chọn đi tới App.
(*) Các bước từ 2-5R được xử lý bởi Market SDK, cụ thể:
2-2R Market SDK gọi Market Server để kiểm tra session của user hợp lệ.
3R-5 Market SDK nhận thông tin đăng nhập thành công, gọi Market Server để yêu cầu market token (bao gồm access token và id token) và thông tin user.
5R-4R App nhận market token (bao gồm: access token, id token) từ Market SDK.
- Nếu App đang sử dụng market token thì tiếp tục giữ luồng xử lý hiện tại của App,
- Nếu không thì tiếp tục bước 6-6R.
(*) Các bước 6 tới 6R, App sinh app token.
6-6R App sinh app token.
6-7 App Client gọi App Server với access token của Marketplace nhận được ở bước 5R-4R. App Server sử dụng access token đó để gọi API:GetUserInfoByAccessToken của Market Server. Chi tiết xem tại Danh sách các API > API:GetUserInfoByAccessToken.
7R-6R App Server xử lý phản hồi của Market Server, quyết định sinh app token hay không
1- Trường hợp Market Server phản hồi thông tin user
_(Nếu App sử dụng hệ thống phân quyền cung cấp bởi Marketplace, thông tin user sẽ có thêm thông tin phân quyền)_
App Server nhận thông tin user thực hiện mapping user nhận được với user đang có trong database của App (qua số điện thoại và thông tin merchant (nếu cần)).
- Nếu không tìm thấy user thì tạo mới tài khoản dùng thử theo thông tin user được API trả về.
- Nếu có thay đổi thì tự động cập nhật các thay đổi đó.
Sau đó, App Server sinh app token trả về cho App Client đồng thời set session cookie để hoàn thành đăng nhập user vào sử dụng app theo licence và quyền tương ứng của user đó trên App.
2- Trường hợp Market Server phản hồi có lỗi hoặc không có thông tin user thì hiển thị thông báo lỗi tương ứng, kết thúc luồng xử lý ở đây.