Thanh toán chuẩn của Google:

Phương thức thanh toán được mã hoá

Tổng quan

Phương thức thanh toán (FOP) được mã hoá là một phương thức tích hợp thanh toán vào Nền tảng thanh toán. Để người dùng thanh toán bằng FOP này, Google và Nhà tích hợp thanh toán phải thực hiện trao đổi một lần thông tin xác thực nhận dạng tài khoản. Sau đó, quy trình thiết lập mã thông báo, đại diện cho phương thức thanh toán đó cho người dùng cụ thể. Sau đó, bạn có thể dùng mã thông báo này để thanh toán nhiều lần. Hiện có 2 phiên bản của các API này. Phiên bản 2 hỗ trợ các nhà mạng di động và nhà cung cấp số tham chiếu. Tất cả các nhà cung cấp phương thức FOP được mã hoá khác nên triển khai phiên bản 1. Phần còn lại của tài liệu này tập trung vào phiên bản 1.

Google sử dụng 2 quy trình để thiết lập danh tính và tạo mã thông báo này:

  1. Luồng xác thực: Xác định và xác minh (xác thực) người dùng.
  2. Quy trình liên kết: Thiết lập mã thông báo cho người dùng (mới hoặc đã được xác định và xác thực trước đó). Mã thông báo này đại diện cho một phương thức thanh toán cụ thể của một người dùng cụ thể. Sau đó, mã thông báo này có thể được sử dụng trong các giao dịch mua trong tương lai.

Sau khi thiết lập mã thông báo, Google sẽ sử dụng mã này trong quy trình mua để mang lại trải nghiệm thanh toán nhanh chóng và liền mạch cho người dùng. Google sử dụng mã thông báo này để đại diện cho bản sao phương thức thanh toán của khách hàng. Phương thức này còn được gọi là một công cụ. Một khách hàng của Google có thể sử dụng nhiều phương thức thanh toán cho hàng hoá và dịch vụ.

Cuối cùng, toàn bộ hoạt động chuyển tiền giữa ngân hàng của nhà tích hợp và ngân hàng của Google đều được thực hiện trong quy trình chuyển tiền.

Chọn sản phẩm
1) Người dùng chọn một sản phẩm để mua
Chọn phương thức thanh toán
2) Tiếp theo, người này chọn một phương thức thanh toán
Thêm phương thức thanh toán
3) Bây giờ, họ thêm một phương thức thanh toán mới
Chuyển hướng
4) Các sự kiện này được chuyển hướng để xác thực
Đã xác thực
5) Cuối cùng, họ sẽ được xác thực và có thể mua

Sơ đồ này minh hoạ thông tin tổng quan chung về các luồng:

Tổng quan về phương thức thanh toán được mã hoá

Biểu đồ tổng quan về phương thức thanh toán được mã hoá

Nhìn chung, việc thêm dịch vụ của bạn vào các sản phẩm của Google làm phương thức thanh toán sẽ bao gồm những quy trình sau:

  1. Luồng xác thực
  2. Quy trình liên kết
  3. Quy trình mua
  4. Quy trình hoàn tiền
  5. Quy trình chuyển tiền

Các quy trình này được mô tả chi tiết hơn trong các phần dưới đây và thậm chí còn chi tiết hơn trong phần hướng dẫn.

Khái niệm và thuật ngữ

Biểu tượng và quy ước

Các từ khoá "PHẢI", "KHÔNG ĐƯỢC", "BẮT BUỘC", "SÁCH", "KHÔNG NÊN", "NÊN", "KHÔNG NÊN", "ĐƯỢC ĐỀ XUẤT", "CÓ THỂ" và "KHÔNG BẮT BUỘC" trong những tài liệu này sẽ được hiểu như mô tả trong RFC 2119.

Dấu thời gian

Tất cả dấu thời gian được biểu thị dưới dạng mili giây kể từ thời gian bắt đầu của hệ thống Unix (ngày 1 tháng 1 năm 1970) theo giờ UTC.

Ví dụ:

  • Ngày 23 tháng 4 năm 2019 8:23:25 CH GMT = 1556051005000 mili giây
  • Ngày 16 tháng 8 năm 2018 12:28:35 CH GMT = 1534422515000 mili giây

Số Lượng

Giá trị tiền tệ trong API này có định dạng được gọi là "phần triệu", một tiêu chuẩn tại Google. Micros là một định dạng dựa trên số nguyên, chính xác cố định. Để biểu thị giá trị tiền tệ bằng phần triệu, hãy nhân giá trị tiền tệ tiêu chuẩn với 1.000.000.

Ví dụ:

  • 1,23 USD = 1230000 micro USD
  • 0,01 USD = 10.000 micro USD

Tính không xác định

