Tổng quan
Mục đích của Quy trình xác thực là xác định và xác thực người dùng với Bên tích hợp thanh toán (đơn vị tích hợp).
Xác thực là dữ liệu đầu vào cho các phương thức khác. Đặc biệt là đối với associateAccount
và capture
. Điều này có nghĩa là bằng chứng xác thực được dùng làm dữ liệu đầu vào (tham số) cho 2 phương thức đó.
Google cũng có thể sử dụng quy trình xác thực ở chế độ độc lập để xác minh người dùng. Trong trường hợp này, dữ liệu này không được dùng làm dữ liệu đầu vào cho bất kỳ luồng nào khác mà chỉ dùng để xác minh rằng người dùng có thể xác thực danh tính này.
Xin lưu ý rằng khi bạn bắt đầu tham gia, Google sẽ làm việc với bạn để chọn cơ chế xác thực phù hợp nhất với sản phẩm của bạn.
Cách quy trình này hoạt động
Có hai cách để xác thực người dùng, mỗi cách có một luồng riêng. Tại thời điểm tích hợp, trình tích hợp phải xác định nội dung cần sử dụng.
- Chuyển hướng xác thực
- Xác thực OTP qua SMS-MT
Chuyển hướng xác thực
Một người dùng Google cần xác thực có thể được chuyển hướng đến ứng dụng hoặc trang web của nhà tích hợp để xác minh danh tính. Dưới đây là thông tin tổng quan ngắn gọn về các bước trong quy trình này:
- Google chuyển hướng người dùng đến web hoặc ứng dụng Android của nhà tích hợp để có thể xác thực họ.
- Để xác thực,
requestId
xác thực (từAuthenticationRequest
) sẽ được dùng làm bằng chứng xác thực. - Việc này dẫn đến một phản hồi có chữ ký, có tên là
AuthenticationResponse
. - Sau đó, ứng dụng hoặc trang web sẽ chuyển hướng người dùng trở lại Google.
Xác thực chuyển hướng sử dụng phương thức HTTP GET, với các tham số được mã hoá trong URL cho ứng dụng web. Phương thức này sử dụng Ý định của Android để xác thực ứng dụng Android. Để biết thêm chi tiết về cách mã hoá, hãy xem phần Xác thực web và đối với tham số ý định Android, hãy xem phần Xác thực Android.
Kết quả từ mỗi cơ chế xác thực này là một phản hồi có chữ ký được gọi là AuthenticationResponse
. Ý định này phải bao gồm Phản hồi xác thực thanh toán thông thường của Google (gspAuthenticationResponse
) được mã hoá và mã hoá để thông báo về việc xác thực thành công. Nếu được sử dụng ở chế độ độc lập, gspResult
và chữ ký sẽ được dùng để xác định quá trình xác thực thành công.
Sơ đồ trình tự sau đây cho thấy sự tương tác giữa trình duyệt của người dùng, Google và ứng dụng web của nhà tích hợp:
Quy trình xác thực web (Chuyển hướng)
Dưới đây là danh sách các đối tượng và nội dung mà chúng đại diện:
- Người dùng: Đây là người muốn thêm một phương thức thanh toán vào Tài khoản Google của họ.
- Giao diện người dùng Google: Trong trường hợp này là giao diện web tại Google, nơi khách hàng bắt đầu thiết lập phương thức thanh toán.
- Máy chủ Google: Máy chủ phụ trợ tại Google thực hiện việc kiểm tra xác thực cùng với các tác vụ xác thực khác.
- Trang web của đơn vị tích hợp thanh toán: Trang web của đơn vị tích hợp thanh toán, nơi người dùng có tài khoản.
Đối với quy trình xác thực này, chúng tôi đã giả định rằng người dùng đang truy cập vào trang web của Google (giao diện người dùng Google) và đang cố gắng thêm phương thức thanh toán. Đây là nơi mọi thứ bắt đầu.
- Giao diện người dùng của Google tạo một URL xác thực được gửi tới Máy chủ Google (máy chủ phụ trợ). Đây là yếu tố kích hoạt quá trình xác thực.
- Máy chủ Google tạo một yêu cầu xác thực (
AuthenticationRequest
). - Yêu cầu xác thực được gửi đến giao diện người dùng Google.
- Người dùng sẽ nhận được lời nhắc rằng họ cần xác thực mã nhận dạng của mình với trình tích hợp.
- Người dùng trả lời rằng họ muốn xác thực, và sẽ gửi thông báo đó đến trang web của nhà tích hợp.
- Trang web của Bên tích hợp thanh toán yêu cầu xác minh danh tính của người dùng.
- Người dùng cung cấp bằng chứng về danh tính của họ, bằng chứng này được gửi đến trang web của Bên tích hợp thanh toán.
- Trình tích hợp tạo phản hồi (
authenticationResponse
) cho bằng chứng mà họ đã được cung cấp (vớiauthenticationResponse
được mã hoá trong thông báo). - URL phản hồi này được gửi đến người dùng.
- URL phản hồi được gửi ngay lập tức từ người dùng đến giao diện người dùng Google.
- Giao diện người dùng của Google sẽ gửi phản hồi từ Máy chủ Google.
- Máy chủ của Google diễn giải phản hồi là đã xác minh.
Sơ đồ trình tự tiếp theo cho thấy sự tương tác giữa điện thoại của người dùng, Google và ứng dụng Android của nhà tích hợp:
Quy trình xác thực ứng dụng Android bằng lệnh chuyển hướng
Sau đây là các đối tượng và ý nghĩa của chúng:
- Người dùng: Đây là người muốn thêm một phương thức thanh toán vào Tài khoản Google của họ.
- Giao diện người dùng Google: Trong trường hợp này là giao diện ứng dụng, nơi khách hàng bắt đầu thiết lập phương thức thanh toán.
- Máy chủ Google: Máy chủ phụ trợ tại Google thực hiện việc kiểm tra xác thực cùng với các tác vụ xác thực khác.
- APK Đơn vị tích hợp thanh toán: Ứng dụng của đơn vị tích hợp, trong đó người dùng có quyền truy cập vào tài khoản của đơn vị tích hợp đó.
- Máy chủ tích hợp thanh toán: Máy chủ phụ trợ của đơn vị tổng hợp, nơi lưu trữ thông tin của người dùng.
Vì đây là quy trình xác thực, nên chúng tôi đã giả định rằng người dùng đang sử dụng một ứng dụng (giao diện người dùng Google) và đang cố thêm phương thức thanh toán. Đây là lúc quá trình khởi chạy bắt đầu.
- Giao diện người dùng của Google tạo một lệnh gọi xác thực được gửi đến Máy chủ Google (máy chủ phụ trợ).
- Máy chủ Google tạo một yêu cầu xác thực (
AuthenticationRequest
). - Máy chủ Google gửi một tệp APK cuộc gọi đến giao diện người dùng (ứng dụng) Google để yêu cầu xác thực.
- Giao diện người dùng của Google gửi thông tin người dùng đến APK Nhà tích hợp thanh toán (
AUTHENTICATE_V1(authReq)
). - APK Nhà tích hợp thanh toán sẽ gửi yêu cầu (
authReq
) đến máy chủ của Bên tích hợp thanh toán. - Máy chủ Nhà tích hợp thanh toán sẽ gửi yêu cầu xác thực trở lại APK Nhà tích hợp thanh toán.
- APK Nhà tích hợp thanh toán sẽ gửi lại thử thách cho người dùng.
- Người dùng cung cấp bằng chứng về danh tính của họ. Bằng chứng này sẽ được gửi đến APK Nhà tích hợp thanh toán.
- Sau đó, bằng chứng này được gửi đến Máy chủ tích hợp thanh toán.
- Máy chủ sẽ tạo một
authenticationResponse
đã ký. - Phản hồi xác thực thành công và thông báo
authResp
sẽ được gửi tới APK Nhà tích hợp thanh toán. - Thông báo thành công (
authResp
) được gửi từ APK Nhà tích hợp thanh toán đến giao diện người dùng Google. - Giao diện người dùng của Google sẽ gửi phản hồi đến Máy chủ Google.
- Máy chủ Google diễn giải phản hồi thành công.
Xác thực OTP qua SMS-MT
Một phương thức xác thực khác là Dịch vụ tin nhắn ngắn, Dữ liệu di động bị chấm dứt, Mật khẩu một lần (SMS-MT OTP). Cơ chế này sử dụng số điện thoại của người dùng để gửi cho họ mật khẩu một lần nhằm xác thực. Google yêu cầu đơn vị tích hợp gửi OTP đến số điện thoại của người dùng. Sau khi người dùng nhận được, người dùng sẽ nhập mã này vào giao diện của Google, họ sẽ được xác minh.
Quá trình này bao gồm các bước sau:
- Giao diện người dùng (UI) của Google nhắc người dùng nhập số điện thoại đã được đăng ký với trình tích hợp.
- Người dùng nhập một số điện thoại vào giao diện người dùng của Google.
- Google kích hoạt trình tích hợp (gọi phương thức
sendOtp
) để gửi mật khẩu một lần (OTP) cho người dùng. - Người dùng sẽ nhận được tin nhắn SMS có mã OTP.
- Sau đó, người dùng nhập OTP (dùng làm dữ liệu đầu vào cho
capture
,associateAccount
vàverifyOtp
) mà họ nhận được vào giao diện của Google để xác thực người dùng. Đây là bằng chứng xác thực.
Ở chế độ độc lập, chỉ phương thức verifyOtp
sẽ được gọi để xác minh giá trị OTP.
Sơ đồ trình tự sau đây cho thấy sự tương tác giữa điện thoại của người dùng, Google và nhà tích hợp khi gửi OTP:
Quy trình xác thực qua điện thoại (gửi OTP)
Sau đây là danh sách các đối tượng trong sơ đồ và nội dung mà các đối tượng đó đại diện:
- Người dùng: Đây là người muốn thêm một phương thức thanh toán vào Tài khoản Google của họ.
- Giao diện người dùng Google: Trong trường hợp này là ứng dụng điện thoại hoặc trang web của Google mà khách hàng bắt đầu thiết lập phương thức thanh toán. Lưu ý: Nếu giao diện người dùng của Google là ứng dụng điện thoại, thì chúng tôi sẽ bỏ qua vài bước đầu tiên vì điện thoại đã biết số điện thoại của người dùng.
- Máy chủ Google: Máy chủ phụ trợ tại Google thực hiện việc kiểm tra xác thực cùng với các tác vụ xác thực khác.
- Máy chủ tích hợp thanh toán: Máy chủ phụ trợ của đơn vị tổng hợp, nơi lưu trữ thông tin của người dùng.
Vì đây là quy trình xác thực OTP, nên chúng tôi giả định rằng người dùng đang truy cập vào ứng dụng hoặc trang web dành cho điện thoại của Google (giao diện người dùng Google) và đang cố gắng thêm phương thức thanh toán. Đây là lúc quá trình khởi chạy bắt đầu.
- Giao diện người dùng của Google (trên điện thoại hoặc trang web) nhắc người dùng nhập số điện thoại của họ.
- Người dùng nhập số điện thoại của mình vào giao diện người dùng của Google.
- Giao diện người dùng của Google gửi số điện thoại (
sendChallenge(phoneNum)
) đến Máy chủ Google. - Máy chủ Google gửi yêu cầu đến Máy chủ tích hợp thanh toán (
SendOtp(phoneNum)
) để gửi mật khẩu một lần. - Máy chủ tích hợp thanh toán sẽ gửi mật khẩu một lần (OTP) cho người dùng.
- Máy chủ tích hợp thanh toán phản hồi yêu cầu của Google ở mục 5, báo hiệu OTP đã được gửi thành công.
- Người dùng nhập OTP này vào giao diện người dùng Google (điện thoại hoặc trang web).
- Giao diện người dùng của Google gửi OTP đến Máy chủ Google. Cuối cùng, mã này sẽ được gửi cho đơn vị tích hợp thanh toán để xác minh. Điều này sẽ xác minh danh tính của người dùng và xác thực người dùng.
Xác thực và xác thực lại
Có hai thời điểm có thể xác thực:
- Lần xác thực ban đầu – được dùng để nhận dạng và xác thực người dùng. Lần xác thực ban đầu được dùng làm dữ liệu đầu vào cho phương thức
associateAccount
. - Xác thực lại – được dùng trong tất cả các bối cảnh khác, chẳng hạn như độc lập hoặc làm dữ liệu đầu vào cho
capture
.
Xác thực lại khác với xác thực ban đầu. Hệ thống không bao giờ muốn xác định lại người dùng mà chỉ muốn xác thực lại. Google sử dụng phương pháp xác thực lại để yêu cầu người dùng chứng minh họ sở hữu một tài khoản cụ thể và Google có toàn quyền quyết định việc này.
Trong quá trình này, một tệp đối chiếu có tên là associationId
sẽ được cung cấp cho mối liên kết ban đầu (trong quy trình liên kết). Việc này được cung cấp thông qua lệnh gọi phương thức associateAccount
trong quy trình liên kết. associationId
xác định tài khoản cần xác minh. Để bảo mật, người dùng không được thay đổi tài khoản đang được kiểm tra.
Để xác thực lại SMS-MT OTP, Google sẽ lưu giữ số điện thoại được cung cấp trong cuộc gọi ban đầu đến sendOtp
dưới dạng số cố định. Bạn không thể thay đổi lại vì lý do bảo mật.
Dưới đây là quy trình mẫu trong đó Google quyết định xác thực lại (xác thực lại) trước khi mua hàng:
Quy trình xác thực lại
Sau đây là danh sách các đối tượng và nội dung mà các đối tượng đó đại diện:
- Người dùng: Đây là người muốn mua hàng.
- Giao diện người dùng Google: Trong trường hợp này, đó là ứng dụng điện thoại hoặc trang web của Google nơi khách hàng bắt đầu mua hàng.
- Giao diện người dùng của đơn vị tích hợp thanh toán: Trang web hoặc ứng dụng dành cho khách hàng, nơi người dùng có thể truy cập vào thông tin tài khoản của mình thông qua đơn vị tích hợp.
- Máy chủ Google: Máy chủ phụ trợ tại Google thực hiện việc kiểm tra xác thực lại cùng với các tác vụ khác.
- Máy chủ tích hợp thanh toán: Máy chủ phụ trợ của đơn vị tổng hợp, nơi lưu trữ thông tin của người dùng.
Quy trình xác thực lại bắt đầu khi khách hàng bắt đầu mua hàng. Thao tác này sẽ khởi tạo một luồng để xác thực lại người dùng.
- Người dùng quyết định mua một mặt hàng hoặc dịch vụ.
- Yêu cầu được gửi từ giao diện người dùng Google đến Máy chủ Google.
- Máy chủ Google gửi lại một yêu cầu xác thực (
authenticationRequest
) đến giao diện người dùng Google. - Giao diện người dùng của Google gửi yêu cầu đến giao diện người dùng tích hợp thanh toán để xác thực (
associationId
,authenticationRequest
) người dùng. - Giao diện người dùng tích hợp thanh toán tra cứu người dùng để xác minh danh tính của họ (
LookupIdentity
(associationId
)). - Giao diện người dùng của Nhà tích hợp thanh toán sẽ nhắc người dùng cung cấp thông tin xác thực trên giao diện người dùng của họ (trang web hoặc ứng dụng của nhà tích hợp).
- Phản hồi xác thực được gửi đến Máy chủ tích hợp thanh toán.
- Phản hồi xác thực đã ký (
authenticationResponse
) được gửi trở lại giao diện người dùng của Nhà tích hợp thanh toán. - Phản hồi xác thực (
authenticationResponse
) được gửi từ Giao diện người dùng tích hợp thanh toán đến giao diện người dùng Google. - Giao diện người dùng của Google gửi phản hồi kèm theo thông tin mua hàng đến Máy chủ Google.
- Máy chủ của Google gửi thông báo
capture
(để tìm số tiền hiện có) đến Máy chủ tích hợp thanh toán (authenticationRequestId
, GPT, số tiền). - Máy chủ tích hợp thanh toán sẽ gửi thông báo thành công trở lại Máy chủ Google.
- Máy chủ của Google sẽ gửi thông báo xác nhận thành công đến giao diện người dùng của Google.
- Giao diện người dùng của Google giao(các) mặt hàng đến khách hàng (hoặc thông báo cho họ rằng họ sẽ sớm giao hàng).
Xác thực SMS-MO
Dịch vụ thông báo ngắn, luồng xác thực khởi nguồn từ thiết bị di động sử dụng SMS chứa ID yêu cầu xác thực được gửi từ điện thoại của người dùng đến Nhà tích hợp thanh toán để xác thực người dùng.
Sau đây là danh sách các đối tượng trong sơ đồ và nội dung mà các đối tượng đó đại diện:
- Người dùng: Đây là người muốn thêm một phương thức thanh toán vào Tài khoản Google của họ.
- Giao diện người dùng/thiết bị của Google: Trong trường hợp này là ứng dụng điện thoại của Google mà khách hàng bắt đầu thiết lập phương thức thanh toán.
- Máy chủ Google: Máy chủ phụ trợ của Google có nhiệm vụ tạo hướng dẫn SMS có Mã yêu cầu xác thực (ARID) và nhận kết quả xác thực từ trình tích hợp.
- Máy chủ tích hợp thanh toán: Máy chủ phụ trợ của đơn vị tích hợp sẽ nhận SMS xác thực và trả về Mã yêu cầu xác thực cho Google.
Vì đây là quy trình xác thực, nên chúng tôi đã giả định rằng người dùng đang sử dụng một ứng dụng (giao diện người dùng Google) và đang cố thêm phương thức thanh toán. Đây là lúc quá trình khởi chạy bắt đầu.
- Người dùng chọn một công cụ được mã hoá để thêm.
- Giao diện người dùng của Google gọi Máy chủ Google để bắt đầu Thử thách SMS-MO.
- Máy chủ Google trả về các hướng dẫn SMS, bao gồm một đích và một phần nội dung chứa ID yêu cầu xác thực.
- Giao diện người dùng của Google gửi SMS đến Nhà tích hợp thanh toán.
- Máy chủ tích hợp thanh toán gọi điểm cuối validationResultNotification trên Máy chủ Google bằng Mã yêu cầu xác thực.
- Mã yêu cầu xác thực được Máy chủ Google xác thực và phản hồi THÀNH CÔNG.
- Giao diện người dùng của Google gọi Máy chủ Google để lấy kết quả của lần xác thực.
- Phản hồi của máy chủ Google THÀNH CÔNG.
Xác thực SMS-MO mô phỏng
Nhằm mục đích thực hiện kiểm tra chẩn đoán của quy trình Xác thực SMS-MO, Google xác định điểm cuối Mô phỏng SMS. Điều này giúp bạn không cần gửi và xác thực tin nhắn SMS thực khi thực hiện Liên kết kiểm tra trong môi trường hộp cát.
Sau đây là danh sách các đối tượng trong sơ đồ và nội dung mà các đối tượng đó đại diện:
- Người kiểm tra: Đây là người bắt đầu kiểm tra chẩn đoán liên kết SMS-MO.
- Giao diện người dùng Google: Giao diện người dùng của Google nơi người kiểm tra bắt đầu và theo dõi trạng thái kiểm tra chẩn đoán SMS-MO.
- Máy chủ Google: Máy chủ phụ trợ của Google có chức năng tạo hướng dẫn SMS có Mã yêu cầu xác thực (ARID), gửi tin nhắn SMS mô phỏng và nhận kết quả xác thực từ trình tích hợp.
- Máy chủ tích hợp thanh toán: Máy chủ phụ trợ của đơn vị tích hợp sẽ nhận SMS xác thực được mô phỏng và trả về Mã yêu cầu xác thực cho Google.
Các bước trong quy trình này là:
- Người kiểm tra bắt đầu kiểm tra chẩn đoán SMS-MO bằng cách cung cấp mã nhận dạng người đăng ký thử nghiệm (SID) để dùng cho kiểm tra. SID này sẽ được đưa vào lệnh gọi
simulateSms
đến Nhà tích hợp thanh toán. - Giao diện người dùng của Google gọi Máy chủ Google để bắt đầu Thử thách SMS-MO.
- Máy chủ Google trả về các hướng dẫn SMS, bao gồm một đích và một phần nội dung chứa ID yêu cầu xác thực. Trong phạm vi của thử nghiệm này, đích đến sẽ bị ghi đè bởi kết nối HTTPS trong hộp cát của Nhà tích hợp thanh toán.
- Giao diện người dùng của Google gọi Máy chủ Google để gửi tin nhắn SMS mô phỏng.
- Lệnh gọi
simulateSms
được thực hiện từ Máy chủ Google đến Máy chủ tích hợp thanh toán. Cả Mã yêu cầu xác thực và Mã người đăng ký (như đã cung cấp trong bước 1) đều được đưa vào lệnh gọi API. - Máy chủ tích hợp thanh toán phản hồi ACKNOWLEDGED.
- Máy chủ Google phản hồi THÀNH CÔNG theo giao diện người dùng Google.
- Máy chủ tích hợp thanh toán gọi điểm cuối validationResultNotification trên Máy chủ Google bằng Mã yêu cầu xác thực.
- Máy chủ Google phản hồi THÀNH CÔNG.
- Giao diện người dùng của Google gọi Máy chủ Google để lấy kết quả của lần xác thực.
- Máy chủ Google phản hồi là COMPLETED.
- Giao diện người dùng của Google gọi Máy chủ Google để thực thi nỗ lực Liên kết.
- Lệnh gọi
associateAccount
được thực hiện từ Máy chủ Google đến Máy chủ tích hợp thanh toán. - Máy chủ tích hợp thanh toán phản hồi THÀNH CÔNG.
- Máy chủ Google phản hồi THÀNH CÔNG.
- Giao diện người dùng của Google sẽ cập nhật để cho Người kiểm tra biết rằng kiểm tra chẩn đoán SMS-MO đã hoàn tất thành công.
Các phương pháp hay nhất và những điểm cần cân nhắc khác
Lựa chọn nền tảng
Việc cung cấp quy trình xác thực web dành cho thiết bị di động và ứng dụng di động sẽ giúp nhà tích hợp tiếp cận nhiều người dùng nhất. Các nhà tích hợp nên hỗ trợ ứng dụng Android vì ứng dụng này cung cấp trải nghiệm người dùng tốt nhất dẫn đến tỷ lệ chuyển đổi cao nhất. Tham số được chuyển vào API xác thực dành cho web và các ứng dụng Android là như nhau.