Mô hình kết nối
- Merchant hosted
- Checkout page
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
Bước | Thực hiện | Mô tả |
---|---|---|
1 | End user | User đặt hàng và thực hiện thanh toán, lựa chọn thanh toán bằng Credit Card |
2 | Merchant | Hệ thống Merchant hiển thị màn hình Nhập thông tin thẻ |
3 | End user | Nhập thông tin thẻ để thực hiện thanh toán |
4 | Merchant | Merchant bắt đầu gửi yêu cầu đến AppotaPay để tạo token với thông tin thẻ của khách |
5 | AppotaPay | AppotaPay thực hiện tạo token và phản hồi thông tin token cho partner |
6 | Merchant | Sau 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 |
7 | Merchant | Merchant 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 | ||
9 | Merchant | Khi 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 |
10 | Hệ 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 | |
11 | AppotaPay | Hệ 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 |
12 | End user | Nhập OTP và xác nhận |
13 | AppotaPay | Hệ thống xử lý của Appota (Issuing bank) kiểm tra OTP |
14 | AppotaPay | Thô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 |
15 | Merchant | Gửi yêu cầu charge đến AppotaPay (hiện AppotaPay mới hỗ trợ Authorization và Capture ngay sau đó) |
16 | AppotaPay | Kiể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 |
17 | Merchant | Merchant nhận thông báo lỗi khi thực hiện charge và chuyển bước 7 |
18 | AppotaPay | Kiể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 |
19 | AppotaPay | Thực hiện Authorization và Cature trong 1 giao dịch, phản hồi kết quả giao dịch đến merchant |
20 | Merchant | Hiển thị kết quả giao dịch đến người dùng |
21 | AppotaPay | Thực hiện Authorization (không Capture), phản hồi kết quả giao dịch đến merchant, chuyển bước 20 |
22 | Merchant | Với giao dịch đã thực hiện authorization, merchant có thể thực hiện capture để hoàn thành giao dịch |
23 | AppotaPay | Kiể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 |
24 | AppotaPay | Thông báo lỗi đến merchant |
25 | AppotaPay | Thực hiện capture và phản hồi kết quả capture đến merchant |
26 | Merchant | Nhậ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
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
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 và “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
Tổng quan
- Trên Webiste, ứng dụng phía đối tác sau khi khách hàng lựa chọn dịch vụ hoặc sản phẩm và chọn thanh toán qua cổng thanh toán của AppotaPay.
- Server của đối tác gọi qua API của AppotaPay để tạo thông tin giao dịch và lấy được URL thanh toán
- Sau khi nhận được kết quả, website, ứng dụng phía đối tác điều hướng khách hàng tới URL trang thanh toán.
Mô hình thanh toán
Diễn giải các bước thanh toán
- Bước 1: Khách hàng chọn dịch vụ, sản phẩm sau đó chọn hình thức thanh toán qua thẻ ATM/Visa.
- Bước 2: Server phía đối tác gọi sang server AppotaPay nhận được URL thanh toán.
- Bước 3: AppotaPay PayGate phản hồi link thank toán cho partner.
- Bước 4: Website, ứng dụng phía đối tác điều hướng khách hàng tới URL trang thanh toán.
- Bước 5: Khách hàng thực hiện thanh toán.
- Bước 6: AppotaPay PayGate gửi yêu cầu thanh toán
- Bước 7: Bank/ Provider xử lý thanh toán và trả kết quả giao dịch
- Bước 8, 9: AppotaPay PayGate xử lý giao dịch sau đó redirect tới
redirectUrl
của đối tác, đồng thời server AppotaPay gọi tới IPN API (notifyUrl
) của server phía đối tác để thông báo kết quả giao dịch. - Bước 10: Partner server xử lý giao dịch và trả kết quả để hiển thị
- Bước 11: Website, ứng dụng phía đối tác hiển thị thông báo cho khách hàng.