Nhảy tới nội dung
Phiên bản: Lastest

Mô hình kết nối

Tổng quan

Khi doanh nghiệp của bạn thực hiện kết nối mô hình Merchant-hosted (Thanh toán quốc tế), bạn có thể cho phép khách hàng nhập thông tin thanh toán trên trang của bạn và thực hiện các bước tiếp theo. Tài liệu này cung cấp đầy đủ về cách thức kết nối thanh toán thẻ quốc tế cho doanh nghiệp của bạn.

Luồng kết nối

Ảnh kết nối thanh toán
BướcThực hiệnMô tả
1End userUser đặt hàng và thực hiện thanh toán, lựa chọn thanh toán bằng Credit Card
2MerchantHệ thống Merchant hiển thị màn hình Nhập thông tin thẻ
3End userNhập thông tin thẻ để thực hiện thanh toán
4MerchantMerchant bắt đầu gửi yêu cầu đến AppotaPay để tạo token với thông tin thẻ của khách
5AppotaPayAppotaPay thực hiện tạo token và phản hồi thông tin token cho partner
6MerchantSau khi nhận token từ phía AppotaPay phản hồi, Merchant lưu thông tin
Kiểm tra giao dịch có cần thực hiện với 3DS
- Nếu thanh toán có 3DS, chuyển đến Bước 7
- Nếu thanh toán không 3DS, chuyển đến Bước 15
7MerchantMerchant gửi yêu cầu kiểm tra 3DS enrollment
Hệ thống AppotaPay kiểm tra 3DS enrollment
Nếu thẻ không hỗ trợ 3DS hoặc AppotaPay không thể kiểm tra được 3DS enrollment → chuyển bước 18
(AppotaPay khuyến nghị, nếu Merchant đang thực hiện thanh toán có 3DS, trường hợp thẻ không hỗ trợ 3DS nên dừng giao dịch)
Nếu thẻ hỗ trợ 3DS và cần xác thực → chuyển bước 9
Nếu thẻ hỗ trợ 3DS không cần xác thực → chuyển bước 14
9MerchantKhi thẻ hỗ trợ 3DS và cần xác thực, AppotaPay sẽ phản hồi thêm thông tin Redirect URL
→ Merchant sử dụng Redirect URL để nhúng lên trang của merchant hoặc điều hướng đến url đó để xác thực
10Hệ thống AppotaPay xác định loại xác thực với thẻ hỗ trợ 3DS cần xác thực
- Nếu xác thực cần OTP → Chuyển Bước 11
- Nếu xác thực không cần OTP → Chuyển Bước 14
11AppotaPayHệ thống xử lý của Appota (Issuing bank) sẽ gửi OTP cho user và hiển thị màn hình nhập OTP trên Redirect URL
12End userNhập OTP và xác nhận
13AppotaPayHệ thống xử lý của Appota (Issuing bank) kiểm tra OTP
14AppotaPayThông báo kết quả 3DS cuối cùng cho Merchant, điều hướng về trang của merchant với trạng thái và authentication status
15MerchantGửi yêu cầu charge đến AppotaPay (hiện AppotaPay mới hỗ trợ Authorization và Capture ngay sau đó)
16AppotaPayKiểm tra cấu hình 3DS với trạng thái 3DS của giao dịch
- Merchant và AppotaPay có xác nhận với nhau về việc thực hiện 3DS khi giao dịch, hoặc giao dịch luôn có 3DS hoặc giao dịch có 3DS tuỳ theo merchant
Nếu kiểm tra thấy:
- AppotaPay và Merchant: giao dịch luôn cần 3DS, nhưng Merchant gọi charge không qua các bước 3DS → kiểm tra không khớp → Merchant chuyển bước 17
- Các trường hợp còn lại → Merchant chuyển bước 18
17MerchantMerchant nhận thông báo lỗi khi thực hiện charge và chuyển bước 7
18AppotaPayKiểm tra yêu cầu của Merchant có bao gồm capture ngay lập tức
- Nếu “capture”: true → chuyển bước 19
- Nếu “capture”: false → chuyển bước 21
19AppotaPayThực hiện Authorization và Cature trong 1 giao dịch, phản hồi kết quả giao dịch đến merchant
20MerchantHiển thị kết quả giao dịch đến người dùng
21AppotaPayThực hiện Authorization (không Capture), phản hồi kết quả giao dịch đến merchant, chuyển bước 20
22MerchantVới giao dịch đã thực hiện authorization, merchant có thể thực hiện capture để hoàn thành giao dịch
23AppotaPayKiểm tra trạng thái giao dịch để đảm bảo rằng giao dịch đủ điều kiện để thực hiện capture
- Nếu trạng thái giao dịch khác AUTHORIZED → chuyển bước 24
- Nếu trạng thái giao dịch là AUTHORIZED → chuyển bước 25
24AppotaPayThông báo lỗi đến merchant
25AppotaPayThực hiện capture và phản hồi kết quả capture đến merchant
26MerchantNhận kết quả capture và hiển thị kết quả giao dịch cho người dùng

