• Android
  • Nodejs
  • JavaScript
  • Tin tức
  • Server
No Result
View All Result
AeDev.Net
  • Android
  • Nodejs
  • JavaScript
  • Tin tức
  • Server
No Result
View All Result
AeDev.Net
No Result
View All Result

Triển khai RTDN trong NodeJS Backend (Phần 2) — Hướng dẫn đầy đủ về đăng ký trong Google Play

admin by admin
02/11/2022
in Android, JavaScript, Nodejs
1
Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play
Share on FacebookShare on Twitter

Trong phần này, chúng tôi sẽ tạo dịch vụ phụ trợ của mình để tích hợp với Thông báo của Google Cloud mà chúng tôi đã thiết lập trong Phần 1. Nếu bạn không có chủ đề Google PubSub được định cấu hình với Google Play Console, trước tiên bạn cần xem qua phần 1.

  1. Thiết lập Cloud Pub/Sub bằng dự án Google Cloud Platform (GCP) của riêng bạn — Phần 1
  2. Tạo chủ đề — Phần 1
  3. Cho phép Google Play xuất bản thông báo cho chủ đề — Phần 1
  4. Cho Google Play Console biết về chủ đề của bạn — Phần 1

Liên kết đến Phần 1:

Nội dung chính của bài viết

    • Triển khai tính năng Giữ tài khoản — Hướng dẫn đầy đủ về các gói đăng ký trong Google Play
      • Bắt đầu từ ngày 1 tháng 2020 năm XNUMX, Google đã bắt buộc bất kỳ nhà phát triển nào cung cấp đăng ký trong ứng dụng phải triển khai…
  • Sự tiến bộ của chúng tôi cho đến nay
  • 1. Nhận khóa xác thực
  • Tạo dịch vụ backend của chúng tôi
  • 2. Thiết lập dịch vụ NodeJS
  • 3. Xác minh rằng bạn đang nhận được thông báo
  • Một số nút thắt cổ chai
  • 4. Cập nhật chương trình phụ trợ của bạn với thay đổi đăng ký mới

Triển khai tính năng Giữ tài khoản — Hướng dẫn đầy đủ về các gói đăng ký trong Google Play

Bắt đầu từ ngày 1 tháng 2020 năm XNUMX, Google đã bắt buộc bất kỳ nhà phát triển nào cung cấp đăng ký trong ứng dụng phải triển khai…

Bây giờ đối với dịch vụ backend, các bước còn lại là:

  1. Nhận khóa xác thực cho chương trình phụ trợ của bạn
  2. Thêm dịch vụ backend của bạn với tư cách là người đăng ký vào chủ đề
  3. Xác minh rằng bạn đang nhận được thông báo
  4. Cập nhật chương trình phụ trợ của bạn với thay đổi đăng ký mới
  5. Và đó là tất cả!

Sự tiến bộ của chúng tôi cho đến nay

Chúng tôi đã thiết lập một chủ đề Cloud Pub/Sub. ID chủ đề của chúng tôi là:
projects/myproject-293415/topics/UserSubscriptionUpdates.

Chúng tôi cũng thiết lập một Đăng ký, có ID là:
projects/myproject-293415/subscriptions/BackendSubscriber

Và trên đăng ký này, chúng tôi có thể thấy thông báo thử nghiệm mà chúng tôi đã gửi từ Google Play Console — menu Thiết lập kiếm tiền.

1. Nhận khóa xác thực

Để dịch vụ backend của chúng tôi có thể xem đăng ký, chúng tôi cần có cách xác thực. Đối với điều này, chúng tôi sẽ cần những gì được gọi là Tài khoản dịch vụ.

Đi tới https://console.cloud.google.com/apis/— đảm bảo rằng dự án ở trên cùng là dự án được định cấu hình với PubSub.

Từ menu bên trái, hãy chọn Thông tin đăng nhập. Và từ đây, chọn Tạo thông tin đăng nhập -> tài khoản dịch vụ.

Hãy đặt tên cho nó là MyBackendService và chọn Tạo. Đối với các vai trò, bạn có thể chọn một trong các tùy chọn sau:

Pub / Sub Editor-> Nếu bạn muốn có thể tạo chủ đề mới và đăng ký mới từ chương trình phụ trợ.