Tất cả lệnh gọi phương thức trong API này phải có hành vi giống nhau. Google sẽ ngẫu nhiên thử lại yêu cầu để đảm bảo rằng các giao dịch đều ở cùng trạng thái ở cả hai bên. Trình tích hợp không được cố gắng xử lý lại bất kỳ yêu cầu nào đã được xử lý thành công. Phản hồi cho quá trình xử lý thành công sẽ được báo cáo thay thế. Tất cả các phương thức đều có một RequestHeader chung chứa requestId. requestId này là khoá không thay đổi giá trị cho tất cả lệnh gọi.

Mọi phản hồi không phải thiết bị đầu cuối (không phải là phản hồi HTTP 200 thành công) đều không được xử lý một cách tự nhiên. Vì vậy, một yêu cầu trước đó đã nhận được 400 (yêu cầu không tốt/điều kiện tiên quyết không thành công), khi được gọi lần thứ hai, không được trả về 400 không đáng kể, nó phải được đánh giá lại. Khi đánh giá lại, bài đánh giá có thể trả về 400 hoặc được xử lý thành công.

Để biết thêm thông tin về trường hợp không xác định được, hãy xem hướng dẫn chi tiết này.

Nhà tích hợp

Công ty sử dụng Nền tảng thanh toán của Google cho doanh nghiệp của họ. Đó có thể là doanh nghiệp nội bộ (bên thứ nhất), chẳng hạn như YouTube hoặc AdWords. Đó cũng có thể là doanh nghiệp bên ngoài (bên thứ ba) muốn tích hợp dịch vụ của họ để phù hợp với hệ sinh thái của Google.

Phương thức thanh toán

Phương thức thanh toán. Đây là phương pháp chung chung hơn một công cụ. Thẻ Visa, MasterCard và PayPal đều là phương thức thanh toán.

Công cụ

Một trường hợp cụ thể của phương thức thanh toán của một khách hàng cụ thể. Ví dụ: thẻ tín dụng hoặc tài khoản PayPal của người dùng. Phương thức thanh toán được mã hoá cho một khách hàng cụ thể cũng là một phương thức thanh toán, vì đó là một phương thức thanh toán của khách hàng đó và được lưu trữ an toàn trên hệ thống của chúng tôi.

Mã thông báo

Nội dung trình bày phương thức thanh toán của một người dùng cụ thể trên hệ thống của Google. Vì mã này chứa tất cả thông tin cần thiết để thực hiện giao dịch mua, nên mã thông báo cũng là một công cụ. Thông tin này có thể bao gồm những thông tin như số tài khoản mà người dùng có với đơn vị tích hợp của họ.

Luồng chính

Luồng xác thực

Xác thực là quy trình đầu tiên phải được thực hiện. 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 trình tích hợp. Quá trình xác thực có thể xảy ra theo một số cách. Phương thức thanh toán được mã hoá hỗ trợ hai cách để nhận dạng và xác thực người dùng:

  1. Xác thực SMS-MT OTP (Đã chấm dứt SMS-MT trên thiết bị di động, mật khẩu một lần)
  2. Chuyển hướng xác thực

Trong quá trình tham gia, các bên tích hợp sẽ làm việc với Google để chọn cơ chế xác thực phù hợp nhất với sản phẩm của họ.

Có thể sử dụng quy trình xác thực trong hai ngữ cảnh: thứ nhất là xác định khách hàng mới để tạo liên kết và thứ hai là yêu cầu người dùng cung cấp thông tin xác thực của một công cụ hiện có. Kết quả của quy trình xác thực có thể được dùng làm dữ liệu đầu vào cho nhiều quy trình, chẳng hạn như quy trình liên kết, quy trình mã làm mới, quy trình mua thử thách, v.v. Ngoài ra, quy trình xác thực có thể được sử dụng trong chế độ độc lập, không gắn liền với bất kỳ quy trình nào tiếp theo.

Xác thực OTP qua SMS-MT

Trong cơ chế xác thực này, 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 gửi số điện thoại này đến đơn vị tích hợp (thông qua phương thức sendOtp). Trình tích hợp gửi mật khẩu một lần cho người dùng. Người dùng nhập mật khẩu vào giao diện người dùng của Google rồi gửi mật khẩu đến trình tích hợp. Thao tác này sẽ kích hoạt phản hồi thành công của Nhà tích hợp thanh toán.

Khi sử dụng phương thức xác thực OTP qua SMS-MT ở chế độ độc lập, giá trị của OTP sẽ được gửi đến đơn vị tích hợp bằng phương thức verifyOtp. Phương thức này xác minh rằng OTP mà bạn cung cấp chính là người đã gửi.

Chuyển hướng xác thực

Quá trình xác thực chuyển hướng xảy ra khi Google chuyển hướng người dùng đến một ứng dụng do nhà tích hợp sở hữu. Ứng dụng đó có thể là ứng dụng web hoặc ứng dụng Android.

