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

এই বিষয়টি Google Play থেকে আপনি যে ধরনের রিয়েল-টাইম ডেভেলপার বিজ্ঞপ্তিগুলি পেতে পারেন তার তালিকা এবং বর্ণনা করে৷

এনকোডিং

একটি ক্লাউড পাব/সাব বিষয়ে করা প্রতিটি প্রকাশে একটি একক বেস64-এনকোডেড ডেটা ক্ষেত্র থাকে।

{
  "message": {
    "attributes": {
      "key": "value"
    },
    "data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

আপনি base64-এনকোডেড ডেটা ক্ষেত্রটি ডিকোড করার পরে, DeveloperNotification নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:

{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "voidedPurchaseNotification": VoidedPurchaseNotification,
  "testNotification": TestNotification
}

এই ক্ষেত্রগুলি নিম্নলিখিত টেবিলে বর্ণনা করা হয়েছে।

সম্পত্তির নাম মান বর্ণনা
সংস্করণ স্ট্রিং এই বিজ্ঞপ্তি সংস্করণ. প্রাথমিকভাবে, এটি "1.0"। এই সংস্করণটি অন্যান্য সংস্করণ ক্ষেত্র থেকে আলাদা।
প্যাকেজের নাম স্ট্রিং এই বিজ্ঞপ্তির সাথে সম্পর্কিত অ্যাপ্লিকেশনটির প্যাকেজের নাম (উদাহরণস্বরূপ, `com.some.thing`)।
ইভেন্টটাইমমিলিস দীর্ঘ টাইমস্ট্যাম্প যখন ঘটনাটি ঘটেছে, যুগের পর থেকে মিলিসেকেন্ডে।
সাবস্ক্রিপশন বিজ্ঞপ্তি সদস্যতা বিজ্ঞপ্তি যদি এই ক্ষেত্রটি উপস্থিত থাকে, তাহলে এই বিজ্ঞপ্তিটি একটি সাবস্ক্রিপশনের সাথে সম্পর্কিত, এবং এই ক্ষেত্রটিতে সদস্যতা সম্পর্কিত অতিরিক্ত তথ্য রয়েছে৷ মনে রাখবেন যে এই ক্ষেত্রটি oneTimeProductNotification, voidedPurchaseNotification, এবং testNotification-এর সাথে পারস্পরিকভাবে একচেটিয়া।
oneTimeProduct Notification OneTimeProduct Notification যদি এই ক্ষেত্রটি উপস্থিত থাকে, তাহলে এই বিজ্ঞপ্তিটি এককালীন কেনাকাটার সাথে সম্পর্কিত, এবং এই ক্ষেত্রটিতে ক্রয়ের সাথে সম্পর্কিত অতিরিক্ত তথ্য রয়েছে৷ মনে রাখবেন যে এই ক্ষেত্রটি সাবস্ক্রিপশন নোটিফিকেশন, voidedPurchaseNotification, এবং testNotification সহ পারস্পরিকভাবে একচেটিয়া।
voidedPurchase Notification বাতিলকৃত ক্রয় বিজ্ঞপ্তি যদি এই ক্ষেত্রটি উপস্থিত থাকে, তাহলে এই বিজ্ঞপ্তিটি একটি অকার্যকর ক্রয়ের সাথে সম্পর্কিত, এবং এই ক্ষেত্রটিতে অকার্যকর ক্রয়ের সাথে সম্পর্কিত অতিরিক্ত তথ্য রয়েছে৷ নোট করুন যে এই ক্ষেত্রটি oneTimeProductNotification, subscription Notification, এবং testNotification-এর সাথে পারস্পরিকভাবে একচেটিয়া।
পরীক্ষার বিজ্ঞপ্তি পরীক্ষার বিজ্ঞপ্তি যদি এই ক্ষেত্রটি উপস্থিত থাকে, তাহলে এই বিজ্ঞপ্তিটি একটি পরীক্ষার প্রকাশের সাথে সম্পর্কিত। এগুলি শুধুমাত্র Google Play বিকাশকারী কনসোলের মাধ্যমে পাঠানো হয়৷ মনে রাখবেন যে এই ক্ষেত্রটি oneTimeProductNotification, subscription Notification, এবং voidedPurchaseNotification এর সাথে পারস্পরিকভাবে একচেটিয়া।

সদস্যতা বিজ্ঞপ্তি

একটি SubscriptionNotification নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
সম্পত্তির নাম মান বর্ণনা
সংস্করণ স্ট্রিং এই বিজ্ঞপ্তি সংস্করণ. প্রাথমিকভাবে, এটি "1.0"। এই সংস্করণটি অন্যান্য সংস্করণ ক্ষেত্র থেকে আলাদা।
বিজ্ঞপ্তি প্রকার int একটি সাবস্ক্রিপশনের জন্য বিজ্ঞপ্তি প্রকারের নিম্নলিখিত মান থাকতে পারে:
  • (1) SUBSCRIPTION_RECOVERED - অ্যাকাউন্ট হোল্ড থেকে একটি সদস্যতা পুনরুদ্ধার করা হয়েছে৷
  • (2) SUBSCRIPTION_RENEWED - একটি সক্রিয় সদস্যতা পুনর্নবীকরণ করা হয়েছে৷
  • (3) SUBSCRIPTION_CANCELED - একটি সদস্যতা হয় স্বেচ্ছায় বা অনিচ্ছাকৃতভাবে বাতিল করা হয়েছে৷ স্বেচ্ছায় বাতিলকরণের জন্য, ব্যবহারকারী বাতিল করলে পাঠানো হয়।
  • (4) SUBSCRIPTION_PURCHASED - একটি নতুন সদস্যতা কেনা হয়েছে৷
  • (5) SUBSCRIPTION_ON_HOLD - একটি সদস্যতা অ্যাকাউন্ট হোল্ডে প্রবেশ করেছে (যদি সক্ষম থাকে)।
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD - একটি সদস্যতা গ্রেস পিরিয়ডে প্রবেশ করেছে (যদি সক্ষম করা থাকে)।
  • (7) SUBSCRIPTION_RESTARTED - ব্যবহারকারী Play > Account > Subscriptions থেকে তাদের সদস্যতা পুনরুদ্ধার করেছে। সদস্যতা বাতিল করা হয়েছে কিন্তু ব্যবহারকারী পুনরুদ্ধার করার সময় এখনও মেয়াদ শেষ হয়নি। আরও তথ্যের জন্য, পুনরুদ্ধার দেখুন।
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED - একটি সদস্যতা মূল্য পরিবর্তন সফলভাবে ব্যবহারকারী দ্বারা নিশ্চিত করা হয়েছে৷
  • (9) SUBSCRIPTION_DEFERRED - একটি সদস্যতার পুনরাবৃত্তির সময় বাড়ানো হয়েছে৷
  • (10) SUBSCRIPTION_PAUSED - একটি সদস্যতা বিরাম দেওয়া হয়েছে৷
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - একটি সদস্যতা বিরতির সময়সূচী পরিবর্তন করা হয়েছে৷
  • (12) SUBSCRIPTION_REVOKED - মেয়াদ শেষ হওয়ার আগে ব্যবহারকারীর কাছ থেকে একটি সদস্যতা প্রত্যাহার করা হয়েছে৷
  • (13) SUBSCRIPTION_EXPIRED - একটি সদস্যতার মেয়াদ শেষ হয়েছে৷
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED - একটি সদস্যতার একটি মুলতুবি লেনদেন বাতিল করা হয়েছে৷
টোকেন ক্রয় করুন স্ট্রিং সদস্যতা কেনার সময় ব্যবহারকারীর ডিভাইসে দেওয়া টোকেন।
সদস্যতা আইডি স্ট্রিং কেনা সাবস্ক্রিপশনের পণ্য আইডি (উদাহরণস্বরূপ, "মাসিক001")।

উদাহরণ

এখানে একটি নতুন সদস্যতা কেনার জন্য একটি বিজ্ঞপ্তির একটি উদাহরণ রয়েছে:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN",
    "subscriptionId":"monthly001"
  }
}