Pub / Sub Subscriber-> Nếu bạn chỉ muốn dịch vụ phụ trợ của mình chỉ có thể Đăng ký và không muốn cấp cho nó quyền truy cập để sửa đổi cấu hình chủ đề của bạn.

Chúng tôi sẽ chọn Trình chỉnh sửa cho bài viết này và chọn Tiếp tục rồi chọn xong.

Bây giờ trong bảng điều khiển, chúng tôi sẽ chọn tài khoản dịch vụ mới tạo của mình để mở trang chi tiết của nó. Và từ đây, chúng ta sẽ chọn Add Key -> Create New Key -> JSON -> Create.

Thao tác này sẽ tải xuống tệp JSON. Bạn nên lưu trữ nó một cách an toàn vì bất kỳ ai có khóa này sẽ có thể truy cập vào google console và tùy thuộc vào các quyền bạn đã chọn ở trên, có thể sửa đổi mọi thứ cho phù hợp.

Tạo dịch vụ backend của chúng tôi

Đối với bài viết này, chúng tôi sẽ sử dụng NodeJS. Tôi cũng sẽ tải lên một ví dụ Kotlin / JVM sau này.

Bây giờ hãy tạo một dịch vụ backend nhỏ của chúng ta trong NodeJS. Với mục đích của bài viết này, tôi giả sử máy của bạn đã cài đặt NodeJS.

Tạo một thư mục mới ở bất cứ đâu trên máy tính để bàn của bạn và gọi nó là BackendService. Sao chép tệp json của bạn vào thư mục này.

2. Thiết lập dịch vụ NodeJS

Tạo một tệp mới bằng trình chỉnh sửa yêu thích của bạn, tôi đang sử dụng Visual Studio Code. Hãy gọi nó là,. Sao chép tệp JSON của bạn vào cùng một thư mục.SubscriberService.js

Vì vậy, bây giờ trên máy tính để bàn của tôi, cómà chứa:Desktop/BackendService/NodeJS
my-key.json
SubscriberService.js

Sao chép mã sau vào Người đăng ký.js của bạn:

// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');

async function quickstart(
  projectId = 'myproject-293415', // Your Google Cloud Platform project ID
  subscriptionName = 'BackendSubscriber' // Name of our subscription
) {
  // Instantiates a client
  const pubsub = new PubSub({projectId});

  // Get our created subscription
  const subscription = pubsub.subscription(subscriptionName);
  console.log(`Subscription ${subscription.name} found.`);

  // Receive callbacks for new messages on the subscription
  subscription.on('message', message => {
    console.log('Received message:', message.data.toString());
   // process.exit(0);
  });

  // Receive callbacks for errors on the subscription
  subscription.on('error', error => {
    console.error('Received error:', error);
    process.exit(1);
  });
}

console.log('Running');
quickstart();

Bây giờ chúng ta cần cài đặt các dependency của chúng ta.

Thêm thông tin xác thực

Mở thiết bị đầu cuối của bạn và đi đến thư mục gốc của dự án của bạn, trong trường hợp này. Và sau đó chạy:Desktop/BackendService/NodeJS

export GOOGLE_APPLICATION_CREDENTIALS="my-key.json"

Bạn nên thay đổi tên tệp từ tên tệp của khóa của riêng bạn. Bây giờ cài đặt Thư viện PubSub trên cùng một thư mục.my-key.json

npm install @google-cloud/pubsub

Thao tác này sẽ cài đặt thư viện phụ pub cho dự án của chúng ta. Và chúng tôi đã hoàn tất. Bây giờ hãy chạy dự án bằng cách sử dụng:

node SubscriberService.js

Và bạn sẽ thấy các thông báo chủ đề của mình được hiển thị trong nhật ký.

3. Xác minh rằng bạn đang nhận được thông báo

Để phiên này trên thiết bị đầu cuối chạy và quay lại Google Play Console. Mở trang tổng quan ứng dụng của bạn và từ menu bên trái, đi tới Thiết lập kiếm tiền và chọn Gửi thông báo thử nghiệm một lần nữa. Bạn sẽ thấy thông báo này được hiển thị trên thiết bị đầu cuối của mình ngay bây giờ. Nếu có, xin chúc mừng! Bây giờ bạn có thể phản ứng với thông báo này và cập nhật thông tin của người đăng ký trong chương trình phụ trợ. Khi trạng thái đăng ký của người dùng thay đổi, bạn sẽ nhận được thông báo ở định dạng sau:

