আপনার মার্চেন্ট সেন্টার অ্যাকাউন্টগুলিতে ডেটা পরিবর্তিত হলে পুশ নোটিফিকেশন পেতে আপনি নোটিফিকেশন সাব-এপিআই ব্যবহার করতে পারেন। পরিবর্তন শনাক্ত করার জন্য পর্যায়ক্রমে এপিআই পোল করার পরিবর্তে, আপনি আপনার কনফিগার করা একটি HTTPS এন্ডপয়েন্টে সরাসরি পাঠানো রিয়েল-টাইম ইভেন্ট ফিডগুলিতে সাবস্ক্রাইব করতে পারেন।
নোটিফিকেশন সাব-এপিআই নিম্নলিখিতগুলির জন্য নোটিফিকেশন সমর্থন করে:
- পণ্যের অবস্থার পরিবর্তন : আপনার যেকোনো লিঙ্ক করা অ্যাকাউন্ট বা সাব-অ্যাকাউন্টে পণ্যের অনুমোদনের অবস্থার পরিবর্তন হলে (উদাহরণস্বরূপ, যখন কোনো পণ্য অননুমোদিত বা অনুমোদিত হয়) রিয়েল-টাইম অ্যালার্ট পান।
- অ্যাকাউন্ট পরিষেবা পরিবর্তন : যখন কোনো
AccountServiceরিসোর্স তৈরি, আপডেট বা মুছে ফেলা হয় (যেমন যখন কোনো অ্যাকাউন্ট পরিষেবা সম্পর্ক স্থাপন, পরিবর্তন বা অপসারণ করা হয়), তখন রিয়েল-টাইম অ্যালার্ট পান।
পূর্বশর্ত এবং কলব্যাক ইউআরআই সেটআপ
পুশ নোটিফিকেশন পেতে হলে আপনাকে অবশ্যই একটি callBackUri প্রদান করতে হবে। আপনার কলব্যাক ইউআরআই-কে নিম্নলিখিত শর্তগুলো পূরণ করতে হবে:
- অবশ্যই একটি সর্বজনীনভাবে প্রবেশযোগ্য HTTPS ঠিকানা হতে হবে, যার সাথে একটি স্বীকৃত সার্টিফিকেট কর্তৃপক্ষ দ্বারা স্বাক্ষরিত বৈধ SSL সার্টিফিকেট সংযুক্ত থাকবে।
- অবশ্যই HTTP
POSTঅনুরোধ গ্রহণ করতে হবে, যেগুলোরContent-Typeহেডারapplication/jsonহিসেবে সেট করা থাকতে হবে। নোটিফিকেশনটি গৃহীত হয়েছে তা নিশ্চিত করতে নিম্নলিখিত HTTP স্ট্যাটাস কোডগুলির মধ্যে একটি অবশ্যই ফেরত দিতে হবে:
-
102 -
200 -
201 -
202 -
204
-
আপনি একাধিক সাবস্ক্রিপশনের জন্য একই কলব্যাক ইউআরআই ব্যবহার করতে পারেন। একটিমাত্র এন্ডপয়েন্টের উপর চাপ কমাতে, প্রতিটি অ্যাডভান্সড অ্যাকাউন্ট এবং ইভেন্ট টাইপের জন্য একটি স্বতন্ত্র কলব্যাক ইউআরআই ব্যবহার করুন।
সাবস্ক্রিপশন পরিচালনা করুন
নোটিফিকেশন সাব-এপিআই-টি নোটিফিকেশন কনফিগারেশন তৈরি, তালিকাভুক্ত, পুনরুদ্ধার, আপডেট এবং মুছে ফেলার পদ্ধতি প্রদান করে।
একটি সাবস্ক্রিপশন তৈরি করুন
আপনি যে ধরনের ইভেন্ট পেতে চান, তার ওপর ভিত্তি করেই সাবস্ক্রিপশন তৈরি করতে হয়। প্রতিটি ইভেন্ট টাইপের জন্য আলাদা কনফিগারেশন ফিল্ড প্রয়োজন হয় এবং এগুলো স্বতন্ত্র পেলোড কাঠামো প্রদান করে।
কীভাবে সাবস্ক্রিপশন তৈরি করতে হয় এবং প্রতিটি ইভেন্ট টাইপের জন্য নমুনা অনুরোধ দেখতে হয়, তা জানতে সংশ্লিষ্ট গাইডগুলি দেখুন:
- পণ্যের অবস্থার পরিবর্তন সম্পর্কে জানতে সাবস্ক্রাইব করুন
- অ্যাকাউন্ট পরিষেবা পরিবর্তনে সাবস্ক্রাইব করুন
তালিকা সাবস্ক্রিপশন
কোনো অ্যাকাউন্টের সমস্ত নোটিফিকেশন সাবস্ক্রিপশনের তালিকা দেখতে, notificationsubscriptions কালেকশনে একটি GET রিকোয়েস্ট পাঠান:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions
একটি সাবস্ক্রিপশন পুনরুদ্ধার করুন
কোনো নির্দিষ্ট সাবস্ক্রিপশনের বিবরণ পেতে, সাবস্ক্রিপশনটির রিসোর্স নামটি ব্যবহার করুন:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
একটি সাবস্ক্রিপশন আপডেট করুন
বিদ্যমান সাবস্ক্রিপশনের জন্য কলব্যাক URI আপডেট করতে, আপডেট করার জন্য ফিল্ডগুলি নির্দিষ্ট করে একটি update_mask সহ একটি PATCH অনুরোধ পাঠান:
PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
"callBackUri": "https://example.com/updated-callback"
}
একটি সাবস্ক্রিপশন মুছে ফেলুন
নোটিফিকেশন পাওয়া বন্ধ করতে, সাবস্ক্রিপশনটি ডিলিট করুন:
DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
বিজ্ঞপ্তিগুলি ডিকোড করুন
যখন কোনো ঘটনা ঘটে, গুগল আপনার নিবন্ধিত callBackUri তে একটি বিজ্ঞপ্তি পাঠায়। পুশ নোটিফিকেশনটি একটি JSON এনভেলপে আসে, যার data পেলোডটি base64-এনকোডেড থাকে:
{"message":{"data":"{base64_encoded_string}"}}
JSON ইভেন্ট পেলোড অ্যাক্সেস করতে ডেটা স্ট্রিংটি ডিকোড করুন। নিম্নলিখিত নমুনা Spring Boot কন্ট্রোলারটি দেখায় কিভাবে পুশ নোটিফিকেশন গ্রহণ এবং ডিকোড করতে হয়:
@RestController
public class ExampleController {
@RequestMapping(value = "/push",
method = RequestMethod.POST,
consumes = {"application/json"},
produces = {"text/plain"})
@ResponseStatus(HttpStatus.OK)
public void handleNotification(@RequestBody String message) {
JSONObject jsonObject = new JSONObject(message);
JSONObject jsonMessage = jsonObject.getJSONObject("message");
String encodedData = jsonMessage.getString("data");
byte[] decodedBytes = Base64.getDecoder().decode(encodedData);
String decodedPayload = new String(decodedBytes);
// Process decodedPayload according to the registered event type
}
}
পরবর্তী পদক্ষেপ
নির্দিষ্ট ইভেন্টের জন্য সাবস্ক্রিপশন কনফিগার করতে এবং ডিকোড করা পেলোড পরিচালনা করতে, দেখুন:
- পণ্যের অবস্থার পরিবর্তনের জন্য পুশ নোটিফিকেশন পান : পণ্যের অনুমোদন ও অননুমোদনের আপডেটে কীভাবে সাবস্ক্রাইব করতে হয় এবং
ProductStatusChangeMessageপেলোডটি কীভাবে পার্স করতে হয়, তা জানুন। - অ্যাকাউন্ট পরিষেবা পরিবর্তনের জন্য পুশ নোটিফিকেশন পান : অ্যাকাউন্ট সম্পর্ক আপডেটের জন্য কীভাবে সাবস্ক্রাইব করতে হয় এবং
ResourceChangeMessageপেলোড পার্স করতে হয় তা জানুন।