রিয়েল-টাইম ডেভেলপার বিজ্ঞপ্তি রেফারেন্স গাইড

এই ডকুমেন্টে গুগল প্লে থেকে আপনি যে ধরনের রিয়েল-টাইম ডেভেলপার নোটিফিকেশন পেতে পারেন, তার তালিকা ও বর্ণনা দেওয়া হয়েছে।

এনকোডিং

ক্লাউড পাব/সাব টপিকে করা প্রতিটি পাবলিশে একটিমাত্র বেস৬৪-এনকোডেড ডেটা ফিল্ড থাকে।

{
  "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-এর নিম্নলিখিত মানগুলি থাকতে পারে:
  • (1) SUBSCRIPTION_RECOVERED - একটি সাবস্ক্রিপশন অ্যাকাউন্ট হোল্ড থেকে পুনরুদ্ধার করা হয়েছে অথবা পজ থেকে পুনরায় চালু করা হয়েছে।
  • (2) SUBSCRIPTION_RENEWED - একটি সক্রিয় সাবস্ক্রিপশন নবায়ন করা হয়েছে।
  • (3) SUBSCRIPTION_CANCELED - একটি সাবস্ক্রিপশন স্বেচ্ছায় বা অনিচ্ছাকৃতভাবে বাতিল করা হয়েছে। স্বেচ্ছায় বাতিলের ক্ষেত্রে, ব্যবহারকারী বাতিল করলে এটি পাঠানো হয়।
  • (4) SUBSCRIPTION_PURCHASED - একটি নতুন সাবস্ক্রিপশন কেনা হয়েছে।
  • (5) SUBSCRIPTION_ON_HOLD - একটি সাবস্ক্রিপশন অ্যাকাউন্ট হোল্ডে প্রবেশ করেছে (যদি সক্রিয় করা থাকে)।
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD - একটি সাবস্ক্রিপশন গ্রেস পিরিয়ডে প্রবেশ করেছে (যদি সক্রিয় করা থাকে)।
  • (7) সাবস্ক্রিপশন_পুনরায়_চালু_করা_হয়েছে - ব্যবহারকারী প্লে > অ্যাকাউন্ট > সাবস্ক্রিপশন থেকে তাদের সাবস্ক্রিপশন পুনরুদ্ধার করেছেন। সাবস্ক্রিপশনটি বাতিল করা হয়েছিল কিন্তু ব্যবহারকারী যখন পুনরুদ্ধার করেন তখন এর মেয়াদ শেষ হয়নি। আরও তথ্যের জন্য, পুনরুদ্ধার দেখুন।
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED (অপ্রচলিত) - ব্যবহারকারী দ্বারা সাবস্ক্রিপশনের মূল্য পরিবর্তন সফলভাবে নিশ্চিত করা হয়েছে।
  • (9) SUBSCRIPTION_DEFERRED - একটি সাবস্ক্রিপশনের পুনরাবৃত্তির সময় বাড়ানো হয়েছে।
  • (10) SUBSCRIPTION_PAUSED - একটি সাবস্ক্রিপশন স্থগিত করা হয়েছে।
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - একটি সাবস্ক্রিপশন বিরতির সময়সূচী পরিবর্তন করা হয়েছে।
  • (12) সাবস্ক্রিপশন বাতিল - মেয়াদ শেষ হওয়ার আগে ব্যবহারকারীর সাবস্ক্রিপশন বাতিল করা হয়েছে।
  • (13) SUBSCRIPTION_EXPIRED - একটি সাবস্ক্রিপশনের মেয়াদ শেষ হয়ে গেছে।
  • (17) SUBSCRIPTION_ITEMS_CHANGED - একটি সাবস্ক্রিপশন বান্ডেলের একটি আইটেম পরিবর্তন করা হয়েছে।
  • (18) সাবস্ক্রিপশন বাতিলকরণ নির্ধারিত - একটি কিস্তি সাবস্ক্রিপশন বাতিলকরণ প্রতিশ্রুতি সময়কাল শেষে কার্যকর হওয়ার জন্য নির্ধারিত হয়েছে।
  • (19) SUBSCRIPTION_PRICE_CHANGE_UPDATED - একটি সাবস্ক্রিপশন আইটেমের মূল্য পরিবর্তনের বিবরণ আপডেট করা হয়েছে।
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED - একটি সাবস্ক্রিপশনের অপেক্ষাধীন লেনদেন বাতিল করা হয়েছে।
  • (22) SUBSCRIPTION_PRICE_STEP_UP_CONSENT_UPDATED - একটি সাবস্ক্রিপশনের মূল্য বৃদ্ধির জন্য সম্মতির সময়কাল শুরু হয়েছে অথবা ব্যবহারকারী মূল্য বৃদ্ধির জন্য সম্মতি দিয়েছেন। এই RTDN শুধুমাত্র সেই অঞ্চলের সাবস্ক্রিপশনগুলির জন্য পাঠানো হয় যেখানে মূল্য বৃদ্ধি প্রয়োজন।
ক্রয় টোকেন স্ট্রিং সাবস্ক্রিপশন কেনার সময় ব্যবহারকারীর ডিভাইসে যে টোকেনটি দেওয়া হয়েছিল।

উদাহরণ

নতুন সাবস্ক্রিপশন কেনার নোটিফিকেশনের একটি উদাহরণ এখানে দেওয়া হলো:

{
  "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 বিজ্ঞপ্তির ধরণ। এর নিম্নলিখিত মানগুলো থাকতে পারে:
  • (1) এককালীন পণ্য ক্রয় - একজন ব্যবহারকারী সফলভাবে একটি এককালীন পণ্য ক্রয় করেছেন।
  • (2) ONE_TIME_PRODUCT_CANCELED - ব্যবহারকারী কর্তৃক একটি অপেক্ষমান এককালীন পণ্য ক্রয় বাতিল করা হয়েছে।
ক্রয় টোকেন স্ট্রিং ক্রয় সম্পন্ন হওয়ার পর ব্যবহারকারীর ডিভাইসে টোকেনটি প্রদান করা হয়।
এসকেইউ স্ট্রিং ক্রয়কৃত এককালীন পণ্যের আইডি (উদাহরণস্বরূপ, "sword_001")

উদাহরণ

নতুন এককালীন ক্রয়ের জন্য একটি বিজ্ঞপ্তির উদাহরণ নিচে দেওয়া হলো:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "oneTimeProductNotification":
  {
    "version":"1.0",
    "notificationType":1,
    "purchaseToken":"PURCHASE_TOKEN",
    "sku":"my.sku"
  }
}

বাতিল ক্রয় বিজ্ঞপ্তি

একটি VoidedPurchaseNotification নিম্নলিখিত ফিল্ডগুলি থাকে:

সম্পত্তির নাম

মূল্য

বর্ণনা

purchaseToken

string

বাতিল করা ক্রয়ের সাথে যুক্ত টোকেন। নতুন কোনো ক্রয় সম্পন্ন হলে এই তথ্য ডেভেলপারকে প্রদান করা হয়।

orderId

string

বাতিল করা লেনদেনটির সাথে যুক্ত অনন্য অর্ডার আইডি। এককালীন ক্রয়ের ক্ষেত্রে, এটিই সেই ক্রয়ের জন্য তৈরি হওয়া একমাত্র অর্ডার আইডি। স্বয়ংক্রিয়ভাবে নবায়নযোগ্য সাবস্ক্রিপশনের জন্য, প্রতিটি নবায়ন লেনদেনের জন্য একটি নতুন অর্ডার আইডি তৈরি করা হয়।

productType

int

বাতিলকৃত ক্রয়ের ক্ষেত্রে productType নিম্নলিখিত মানগুলি থাকতে পারে:

  • (1) PRODUCT_TYPE_SUBSCRIPTION - একটি সাবস্ক্রিপশন ক্রয় বাতিল করা হয়েছে।
  • (2) PRODUCT_TYPE_ONE_TIME - এককালীন ক্রয় বাতিল করা হয়েছে।

refundType

int

বাতিল করা ক্রয়ের জন্য refundType নিম্নলিখিত মানগুলি থাকতে পারে:

  • (1) REFUND_TYPE_FULL_REFUND - ক্রয়টি সম্পূর্ণরূপে বাতিল করা হয়েছে।
  • (2) পরিমাণ-ভিত্তিক আংশিক REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND - পরিমাণ-ভিত্তিক আংশিক রিফান্ডের মাধ্যমে ক্রয়টি আংশিকভাবে বাতিল করা হয়েছে, যা শুধুমাত্র একাধিক পরিমাণে ক্রয়ের ক্ষেত্রে প্রযোজ্য। একটি ক্রয় একাধিকবার আংশিকভাবে বাতিল করা যেতে পারে।

উল্লেখ্য যে, একাধিক পরিমাণে ক্রয়ের ক্ষেত্রে অবশিষ্ট মোট পরিমাণ ফেরত দেওয়া হলে, refundType হবে REFUND_TYPE_FULL_REFUND

উদাহরণ

নতুন বাতিলকৃত ক্রয়ের বিজ্ঞপ্তির একটি উদাহরণ এখানে দেওয়া হলো:

{
  "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"
  }
}