{
"version":"1.0",
"packageName":"com.example.yourapppackagename",
"eventTimeMillis":"1603363939665",
"subscriptionNotification":{
"version":"1.0",
"notificationType":4,
"purchaseToken":"asdasdasdasdasdasdasasdexampleasdasdasd",
"subscriptionId":"yearly_subscription"
}
}

Bạn có thể xem tất cả thông tin này trên callback subscription.on.

// Receive callbacks for new messages on the subscription  subscription.on('message', message => {    
console.log('Received message:', message.data.toString());
const purchaseToken = message.data.subscriptionNotification.purchaseToken
const notificationType = message.data.subscriptionNotification.notificationType // you can update your backend here using the purchase token
});

Và đó là nó! Bây giờ bạn có thể cập nhật chương trình phụ trợ của mình bằng cách sử dụng uniqueand.purchaseTokennotificationType

Một số nút thắt cổ chai

Tôi đã gặp phải nhiều nút thắt cổ chai khác nhau khi làm việc trên dịch vụ backend hiện có của chúng tôi trên NodeJS. Cụ thể, dịch vụ backend của chúng tôi đang sử dụng TypeScript và Docker để triển khai.

Vấn đề: Chúng tôi đã có thể xem các chủ đề và đăng ký. Nhưng chúng tôi đã không nhận được bất kỳ cuộc gọi lại nào trên ourmethod.subscription.on

Sau rất nhiều lần khắc phục sự cố, chúng tôi phát hiện ra rằng đối với phần phụ trợ của mình, một cách khắc phục đơn giản là triển khai các cuộc gọi lại này bằng GRPC. Tất cả những gì bạn cần làm là:

  1. npm install grpc, addingas một sự phụ thuộc.grpc
  2. instantiate with :@google-cloud/pubsubgrpc
const {PubSub} = require('@google-cloud/pubsub'); 
const grpc = require('grpc');

3. Và cuối cùng, tạo ứng dụng khách PubSub của bạn với:

const pubsub = new PubSub({grpc});

4. Cập nhật chương trình phụ trợ của bạn với thay đổi đăng ký mới

Loại thông báolà một số nguyên sẽ là 5 trong trường hợp giữ tài khoản. Dưới đây là danh sách đầy đủ tất cả các thông báo mà dịch vụ của bạn sẽ nhận được từ Google Cloud Pub / Sub:

  • (1) SUBSCRIPTION_RECOVERED — Một đăng ký đã được khôi phục từ việc giữ tài khoản.
  • (2) SUBSCRIPTION_RENEWED — Gói đăng ký đang hoạt động đã được gia hạn.
  • (3) SUBSCRIPTION_CANCELED – Đăng ký đã bị hủy một cách tự nguyện hoặc không tự nguyện. Đối với hủy tự nguyện, được gửi khi người dùng hủy.
  • (4) SUBSCRIPTION_PURCHASED — Một đăng ký mới đã được mua.
  • (5) SUBSCRIPTION_ON_HOLD — Đăng ký đã bị giữ tài khoản (nếu được bật).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD — Đăng ký đã bước vào thời gian gia hạn (nếu được bật).
  • (7) SUBSCRIPTION_RESTARTED — Người dùng đã kích hoạt lại đăng ký của họ từ Đăng ký tài khoản > Play > (yêu cầu chọn tham gia khôi phục đăng ký).
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED — Người dùng đã xác nhận thành công việc thay đổi giá đăng ký.
  • (9) SUBSCRIPTION_DEFERRED — Thời gian lặp lại của đăng ký đã được kéo dài.
  • (10) SUBSCRIPTION_PAUSED — Đăng ký đã bị tạm dừng.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED — Lịch tạm dừng đăng ký đã được thay đổi.
  • (12) SUBSCRIPTION_REVOKED — Đăng ký đã bị thu hồi khỏi người dùng trước thời gian hết hạn.
  • (13) SUBSCRIPTION_EXPIRED — Đăng ký đã hết hạn.

Tham khảo:https://developer.android.com/google/play/billing/rtdn-reference

