এই ডকুমেন্টে গুগল প্লে থেকে আপনি যে ধরনের রিয়েল-টাইম ডেভেলপার নোটিফিকেশন পেতে পারেন, তার তালিকা ও বর্ণনা দেওয়া হয়েছে।
এনকোডিং
ক্লাউড পাব/সাব টপিকে করা প্রতিটি পাবলিশে একটিমাত্র বেস৬৪-এনকোডেড ডেটা ফিল্ড থাকে।
{
"message": {
"attributes": {
"key": "value"
},
"data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
বেস৬৪-এনকোডেড ডেটা ফিল্ডটি ডিকোড করার পর, DeveloperNotification নিম্নলিখিত ফিল্ডগুলো থাকে:
{
"version": string,
"packageName": string,
"eventTimeMillis": long,
"oneTimeProductNotification": OneTimeProductNotification,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification,
"testNotification": TestNotification
}
এই ক্ষেত্রগুলো নিম্নলিখিত সারণিতে বর্ণনা করা হয়েছে।
| সম্পত্তির নাম | মূল্য | বর্ণনা |
| সংস্করণ | স্ট্রিং | এই বিজ্ঞপ্তির সংস্করণ। প্রাথমিকভাবে, এটি "১.০"। এই সংস্করণটি অন্যান্য সংস্করণ ক্ষেত্র থেকে আলাদা। |
| প্যাকেজের নাম | স্ট্রিং | যে অ্যাপ্লিকেশনটির সাথে এই বিজ্ঞপ্তিটি সম্পর্কিত, তার প্যাকেজের নাম (উদাহরণস্বরূপ, `com.some.thing`)। |
| ইভেন্টটাইমমিলিস | দীর্ঘ | ইপক থেকে মিলিসেকেন্ডে, ঘটনাটি ঘটার সময়কার টাইমস্ট্যাম্প। |
| সাবস্ক্রিপশন বিজ্ঞপ্তি | সাবস্ক্রিপশন বিজ্ঞপ্তি | যদি এই ফিল্ডটি উপস্থিত থাকে, তাহলে এই নোটিফিকেশনটি একটি সাবস্ক্রিপশনের সাথে সম্পর্কিত, এবং এই ফিল্ডটিতে সাবস্ক্রিপশন সম্পর্কিত অতিরিক্ত তথ্য থাকে। উল্লেখ্য যে, এই ফিল্ডটি oneTimeProductNotification, voidedPurchaseNotification, এবং testNotification-এর সাথে পারস্পরিকভাবে স্বতন্ত্র। |
| এককালীন পণ্য বিজ্ঞপ্তি | ওয়ানটাইমপ্রোডাক্টনোটিফিকেশন | যদি এই ফিল্ডটি উপস্থিত থাকে, তাহলে এই নোটিফিকেশনটি একটি এককালীন ক্রয়ের সাথে সম্পর্কিত, এবং এই ফিল্ডটিতে ক্রয়-সম্পর্কিত অতিরিক্ত তথ্য রয়েছে। উল্লেখ্য যে, এই ফিল্ডটি subscriptionNotification, voidedPurchaseNotification, এবং testNotification-এর সাথে এককভাবে স্বতন্ত্র। |
| বাতিলকৃত ক্রয় বিজ্ঞপ্তি | বাতিল ক্রয় বিজ্ঞপ্তি | যদি এই ফিল্ডটি উপস্থিত থাকে, তাহলে এই নোটিফিকেশনটি একটি বাতিলকৃত ক্রয়ের সাথে সম্পর্কিত, এবং এই ফিল্ডটিতে বাতিলকৃত ক্রয়টি সম্পর্কিত অতিরিক্ত তথ্য রয়েছে। উল্লেখ্য যে, এই ফিল্ডটি oneTimeProductNotification, subscriptionNotification, এবং testNotification-এর সাথে এককভাবে প্রযোজ্য নয়। |
| পরীক্ষার বিজ্ঞপ্তি | পরীক্ষার বিজ্ঞপ্তি | এই ফিল্ডটি উপস্থিত থাকলে, এই নোটিফিকেশনটি একটি টেস্ট পাবলিশ সম্পর্কিত। এগুলো শুধুমাত্র গুগল প্লে ডেভেলপার কনসোলের মাধ্যমে পাঠানো হয়। উল্লেখ্য যে, এই ফিল্ডটি oneTimeProductNotification, subscriptionNotification, এবং voidedPurchaseNotification-এর সাথে এককভাবে ব্যবহৃত হয়। |
সাবস্ক্রিপশন বিজ্ঞপ্তি
একটি SubscriptionNotification নিম্নলিখিত ফিল্ডগুলো থাকে:
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
| সম্পত্তির নাম | মূল্য | বর্ণনা |
| সংস্করণ | স্ট্রিং | এই বিজ্ঞপ্তির সংস্করণ। প্রাথমিকভাবে, এটি "১.০"। এই সংস্করণটি অন্যান্য সংস্করণ ক্ষেত্র থেকে আলাদা। |
| বিজ্ঞপ্তির ধরণ | int | একটি সাবস্ক্রিপশনের জন্য notificationType-এর নিম্নলিখিত মানগুলি থাকতে পারে:
|
| ক্রয় টোকেন | স্ট্রিং | সাবস্ক্রিপশন কেনার সময় ব্যবহারকারীর ডিভাইসে যে টোকেনটি দেওয়া হয়েছিল। |
উদাহরণ
নতুন সাবস্ক্রিপশন কেনার নোটিফিকেশনের একটি উদাহরণ এখানে দেওয়া হলো:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN"
}
}
ওয়ানটাইমপ্রোডাক্টনোটিফিকেশন
একটি OneTimeProductNotification নিম্নলিখিত ফিল্ডগুলো থাকে:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
| সম্পত্তির নাম | মূল্য | বর্ণনা |
| সংস্করণ | স্ট্রিং | এই বিজ্ঞপ্তির সংস্করণ। প্রাথমিকভাবে, এটি "১.০" হবে। এই সংস্করণটি অন্যান্য সংস্করণ ক্ষেত্র থেকে আলাদা। |
| বিজ্ঞপ্তির ধরণ | int | বিজ্ঞপ্তির ধরণ। এর নিম্নলিখিত মানগুলো থাকতে পারে:
|
| ক্রয় টোকেন | স্ট্রিং | ক্রয় সম্পন্ন হওয়ার পর ব্যবহারকারীর ডিভাইসে টোকেনটি প্রদান করা হয়। |
| এসকেইউ | স্ট্রিং | ক্রয়কৃত এককালীন পণ্যের আইডি (উদাহরণস্বরূপ, "sword_001") |
উদাহরণ
নতুন এককালীন ক্রয়ের জন্য একটি বিজ্ঞপ্তির উদাহরণ নিচে দেওয়া হলো:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
বাতিল ক্রয় বিজ্ঞপ্তি
একটি VoidedPurchaseNotification নিম্নলিখিত ফিল্ডগুলি থাকে:
সম্পত্তির নাম | মূল্য | বর্ণনা |
| | বাতিল করা ক্রয়ের সাথে যুক্ত টোকেন। নতুন কোনো ক্রয় সম্পন্ন হলে এই তথ্য ডেভেলপারকে প্রদান করা হয়। |
| | বাতিল করা লেনদেনটির সাথে যুক্ত অনন্য অর্ডার আইডি। এককালীন ক্রয়ের ক্ষেত্রে, এটিই সেই ক্রয়ের জন্য তৈরি হওয়া একমাত্র অর্ডার আইডি। স্বয়ংক্রিয়ভাবে নবায়নযোগ্য সাবস্ক্রিপশনের জন্য, প্রতিটি নবায়ন লেনদেনের জন্য একটি নতুন অর্ডার আইডি তৈরি করা হয়। |
| | বাতিলকৃত ক্রয়ের ক্ষেত্রে
|
| | বাতিল করা ক্রয়ের জন্য
উল্লেখ্য যে, একাধিক পরিমাণে ক্রয়ের ক্ষেত্রে অবশিষ্ট মোট পরিমাণ ফেরত দেওয়া হলে, |
উদাহরণ
নতুন বাতিলকৃত ক্রয়ের বিজ্ঞপ্তির একটি উদাহরণ এখানে দেওয়া হলো:
{
"version":"1.0",
"packageName":"com.some.app",
"eventTimeMillis":"1503349566168",
"voidedPurchaseNotification":
{
"purchaseToken":"PURCHASE_TOKEN",
"orderId":"GS.0000-0000-0000",
"productType":1
"refundType":1
}
}
বাতিল ক্রয় বিজ্ঞপ্তি গ্রহণ করা
যখন আপনার RTDN ক্লায়েন্ট একটি VoidedPurchaseNotification গ্রহণ করে, তখন নিম্নলিখিত তথ্যগুলো নোট করুন:
-
packageName: অ্যাপটিকে শনাক্ত করে। -
eventTimeMillis: স্ট্যাটাস পরিবর্তনের সময় সম্পর্কে আপনাকে অবহিত করে। -
purchaseToken: পণ্যটি কেনার সময় ব্যবহারকারীর ডিভাইসে প্রদান করা টোকেন। -
orderId: বাতিলকৃত লেনদেনের সাথে যুক্ত অর্ডারটিকে শনাক্ত করে। -
productType: বাতিল করা ক্রয়টি ইন-অ্যাপ ক্রয় ছিল নাকি সাবস্ক্রিপশন ছিল তা নির্দেশ করে। -
refundType: কোন ধরনের রিফান্ডের কারণে ক্রয়টি বাতিল হয়েছে তা নির্দিষ্ট করে।
পরীক্ষার বিজ্ঞপ্তি
একটি TestNotification নিম্নলিখিত ফিল্ডগুলো থাকে:
{
"version": string
}
| সম্পত্তির নাম | মূল্য | বর্ণনা |
| সংস্করণ | স্ট্রিং | এই বিজ্ঞপ্তির সংস্করণ। প্রাথমিকভাবে, এটি "১.০"। এই সংস্করণটি অন্যান্য সংস্করণ ক্ষেত্র থেকে আলাদা। |
উদাহরণ
এখানে একটি পরীক্ষা বিজ্ঞপ্তির উদাহরণ দেওয়া হলো:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}