Các lệnh chuyển hướng trên Android và Web hoạt động tương tự nhau. Google chuyển hướng người dùng đến ứng dụng của trình tích hợp. Trình tích hợp sẽ nhận dạng và xác thực người dùng theo bất kỳ hình thức nào phù hợp nhất với trình tích hợp đó. Sau khi được xác thực, trình tích hợp sẽ chuyển hướng người dùng quay lại giao diện người dùng của Google để hoàn tất việc liên kết. Sau khi chuyển hướng, Google cung cấp một requestId để xác định phiên xác thực này. Sau đó, giá trị nhận dạng đó sẽ được dùng làm bằng chứng xác thực danh tính trong quá trình Liên kết.

Các nhà tích hợp chọn quy trình này phải cung cấp URL xác thực trên web vì đây là mẫu số phổ biến nhất trên tất cả nền tảng (máy tính hoặc thiết bị di động). Tuy nhiên, bạn nên sử dụng phương thức xác thực Android để mang đến trải nghiệm tốt nhất cho người dùng trên thiết bị di động.

Tuỳ thuộc vào bối cảnh của thiết bị và các ứng dụng đã cài đặt, giao diện người dùng của Google sẽ chọn lệnh chuyển hướng web hoặc ứng dụng Android.

Cơ chế xác thực này cung cấp cho bên tích hợp nhiều quyền tự do nhất. Có nhiều cách để xác thực và nhận dạng người dùng. Tên người dùng + mật khẩu hoặc thông tin sinh trắc học và câu hỏi bảo mật đều là các giải pháp khả thi. Google không có ý định chỉ rõ cách nhà tích hợp xác minh người dùng. Trình tích hợp sẽ xử lý quá trình xác thực người dùng. Bằng cách này, Google dự định tận dụng nhiều giao diện người dùng khác nhau của nhà tích hợp để xác thực người dùng và chỉ cần cung cấp cho Google bằng chứng xác thực.

Để biết thêm thông tin về cách xác thực, hãy xem hướng dẫn chi tiết này.

Quy trình liên kết

Sau quy trình xác thực qua một trong các cơ chế nêu trên, người dùng sẽ chuyển qua quy trình liên kết. Mục đích của quy trình liên kết là thiết lập Mã thông báo thanh toán của Google (GPT) để tạo một phương thức thanh toán. Quy trình này thực hiện những việc sau:

  1. Thương lượng một danh tính được gọi là mã thông báo để đại diện cho người dùng này.
  2. Cung cấp thông tin tài khoản để thông báo cho công cụ xác định rủi ro của Google.
  3. Thu thập thông tin thiết lập cần thiết trong lần đầu tiên để tạo và thiết lập GPT.

Kết quả là GPT đã thiết lập được cả Google và nhà tích hợp đồng ý.

Hai người dùng Google có thể dùng chung một tài khoản của người dùng với công cụ tích hợp. Trong trường hợp này, mỗi người dùng sẽ có một phương thức riêng. Đối với mỗi công cụ có một luồng liên kết độc lập, do đó sẽ có một GPT duy nhất.

Hình minh hoạ này sẽ hướng dẫn bạn cách thực hiện một phương thức FOP được mã hoá giả mạo có tên là InvisiCash. Hình này minh hoạ các bước mà người dùng sẽ thực hiện đối với quy trình xác thựcquy trình liên kết.

Tổng quan về quy trình liên kết

Phương thức thanh toán bằng phương thức thanh toán được mã hoá

  1. Một người dùng Google có địa chỉ email là sf@gmail.com muốn thêm tài khoản InvisiCash của mình vào Cửa hàng Google Play để cô ấy có thể sử dụng tài khoản này để mua hàng.
  2. Cửa hàng Google Play sẽ mở ứng dụng InvisiCash để xác thực.
  3. Người dùng này đăng nhập vào tài khoản InvisiCash của mình bằng địa chỉ email sally@otheremail.com. Có thể người này sẽ sử dụng địa chỉ email Gmail của mình cho cả hai trường hợp nếu đó là thông tin đăng nhập cho tài khoản InvisiCash của cô ấy.

  4. Ứng dụng InvisiCash gửi lại mã xác thực cho Cửa hàng Google Play.

  5. Cửa hàng Google Play sẽ gửi mã xác thực đến Máy chủ Google.

  6. Máy chủ Google gửi thông báo đến máy chủ InvisiCash để liên kết tài khoản. Mối liên kết này bao gồm Mã xác thực, GPT (Mã thông báo thanh toán của Google) và mã liên kết.

  7. Máy chủ InvisiCash lưu trữ Google Payment Token (GPT) và mã liên kết. Cả hai đều hiện đều liên kết với tài khoản InvisiCash của Sally.

  8. InvisiCash phê duyệt liên kết này. Sau đó, Máy chủ của Google sẽ tạo một công cụ có thể được sử dụng cho các giao dịch mua sau này.