Để tạm ngưng tài khoản, bạn sẽ cần phản ứng với loại thông báo 5:

  1. Chặn quyền truy cập của người dùng vào nội dung của bạn
  2. Hiển thị thông báo cho họ biết rằng thanh toán của họ không thành công
  3. Định tuyến cho họ để sửa phương thức thanh toán trên Cửa hàng Google Play
  4. Được đề xuất – Xem trạng thái cập nhật của đăng ký bằng cách sử dụng mã thông báo mua để cập nhật thời gian hết hạn, v.v.

Khi họ đã sửa nó, máy chủ phụ trợ của bạn sẽ nhận được thông báo loại 1. Đó là khi bạn:

  1. Khôi phục quyền truy cập của người dùng vào nội dung của bạn
  2. Hiển thị cho họ thông báo khôi phục

Và đó là tất cả!

Tags: google playgoogle subscriptionplay storesubscription

Related Posts

Quy ước đặt tên JavaScript
JavaScript

Quy ước đặt tên JavaScript

Js  phân biệt chữ hoa , chữ thườngĐặt tên biến phải có nghĩa  đọc là hiểu ngay ,để không...

by admin
04/12/2022
Android Bluetooth Low Energy (BLE) – Part 1
Android

Android Bluetooth Low Energy (BLE) – Part 1

Chào các bạn, hiện tại mình đang làm một dự án liên quan đến BLE (Bluetooth Low Energy). Mình...

by admin
02/12/2022
Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play
Android

Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play

Kể từ ngày 1 tháng 11 năm 2020, Google đã bắt buộc bất kỳ nhà phát triển nào cung...

by admin
06/01/2023
Tông quan về javascript, typescript và ES6
JavaScript

Tông quan về javascript, typescript và ES6

Javascript là gì? JavaScript là ngôn ngữ lập trình phổ biến dùng để tạo ra các trang web tương tác. Được tích...

by admin
23/08/2022
Next Post
Android Bluetooth Low Energy (BLE) – Part 1

Android Bluetooth Low Energy (BLE) - Part 1

0 0 votes
Xếp hạng bài viết
Subscribe
Login
Thông báo về
guest
guest
1 Bình luận
Cũ nhất
Mới nhất Được bình chọn nhiều nhất
Phản hồi nội tuyến
Xem tất cả các bình luận
trackback
Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play – AeDev.Net
2 months ago

[…] Triển khai tính năng Giữ tài khoản (Phần 2) — Hướng dẫn đầy đủ về đăng k… […]

0
Trả lời

Bài viết nổi bật

  • Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play

    Triển khai RTDN trong NodeJS Backend (Phần 2) — Hướng dẫn đầy đủ về đăng ký trong Google Play

    0 shares
    Share 0 Tweet 0
  • Tông quan về javascript, typescript và ES6

    0 shares
    Share 0 Tweet 0
  • Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play

    0 shares
    Share 0 Tweet 0
  • Quy ước đặt tên JavaScript

    0 shares
    Share 0 Tweet 0
  • Top 10 thư viện React Native bạn nên biết năm 2022

    0 shares
    Share 0 Tweet 0
AeDev.Net

AeDev là website học lập trình miễn phí. Với nhiều khóa học, tài liệu được thiết kế và biên tập tỉ mỉ từ những thành viên nhiều kinh nghiệm thực chiến trong ngành phần mềm. Chúng tôi không ngừng cải thiện chất lượng nội dung, cho ra nhiều bài viết chuyên sâu về những công nghệ mới như: Node.js, React Native, Android, Cloud... Trong quá trình học lập trình, bạn hoàn toàn có thể tương tác, đặt câu hỏi trực tiếp với các tác giả.
Liên hệ chúng tôi: [email protected]

Đăng ký nhận bài viết mới

© 2022 AeDev - Created by LilWind.

DMCA compliant image
No Result
View All Result
  • Buy JNews
  • Homepage
    • Home – Layout 1
  • JavaScript
  • Tin tức
  • Server
  • Nodejs
  • Flutter

© 2022 AeDev - Premium WordPress news & magazine theme by LilWind.

wpDiscuz
1
0
Rất thích suy nghĩ của bạn, hãy bình luận.x
()
x
| Trả lời