OneTimeProduct Notification

একটি OneTimeProductNotification নিম্নলিখিত ক্ষেত্রগুলি ধারণ করে:

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

VoidedPurchaseNotification গ্রাস করছে

যখন আপনার RTDN ক্লায়েন্ট একটি VoidedPurchaseNotification পায়, নিম্নলিখিত তথ্যটি নোট করুন:

  • packageName : এটি অ্যাপটিকে চিহ্নিত করে।
  • eventTimeMillis : এটি ডেভেলপারকে স্থিতির পরিবর্তনের সময় সম্পর্কে জানায়।
  • purchaseToken : পণ্য কেনার সময় ব্যবহারকারীর ডিভাইসে দেওয়া টোকেন।
  • orderId : এটি অকার্যকর লেনদেনের সাথে যুক্ত অর্ডার সনাক্ত করে।
  • productType : এটি আপনাকে বলে যে অকার্যকর কেনাকাটাটি অ্যাপ-মধ্যস্থ কেনাকাটা বা সদস্যতা ছিল কিনা।
  • refundType : এটি আপনাকে বলে যে রিফান্ডের ধরন যা ক্রয় বাতিল করেছে।

এনটাইটেলমেন্ট সামঞ্জস্যের জন্য আপনাকে যা করতে হবে তা হল সঠিক ক্রয় এবং অর্ডার সনাক্ত করা, তাহলে এই সময়ে আপনার প্রয়োজনীয় সমস্ত তথ্য আপনার কাছে রয়েছে। অকার্যকর কেনাকাটা সম্পর্কে অতিরিক্ত তথ্য কীভাবে পেতে হয় তা জানতে, Google Play Voided Purchases API দেখুন, যা একটি পুল মডেল যা একটি নির্দিষ্ট টাইমস্ট্যাম্পের মধ্যে অকার্যকর কেনাকাটার জন্য অতিরিক্ত ডেটা সরবরাহ করে।

আংশিকভাবে বাতিল হওয়া বহু-পরিমাণ কেনাকাটার জন্য, purchases.products দ্বারা প্রদত্ত refundableQuantity ক্ষেত্রের মধ্যে অবশিষ্ট সংখ্যক ক্রয়কৃত পণ্য রয়েছে যা বাতিল করা হয়নি।

পরীক্ষার বিজ্ঞপ্তি

একটি TestNotification নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:

{
  "version": string
}
সম্পত্তির নাম মান বর্ণনা
সংস্করণ স্ট্রিং এই বিজ্ঞপ্তি সংস্করণ. প্রাথমিকভাবে, এটি "1.0"। এই সংস্করণটি অন্যান্য সংস্করণ ক্ষেত্র থেকে আলাদা।

উদাহরণ

এখানে একটি পরীক্ষার বিজ্ঞপ্তির একটি উদাহরণ:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}