Luồng thanh toán

Ảnh kết nối thanh toán

1. [Tuỳ chọn] Bạn có thể tạo và sử dụng AppotaPay Token để thanh toán hoặc truyền đầy đủ thông tin thẻ để tiến hành thanh toán

Lưu ý

Bạn nên sử dụng token của AppotaPay cho việc thanh toán thay vì truyền thông tin thẻ để bảo mật hơn

2. Bạn có thể xác thực thông tin của chủ thẻ với 3DS (3D-Secure) trước khi tiến hành thanh toán. Để kiểm tra thẻ có hợp lệ cho thanh toán 3DS hay không, bạn cần gửi yêu cầu Check 3DS Enrollment

3. Nếu kiểm tra Enrollment là KHÔNG HỢP LỆ, bạn có thể lựa chọn như sau:

  • Kết thúc thanh toán, nếu bạn không muốn thanh toán với thẻ không bật 3DS
  • Thực hiện lại: Check 3DS Enrollment
  • Tiếp tục thanh toán Create Charge mà không cần xác thực 3DS

4. Nếu kiểm tra Enrollment là HỢP LỆ, trong response có thông tin trang xác thực, bạn cần điều hướng người dùng đến trang xác thực, xác thực sẽ thường sử dụng OTP (được gửi từ issuing bank)

5. Bạn sẽ nhận được kết quả xác thực 3DS từ issuing bank, và bạn có thể xác nhận lại với AppotaPay bằng cách sử dụng API Get Authentication để lấy trạng thái xác thực 3DS

6. Nếu kết quả xác thực 3DS là KHÔNG HỢP LỆ, bạn có thể lựa chọn như sau:

  • Kết thúc thanh toán, nếu bạn không muốn thanh toán với thẻ không bật 3DS
  • Thực hiện lại: kiểm tra 3DS Enrollment và xác thực
  • Tiếp tục thanh toán Create Charge mặc dù xác thực 3DS thất bại

7. Nếu kết quả xác thực 3DS là HỢP LỆ, bạn có thể thực hiện thanh toán Create Charge

8. Khi yêu cầu Create Charge khởi tạo thành công, AppotaPay tiếp nhận yêu cầu và sẽ thực hiện thanh toán cho doanh nghiệp bạn

9. Trong một số trường hợp, sau khi Create Charge thành công, bạn cần huỷ giao dịch và hoàn lại tiền cho khách hàng. Bạn có thể sử dụng API Refund, nếu bạn gửi yêu cầu Refund thành công, yêu cầu Hoàn trả sẽ được xử lý bởi issuing bank

10. Trong một số trường hợp, nếu bạn cần giữ tiền trong thẻ của khách hàng trước, bạn có thể thực hiện Authorization với API Create Charge“capture”: true

  • Nếu muốn hoàn tất thanh toán với số tiền đã uỷ quyền (tạm giữ) trước đó, bạn có thể gửi yêu cầu capture với API Capture Charge
  • Nếu muốn huỷ uỷ quyền số tiền đã uỷ quyền (tạm giữ) trước đó, bạn có thể gửi yêu cầu huỷ với API Reverse Authorization