Bạn vừa triển khai Play Billing trong ứng dụng Android hoặc Ứng dụng web có thể cài đặt và người dùng có thể mua hàng hoá kỹ thuật số của bạn. Giờ là lúc bạn triển khai một số thành phần chính của Play Billing trong máy chủ phụ trợ.
API Nhà phát triển Google Play
API Nhà phát triển Google Play có 2 thành phần: API Gói thuê bao và giao dịch mua trong ứng dụng và Publishing API. API Gói thuê bao và Giao dịch mua hàng trong ứng dụng bao gồm các tài nguyên REST sau đây để giúp quản lý sản phẩm và giao dịch mua:
inappproducts: quản lý danh mục sản phẩm và gói thuê bao trong ứng dụngpurchases.products: trạng thái mua sản phẩm trong ứng dụngpurchases.subscriptions: trạng thái mua gói thuê bao và cách quản lý
Bạn có thể sử dụng trực tiếp API Nhà phát triển Google Play dưới dạng một API REST hoặc các thư viện ứng dụng có thể giúp bạn nhanh chóng bắt đầu phát triển. Bạn có thể tìm thấy các thư viện ứng dụng cho tất cả ngôn ngữ được hỗ trợ tại đây. Làm theo Hướng dẫn bắt đầu cho Google Play Developer API để liên kết dự án API và thiết lập các ứng dụng truy cập API.
Liệt kê tất cả sản phẩm trong ứng dụng
Khi truy vấn thông tin chi tiết về sản phẩm có sẵn trên giao diện người dùng (trên ứng dụng Android hoặc Ứng dụng web lũy tiến), bạn phải chỉ định danh sách mã sản phẩm. Bạn có thể triển khai phương thức này trong máy chủ phụ trợ bằng phương thức Play Developer API inappproducts.list. Phương thức này sẽ liệt kê tất cả sản phẩm trong ứng dụng và gói thuê bao mà bạn đã tạo trong Play Console. Hãy nhớ kiểm tra status của từng sản phẩm và chỉ gửi những sản phẩm active đến ứng dụng khách của bạn.
Xác minh giao dịch mua trước khi cấp quyền
Một phần quan trọng của việc triển khai Play Billing trong ứng dụng Android hoặc Ứng dụng web tiến bộ là đảm bảo bạn xác minh giao dịch mua trước khi cấp quyền cho người dùng. Khi cấp quyền sử dụng cho người dùng, bạn đang cấp quyền truy cập vào các lợi ích hoặc nội dung liên quan đến mặt hàng mà họ đã mua. Vì yêu cầu này cần xử lý dữ liệu nhạy cảm, nên bạn cần xử lý trên máy chủ phụ trợ.
API Nhà phát triển Google Play cung cấp các phương thức purchases.products:get và purchases.subscriptions:get. Hãy sử dụng các mã này cùng với mã thông báo giao dịch mua được truy xuất trong ứng dụng hoặc lưu trữ trên máy chủ phụ trợ của bạn để xác minh rằng giao dịch mua là hợp lệ. Bạn nên theo dõi mã thông báo giao dịch mua trên máy chủ phụ trợ để xác minh các giao dịch mua bổ sung và quyền của người dùng. Hãy xem tài liệu về Google Play Billing để xác minh giao dịch mua nhằm biết thêm thông tin chi tiết về các bước bạn nên thực hiện.
Mua hàng trong ứng dụng
Sau khi nhận được mã thông báo giao dịch mua từ ứng dụng, phần phụ trợ của bạn nên gọi API Nhà phát triển Google Play và xác thực rằng mã thông báo đó chưa được sử dụng. Trường purchaseState của một giao dịch mua hợp lệ là 1.
Nếu giao dịch mua hợp lệ, thì ứng dụng phải xác nhận giao dịch mua và cấp quyền sau khi nhận được phản hồi từ máy chủ.
Giao dịch mua gói thuê bao
Tương tự như việc xác minh giao dịch mua hàng trong ứng dụng, máy chủ phụ trợ của bạn nên gọi API Nhà phát triển Google Play sau khi nhận được mã thông báo giao dịch mua từ ứng dụng và xác thực rằng gói thuê bao vẫn còn hiệu lực.
Ứng dụng của bạn phải cấp quyền nếu trường expiryTimeMillis của gói thuê bao lớn hơn thời gian hiện tại.
Đây cũng là thời điểm thích hợp để kiểm tra trường linkedPurchaseToken và cập nhật cơ sở dữ liệu thuê bao một cách thích hợp để xử lý các quy trình nâng cấp, hạ cấp và các quy trình thuê bao khác. Phần còn lại của trang này sẽ trình bày chi tiết hơn.
Luôn cập nhật trạng thái phụ trợ
Nếu ứng dụng của bạn có trên nhiều nền tảng (cũng có thể sử dụng nhiều phương thức thanh toán), thì việc theo dõi người dùng và giao dịch mua của họ trên máy chủ phụ trợ sẽ đảm bảo rằng người dùng có thể truy cập vào cùng một quyền trên các thiết bị và nền tảng mà họ sử dụng ứng dụng của bạn.
Bạn có thể chỉ cần một cơ sở dữ liệu để lưu giữ hồ sơ người dùng và các quyền hiện tại của họ. Sau đó, khi họ mua hàng hoặc sử dụng các quyền của mình, bạn sẽ cập nhật thông tin đó cho phù hợp. Vào lần tiếp theo họ truy cập vào ứng dụng của bạn từ một nền tảng khác, bạn có thể truy xuất các quyền thích hợp của họ từ phần phụ trợ để người dùng có thể truy cập vào ứng dụng.
Xử lý các thay đổi về trạng thái gói thuê bao
Một gói thuê bao có thể trải qua nhiều thay đổi về trạng thái trong suốt vòng đời của mình và bạn phải đảm bảo phản hồi phù hợp với từng thay đổi. Tìm hiểu thêm về cách xử lý vòng đời của gói thuê bao để luôn cập nhật thông tin mới nhất cho phần phụ trợ.
Subscription linkedPurchaseToken
Như được nêu trong tài liệu về gói thuê bao, mọi quy trình mua hàng mới trên Google Play (giao dịch mua ban đầu, nâng cấp hoặc hạ cấp) đều tạo ra một mã thông báo giao dịch mua mới. Trường linkedPurchaseToken giúp bạn nhận biết khi có nhiều mã thông báo giao dịch mua thuộc về cùng một gói thuê bao.
Mỗi lần bạn xác minh một gói thuê bao, phần phụ trợ của bạn phải kiểm tra xem trường linkedPurchaseToken có được đặt hay không. Nếu có, giá trị trong trường đó sẽ biểu thị mã thông báo trước đó hiện đã được thay thế. Bạn nên đánh dấu ngay mã thông báo trước đó là không hợp lệ để người dùng không thể sử dụng mã thông báo đó để truy cập vào nội dung của bạn.
Ví dụ: khi nhận được mã thông báo giao dịch mua A cho giao dịch mua ban đầu, với trường linkedPurchaseToken trống, phần phụ trợ sẽ bật quyền cho mã thông báo đó. Sau đó, khi nhận được mã thông báo giao dịch mua mới B sau khi nâng cấp, phần phụ trợ sẽ kiểm tra trường linkedPurchaseToken, thấy rằng trường này được đặt thành A và vô hiệu hoá quyền cho mã thông báo giao dịch mua A.

