এই ডকুমেন্টে রিয়েল-টাইম ডেভেলপার বিজ্ঞপ্তির ধরন তালিকাভুক্ত করা হয়েছে এবং বর্ণনা করা হয়েছে যা আপনি Google Play থেকে পেতে পারেন।
এনকোডিং
Cloud Pub/Sub টপিকে করা প্রতিটি প্রকাশে একটি করে base64-এনকোডেড ডেটা ফিল্ড থাকে।
{
"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,
"pendingRefundReviewNotification": PendingRefundReviewNotification,
"testNotification": TestNotification
}
নিচের টেবিলে এইসব ফিল্ডের বিবরণ দেওয়া আছে।
| প্রপার্টির নাম | মান | বর্ণনা |
|---|---|---|
| ভার্সন | স্ট্রিং | এই বিজ্ঞপ্তির ভার্সন। প্রাথমিকভাবে, এটি "1.0" হয়। এই ভার্সনটি অন্যান্য ভার্সন ফিল্ডের থেকে আলাদা। |
| packageName | স্ট্রিং | এই বিজ্ঞপ্তি যে অ্যাপ্লিকেশনের সাথে সম্পর্কিত তার প্যাকেজ নাম (যেমন, `com.some.thing`)। |
| eventTimeMillis | দীর্ঘ | ইভেন্টটি কখন ঘটেছে তার টাইমস্ট্যাম্প, Epoch থেকে মিলিসেকেন্ডে। |
| subscriptionNotification | SubscriptionNotification | এই ফিল্ডটি থাকলে, এই বিজ্ঞপ্তিটি একটি সাবস্ক্রিপশনের সাথে সম্পর্কিত এবং এই ফিল্ডে সাবস্ক্রিপশন সম্পর্কিত অতিরিক্ত তথ্য থাকে। মনে রাখবেন, এই ফিল্ডটি pendingRefundReviewNotification, oneTimeProductNotification, voidedPurchaseNotification এবং testNotification-এর সাথে পারস্পরিকভাবে এক্সক্লুসিভ। |
| oneTimeProductNotification | OneTimeProductNotification | এই ফিল্ডটি থাকলে, এই বিজ্ঞপ্তিটি এককালীন কেনাকাটার সাথে সম্পর্কিত এবং এই ফিল্ডে কেনাকাটা সম্পর্কিত অতিরিক্ত তথ্য থাকে। মনে রাখবেন, এই ফিল্ডটি pendingRefundReviewNotification, subscriptionNotification, voidedPurchaseNotification এবং testNotification-এর সাথে পারস্পরিকভাবে এক্সক্লুসিভ। |
| voidedPurchaseNotification | VoidedPurchaseNotification | এই ফিল্ডটি থাকলে, এই বিজ্ঞপ্তিটি বাতিল করা কেনাকাটার সাথে সম্পর্কিত এবং এই ফিল্ডে বাতিল করা কেনাকাটা সম্পর্কিত অতিরিক্ত তথ্য থাকে। মনে রাখবেন, এই ফিল্ডটি pendingRefundReviewNotification, oneTimeProductNotification, subscriptionNotification এবং testNotification-এর সাথে পারস্পরিকভাবে এক্সক্লুসিভ। |
| pendingRefundReviewNotification | PendingRefundReviewNotification | এই ফিল্ডটি থাকলে, এই বিজ্ঞপ্তিটি একটি চার্জব্যাক অনুরোধের সাথে সম্পর্কিত যার জন্য আপনি একটি সমাধান সাজেস্ট করতে পারেন। `ReviewRefund` API-কে কল করে এই বিজ্ঞপ্তির উত্তর দিন। মনে রাখবেন, এই ফিল্ডটি subscriptionNotification, oneTimeProductNotification, voidedPurchaseNotification, এবং testNotification-এর সাথে পারস্পরিকভাবে এক্সক্লুসিভ। |
| testNotification | TestNotification | এই ফিল্ডটি থাকলে, এই বিজ্ঞপ্তিটি একটি টেস্ট প্রকাশনার সাথে সম্পর্কিত। এগুলি শুধুমাত্র Google Play Developer Console-এর মাধ্যমে পাঠানো হয়। মনে রাখবেন, এই ফিল্ডটি pendingRefundReviewNotification, oneTimeProductNotification, subscriptionNotification এবং voidedPurchaseNotification-এর সাথে পারস্পরিকভাবে এক্সক্লুসিভ। |
SubscriptionNotification
SubscriptionNotification-এ নিম্নলিখিত ফিল্ড থাকে:
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
| প্রপার্টির নাম | মান | বর্ণনা |
|---|---|---|
| ভার্সন | স্ট্রিং | এই বিজ্ঞপ্তির ভার্সন। প্রাথমিকভাবে, এটি "1.0" হয়। এই ভার্সনটি অন্যান্য ভার্সন ফিল্ডের থেকে আলাদা। |
| notificationType | int | সাবস্ক্রিপশনের notificationType-এর নিম্নলিখিত মান থাকতে পারে:
|
| purchaseToken | স্ট্রিং | সাবস্ক্রিপশন কেনার সময় ব্যবহারকারীর ডিভাইসে যে টোকেন প্রদান করা হয়েছিল। |
উদাহরণ
নতুন সাবস্ক্রিপশন কেনার জন্য বিজ্ঞপ্তি সংক্রান্ত একটি উদাহরণ এখানে দেওয়া হল:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN"
}
}
OneTimeProductNotification
OneTimeProductNotification-এ নিম্নলিখিত ফিল্ড থাকে:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
| প্রপার্টির নাম | মান | বর্ণনা |
|---|---|---|
| ভার্সন | স্ট্রিং | এই বিজ্ঞপ্তির ভার্সন। প্রাথমিকভাবে, এটি "1.0" হবে। এই ভার্সনটি অন্যান্য ভার্সন ফিল্ডের থেকে আলাদা। |
| notificationType | int | বিজ্ঞপ্তির ধরন। এর নিম্নলিখিত ভ্যালু থাকতে পারে:
|
| purchaseToken | স্ট্রিং | কেনাকাটা করার সময় ব্যবহারকারীর ডিভাইসে দেওয়া টোকেন। |
| 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
VoidedPurchaseNotification-এ নিম্নলিখিত ফিল্ড থাকে:
| প্রপার্টির নাম | মান | বর্ণনা |
|---|---|---|
|
|
বাতিল করা কেনাকাটার সাথে যুক্ত টোকেন। নতুন কেনাকাটা হলে এই তথ্য ডেভেলপারকে প্রদান করা হয়। |
|
|
বাতিল করা ট্রানজ্যাকশনের সাথে যুক্ত অনন্য অর্ডার আইডি। এককালীন কেনাকাটার ক্ষেত্রে, এটি কেনাকাটার জন্য তৈরি করা একমাত্র অর্ডার আইডি বোঝায়। অটোমেটিক রিনিউ হওয়া সাবস্ক্রিপশনের জন্য, প্রতিটি রিনিউয়াল ট্রানজ্যাকশনের জন্য একটি নতুন অর্ডার আইডি তৈরি করা হয়। |
|
|
বাতিল করা কেনাকাটার
|
|
|
বাতিল করা কেনাকাটার
মনে রাখবেন, একাধিক আইটেম কেনার পরে বাকি থাকা আইটেমের মোট পরিমাণ
রিফান্ড করা হলে, |
উদাহরণ
নতুন বাতিল করা কেনাকাটার জন্য বিজ্ঞপ্তি কেমন হতে পারে তার একটি উদাহরণ এখানে দেওয়া হল:
{
"version":"1.0",
"packageName":"com.some.app",
"eventTimeMillis":"1503349566168",
"voidedPurchaseNotification":
{
"purchaseToken":"PURCHASE_TOKEN",
"orderId":"GS.0000-0000-0000",
"productType":1
"refundType":1
}
}
Consuming VoidedPurchaseNotification
আপনার RTDN ক্লায়েন্ট VoidedPurchaseNotification পেলে, নিম্নলিখিত
তথ্যগুলি নোট করুন:
packageName: অ্যাপ শনাক্ত করে।eventTimeMillis: স্ট্যাটাস পরিবর্তনের সময় সম্পর্কে আপনাকে জানায়।purchaseToken: প্রোডাক্ট কেনার সময় ব্যবহারকারীর ডিভাইসে প্রদান করা টোকেন।orderId: বাতিল করা ট্রানজ্যাকশনের সাথে যুক্ত অর্ডার শনাক্ত করে।productType: বাতিল করা কেনাকাটা অ্যাপ-মধ্যস্থ কেনাকাটা নাকি সাবস্ক্রিপশন ছিল তা নির্দেশ করে।refundType: কেনাকাটা বাতিল করার জন্য রিফান্ডের ধরন নির্দিষ্ট করে।
PendingRefundReviewNotification
কোনও কেনাকাটার জন্য ব্যবহারকারী চার্জব্যাক করার অনুরোধ করলে
একটি PendingRefundReviewNotification পাঠানো হয় এবং সেই অনুরোধের জন্য ডেভেলপারকে পর্যালোচনা করতে হয়। আপনি এই বিজ্ঞপ্তি
পাওয়ার পরে, আপনাকে অনুরোধটি মূল্যায়ন করতে হবে এবং
ReviewRefund API-তে কল করে ২৪ ঘণ্টার মধ্যে রিফান্ড
সাজেশন ও কেনাকাটা ব্যবহারের প্রমাণ দিতে হবে।
PendingRefundReviewNotification-এ নিম্নলিখিত ফিল্ড থাকে:
{
"version": string,
"pendingRefundToken": string,
"orderId": string,
"refundReason": int,
"obfuscatedAccountId": string,
"obfuscatedProfileId": string
}
| প্রপার্টির নাম | মান | বর্ণনা |
|---|---|---|
| ভার্সন | স্ট্রিং | এই বিজ্ঞপ্তির ভার্সন। প্রাথমিকভাবে, এটি "1.0" হয়। এই ভার্সনটি অন্যান্য ভার্সন ফিল্ড থেকে আলাদা। |
| pendingRefundToken | স্ট্রিং | পর্যালোচনাধীন বাকি থাকা রিফান্ডের অনুরোধ শনাক্তকারী অনন্য টোকেন। ReviewRefund API কল করার সময় এই টোকেনটি পাস করুন। |
| orderId | স্ট্রিং | যে কেনাকাটার জন্য রিফান্ড পর্যালোচনা করা হচ্ছে সেটির অর্ডার আইডি। |
| refundReason | int | রিফান্ডের অনুরোধের কারণ। পেন্ডিং থাকা রিভিউতে রিফান্ডের কারণ হিসেবে শুধুমাত্র CHARGEBACK (৭) উল্লেখ করা যায়। আপনার কোডকে
নতুন নতুন কারণ উপলভ্য হওয়ার সাথে সাথে সেগুলি হ্যান্ডেল করতে হবে। |
| obfuscatedAccountId | স্ট্রিং | (প্রযোজ্য হলে) কেনাকাটা করার সময় ডেভেলপার-নির্দিষ্ট ব্যবহারকারীর অ্যাকাউন্ট আইডি প্রদান করা হয়েছিল, সেটি অস্পষ্ট করা হয়েছে। |
| obfuscatedProfileId | স্ট্রিং | (প্রযোজ্য হলে) কেনাকাটা করার সময় ডেভেলপার-নির্দিষ্ট প্রোফাইল আইডির যে অবফস্কেট করা ভার্সন দেওয়া হয়েছিল। |
উদাহরণ
পেন্ডিং রিফান্ড পর্যালোচনা সংক্রান্ত বিজ্ঞপ্তির একটি উদাহরণ এখানে দেওয়া হল:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"pendingRefundReviewNotification":
{
"version":"1.0",
"pendingRefundToken":"example-token",
"orderId":"GPA.1234-5678-9012-34567",
"refundReason":7,
"obfuscatedAccountId":"user-account-id",
"obfuscatedProfileId":"user-profile-id"
}
}
TestNotification
TestNotification-এ নিম্নলিখিত ফিল্ড থাকে:
{
"version": string
}
| প্রপার্টির নাম | মান | বর্ণনা |
|---|---|---|
| ভার্সন | স্ট্রিং | এই বিজ্ঞপ্তির ভার্সন। প্রাথমিকভাবে, এটি "1.0" হয়। এই ভার্সনটি অন্যান্য ভার্সন ফিল্ডের থেকে আলাদা। |
উদাহরণ
টেস্ট বিজ্ঞপ্তির একটি উদাহরণ এখানে দেওয়া হল:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}