এই ডকুমেন্টে 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
}
| প্রপার্টির নাম | মান | বর্ণনা |
|---|---|---|
| ভার্সন | স্ট্রিং | এই বিজ্ঞপ্তির ভার্সন। প্রাথমিকভাবে, এটি "১.০" হবে। এই ভার্সনটি অন্যান্য ভার্সন ফিল্ড থেকে আলাদা। |
| 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
}
}
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"
}
}