Để biết thông tin chi tiết về cách triển khai linkedPurchaseToken, hãy truy cập vào bài viết Triển khai linkedPurchaseToken chính xác để ngăn các gói thuê bao trùng lặp.
Thông báo theo thời gian thực dành cho nhà phát triển
Phương thức purchases.subscriptions:get của API Nhà phát triển Google Play là nguồn thông tin đáng tin cậy để quản lý gói thuê bao của người dùng. Nếu quản lý trạng thái của người đăng ký trên một máy chủ phụ trợ bảo mật, bạn nên đồng bộ hoá trạng thái đó với các máy chủ của Google. Tuy nhiên, việc thường xuyên thăm dò API của Nhà phát triển Google Play có thể dẫn đến việc đạt đến hạn mức API và chậm nhận được thông báo về các hành động quan trọng của người dùng (chẳng hạn như huỷ hoặc nâng cấp gói thuê bao).
Thông báo theo thời gian thực dành cho nhà phát triển (RTDN) là một tính năng của Google Play Billing. Tính năng này sẽ gửi thông báo tức thì cho máy chủ của bạn khi trạng thái quyền của người đăng ký thay đổi (ví dụ: gói thuê bao đã mua, gói thuê bao đã huỷ, gói thuê bao đang tạm ngưng). Với RTDN, bạn chỉ cần phản hồi những thông báo này là có thể giữ cho cơ sở dữ liệu người đăng ký luôn đồng bộ, thay vì thường xuyên thăm dò API Nhà phát triển Google Play.
Máy chủ phụ trợ của bạn sẽ nhận được SubscriptionNotification đối với các sự kiện ảnh hưởng đến trạng thái gói thuê bao, chẳng hạn như các lần gia hạn và huỷ. Sau đó, hãy gọi API Nhà phát triển Google Play bằng mã thông báo giao dịch mua trong thông báo để nhận trạng thái đầy đủ và cập nhật trạng thái phụ trợ của riêng bạn.
Bạn có thể định cấu hình RTDN cho ứng dụng của mình bằng cách làm theo các hướng dẫn này. Sau đó, bạn nên thiết lập máy chủ phụ trợ để sử dụng những thông báo này.
Xem toàn bộ tài liệu tham khảo về RTDN để biết thêm thông tin.