দৈনন্দিন ব্যবসার অংশ হিসেবে আপনাকে সাবস্ক্রিপশন বা এককালীন কেনাকাটার ক্ষেত্রে ব্যবস্থাপনা পদক্ষেপ নিতে হতে পারে। উদাহরণস্বরূপ, আপনার গ্রাহক পরিষেবা ব্যবহারকারীদের জন্য সম্পূর্ণ বা আংশিক অর্থ ফেরত দিতে হতে পারে, অথবা কিছু ক্ষেত্রে আপনাকে এনটাইটেলমেন্ট প্রত্যাহার করতে হতে পারে। আপনি Play Console থেকে অর্ডার পরিচালনা করতে পারেন, অথবা আপনি যদি আপনার নিজস্ব সিস্টেম থেকে সেগুলি পরিচালনা করতে চান, তাহলে আপনি Google Play Developer API ব্যবহার করে তা করতে পারেন।
সাবস্ক্রিপশন বাতিল করুন
সাবস্ক্রিপশন বাতিলকরণ ব্যবহারকারী বা ডেভেলপারদের দ্বারা শুরু করা যেতে পারে।
ব্যবহারকারীর দ্বারা বাতিলকরণের প্রক্রিয়া শুরু হয়েছে
ব্যবহারকারীরা প্লে স্টোর ব্যবহার করে যেকোনো সময় গুগল প্লে সাবস্ক্রিপশন বাতিল করতে পারবেন। প্রযোজ্য হলে, আপনার অ্যাপ এবং আপনার ওয়েবসাইটে ব্যবহারকারীদের তাদের সাবস্ক্রিপশন বাতিল করার জন্য একটি বিকল্পও প্রদান করতে হবে।
ব্যবহারকারীদের স্বেচ্ছায় বাতিল করার সবচেয়ে সহজ উপায় হল আপনার অ্যাপে প্লে স্টোরে ডিপ লিঙ্ক প্রদান করা , যেখানে তারা তাদের সাবস্ক্রিপশন দেখতে এবং পরিচালনা করতে পারবেন।
ডেভেলপার বাতিলকরণ শুরু করেছেন
একজন ডেভেলপার হিসেবে, আপনার ব্যাকএন্ড থেকে বাতিলকরণ ট্রিগার করার প্রয়োজন হতে পারে। purchases.subscriptions.cancel API আপনাকে সাবস্ক্রিপশন ক্রয় বাতিল করতে দেয়। উদাহরণস্বরূপ, আপনি একটি লিগ্যাসি পরিষেবা বন্ধ করতে এই পদ্ধতিটি ব্যবহার করতে পারেন। সাবস্ক্রিপশন বাতিল করলে কোনও ফেরত দেওয়া হয় না এবং ব্যবহারকারী তাদের বর্তমান বিলিং সময়কাল শেষ না হওয়া পর্যন্ত অ্যাক্সেস ধরে রাখেন।
এই পদ্ধতিটি আপনাকে cancellationType request body প্যারামিটারে নিম্নলিখিত ধরণের বাতিলকরণ নির্দিষ্ট করতে দেয়:
USER_REQUESTED_STOP_RENEWALS : সাবস্ক্রিপশন বাতিল করে যেন ব্যবহারকারীরা প্লে স্টোর থেকে বাতিল করেছেন। যেকোনো কিস্তির পেমেন্ট বর্তমান প্রতিশ্রুতির বাকি সময়কাল ধরে চলতে থাকবে। প্লে স্টোর থেকে, ব্যবহারকারীরা মেয়াদ শেষ হওয়ার আগে সাবস্ক্রিপশন পুনরুদ্ধার করতে পারেন, অথবা বেস প্ল্যানের জন্য সক্ষম থাকলে মেয়াদ শেষ হওয়ার পরে পুনরায় সাবস্ক্রিপশন করতে পারেন।
DEVELOPER_REQUESTED_STOP_PAYMENTS : সাবস্ক্রিপশন বাতিল করে এবং পরবর্তী কোনও পেমেন্ট আটকাতে পারে। ব্যবহারকারীরা প্লে স্টোর থেকে সাবস্ক্রিপশন পুনরুদ্ধার বা পুনরায় সাবস্ক্রাইব করতে পারবেন না, তবে আপনি তাদের আপনার অ্যাপের মধ্যে আবার সাবস্ক্রাইব করতে সক্ষম করতে পারেন।
ব্যবহারকারীদের মেয়াদোত্তীর্ণ না হওয়া সাবস্ক্রিপশন পুনরুদ্ধার করতে সক্ষম করুন
কিছু পরিস্থিতিতে, ডেভেলপার হিসেবে বাতিলকরণ ট্রিগার করার পরে, ব্যবহারকারীদের Play সাবস্ক্রিপশন সেন্টার থেকে মেয়াদোত্তীর্ণ না হওয়া সাবস্ক্রিপশন পুনরুদ্ধার করার অনুমতি দেওয়া আপনার জন্য কার্যকর হতে পারে। উদাহরণস্বরূপ, আপনি একটি কাস্টমাইজড ইন-অ্যাপ বাতিলকরণ প্রবাহ প্রদান করতে চাইতে পারেন। আপনার ব্যবসায়িক যুক্তির উপর ভিত্তি করে, আপনি সিদ্ধান্ত নিতে পারেন যে আপনার ব্যাকএন্ড থেকে কোন বাতিলকরণগুলি ব্যবহারকারীদের দ্বারা পুনরুদ্ধার করা যাবে।
ব্যবহারকারী বাতিলকরণ পুনরুদ্ধার করতে পারেন তা বোঝাতে, purchases.subscriptions.cancel API-তে একটি POST অনুরোধ জারি করুন এবং cancellationType অনুরোধ প্যারামিটারটি USER_REQUESTED_STOP_RENEWAL মানে সেট করুন।
উদাহরণ:
- সাবস্ক্রিপশনের ক্রয় টোকেন
1a2b3c4d5e6f7g8h9i0j - অ্যাপ্লিকেশন প্যাকেজের নাম
com.your.app - সাবস্ক্রিপশন আইডি
your-subscription-product
HTTP পোস্ট অনুরোধ:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel
অনুরোধের মূল অংশ:
{
"cancellationType": "USER_REQUESTED_STOP_RENEWAL"
}
ব্যবহারকারীদের মেয়াদোত্তীর্ণ সাবস্ক্রিপশন পুনরায় সাবস্ক্রাইব করতে সক্ষম করুন
মেয়াদোত্তীর্ণ সাবস্ক্রিপশনের পুনঃসাবস্ক্রিপশনের অনুমতি দিতে, আপনাকে সাবস্ক্রিপশনের বেস প্ল্যানে পুনঃসাবস্ক্রিপশন বিকল্পটি সক্ষম করতে হবে এবং তারপর cancellationType প্যারামিটারটি USER_REQUESTED_STOP_RENEWAL মান সেট করে সাবস্ক্রিপশন বাতিল করতে হবে।
ব্যবহারকারীদের শুধুমাত্র আপনার অ্যাপ্লিকেশনে পুনরায় সদস্যতা নিতে সক্ষম করুন
যদি আপনি cancellationType প্যারামিটারটি DEVELOPER_REQUESTED_STOP _PAYMENTS এ সেট করে থাকেন অথবা cancellationType প্যারামিটারটি সেট না করে থাকেন, তাহলে ব্যবহারকারীরা Play সাবস্ক্রিপশন সেন্টার থেকে তাদের সাবস্ক্রিপশন পুনরুদ্ধার করতে পারবেন না। তবে, প্রয়োজনে ব্যবহারকারীরা আপনার অ্যাপের মাধ্যমে সাবস্ক্রিপশনের জন্য আবার সাইন আপ করতে পারবেন।
এই পদক্ষেপটি নিলে একটি SUBSCRIPTION_CANCELED রিয়েল-টাইম ডেভেলপার বিজ্ঞপ্তি ট্রিগার হবে। Cancellations -এ বর্ণিত পদ্ধতিতে এই বাতিলকরণগুলি পরিচালনা করুন।
বিলিং পিছিয়ে দিন
আপনি subscriptionsv2.defer পদ্ধতি ব্যবহার করে সাবস্ক্রিপশনের জন্য এনটাইটেলমেন্টের সময়কাল বাড়াতে পারেন। যখন আপনি অ্যাড-অন সহ সাবস্ক্রিপশন স্থগিত করেন, তখন সাবস্ক্রিপশনের সমস্ত আইটেম একই সময়কালের জন্য স্থগিত থাকে। স্থগিত সময়কালে, ব্যবহারকারী আপনার সামগ্রীতে সাবস্ক্রাইব থাকে যদিও অতিরিক্ত সময়ের জন্য চার্জ করা হয় না। যখন আপনি সাবস্ক্রিপশনের জন্য বিলিং স্থগিত করেন, তখন স্থিতির তথ্য সেই অনুযায়ী আপডেট করা হয় এবং আপনি ক্রয়ের স্থিতির তথ্যের expiryTime ক্ষেত্রে এটি প্রতিফলিত দেখতে পাবেন:
- সক্রিয় পুনরাবৃত্ত সাবস্ক্রিপশনের জন্য, বিলম্বিত বিলিং পরবর্তী পুনর্নবীকরণের তারিখ বাড়িয়ে দেয়।
- প্রিপেইড প্ল্যানের ক্ষেত্রে, বিলম্বিত বিলিং মেয়াদ শেষ হওয়ার সময় বাড়িয়ে দেয়।
বিলম্বিত বিলিং কীভাবে ব্যবহার করা যেতে পারে তার কিছু উদাহরণ হল:
- ব্যবহারকারীদের একটি বিশেষ অফার হিসেবে বিনামূল্যে অ্যাক্সেস দিন, যেমন একটি প্রতিক্রিয়া জরিপ পূরণ করার জন্য বিদ্যমান গ্রাহকদের এক সপ্তাহ বিনামূল্যে দেওয়া।
- গ্রাহকদের পরিষেবা প্রদানের ক্ষেত্রে গ্রাহক-যত্ন ব্যবস্থা হিসেবে বিনামূল্যে অ্যাক্সেস দিন, উদাহরণস্বরূপ, দীর্ঘ সময় ধরে পরিষেবা বন্ধ থাকার কারণে যা তাদের পরিষেবা ব্যবহারের ক্ষমতাকে প্রভাবিত করতে পারে।
প্রতিটি API কলের জন্য বিলিং এক দিন এবং এক বছর পর্যন্ত পিছিয়ে দেওয়া যেতে পারে। এনটাইটেলমেন্টের সমাপ্তি আরও পিছিয়ে দেওয়ার জন্য, নতুন মেয়াদ শেষ হওয়ার আগে আবার API-তে কল করুন।
এই পদক্ষেপটি গ্রহণ করলে একটি SUBSCRIPTION_DEFERRED রিয়েল-টাইম ডেভেলপার বিজ্ঞপ্তি ট্রিগার হয়। এই ইভেন্টগুলি কীভাবে পরিচালনা করবেন তা জানতে সাবস্ক্রিপশন সম্পর্কে সাবস্ক্রিপশনের জন্য বিলম্বিত বিলিং দেখুন।
উদাহরণ:
ফিটনেসগোলস স্ট্রিমিং পরিষেবা ফেব্রুয়ারিতে নিয়মিত ব্যায়ামকে উৎসাহিত করার জন্য একটি প্রচারণা চালাতে চায়।
তারা ফেব্রুয়ারী মাসে কমপক্ষে ১০ বার FitnessGoals-এর সাথে ব্যায়াম করলে যে কোনও গ্রাহককে অতিরিক্ত এক মাসের পরিষেবা প্রদানের সিদ্ধান্ত নিয়েছে।
তারা চ্যালেঞ্জের ফলাফল ট্র্যাক করে এবং ১লা মার্চ, তারা ফেব্রুয়ারিতে চ্যালেঞ্জ পূরণকারী ব্যবহারকারীদের প্রতিটি সক্রিয় সাবস্ক্রিপশন ক্রয়ের জন্য subscriptionsv2.defer পদ্ধতিটি কল করে।
এই ব্যবহারকারীরা বিনামূল্যে এক মাসের জন্য অতিরিক্ত নিয়মিত ব্যায়াম ভিডিও দেখার সুবিধা পান এবং ব্যবহারকারীরা তাদের সমস্ত বন্ধুদের জানান যে কীভাবে FitnessGoals তাদের সুস্থ থাকতে সাহায্য করে!
রিফান্ড এবং প্রত্যাহার ইস্যু করুন
এমন অনেক পরিস্থিতি আছে যেখানে আপনি সাবস্ক্রিপশন বা এককালীন ক্রয়ের জন্য ফেরত দিতে বা অ্যাক্সেস প্রত্যাহার করতে চাইতে পারেন।
অর্ডার আইডির মাধ্যমে অর্ডারের সম্পূর্ণ টাকা ফেরত দিন
orders.refund API এর সাহায্যে, আপনি ক্রয়ের তিন বছরের মধ্যে যেকোনো অর্ডারের জন্য সম্পূর্ণ অর্থ ফেরত দিতে পারবেন। orders.refund পদ্ধতিতে একটি প্রত্যাহার প্যারামিটার পাওয়া যায় যা ফেরত প্রদানের পাশাপাশি অ্যাক্সেস প্রত্যাহার করা উচিত কিনা তা নির্দেশ করে।
যদি আপনি সাবস্ক্রিপশন ক্রয়ের জন্য রিফান্ড কলের মাধ্যমে একটি প্রত্যাহার জারি করেন, তাহলে সাবস্ক্রিপশনটি তাৎক্ষণিকভাবে বন্ধ হয়ে যাবে এবং এটি একটি SUBSCRIPTION_REVOKED রিয়েল টাইম ডেভেলপার বিজ্ঞপ্তি ট্রিগার করবে। এই ঘটনাগুলি কীভাবে পরিচালনা করবেন তা জানতে সাবস্ক্রিপশন লাইফসাইকেল পরিচালনা নির্দেশিকা প্রত্যাহার বিভাগটি পড়ুন।
উদাহরণ:
নতুন বিশ্বকাপের সূচনা উদযাপন করতে, ই-স্পোর্টস অ্যাপ ফুটবল-নট-সকার প্রথম 24 ঘন্টার মধ্যে নতুন টিম কিট কিনলে সকল ব্যবহারকারীর জন্য বিনামূল্যে ভার্চুয়াল জার্সি লটারি করার সিদ্ধান্ত নিয়েছে।
Football-Not-Soccer বিজয়ীদের জার্সি ক্রয় ফেরত দেওয়ার জন্য প্রত্যাহার প্যারামিটার পাস না করেই
orders.refundAPI ব্যবহার করে।
ক্রয় টোকেনের মাধ্যমে সাবস্ক্রিপশন প্রত্যাহার এবং ফেরত দিন
কিছু নির্দিষ্ট ব্যবহারের ক্ষেত্রে আপনাকে ব্যবহারকারীর সাবস্ক্রিপশনের অ্যাক্সেস প্রত্যাহার করে ফেরত প্রদান করতে হতে পারে। Play Billing subscriptionsv2.revoke API এর মাধ্যমে সম্পূর্ণ ফেরত এবং প্রোরেটেড ফেরত সহ প্রত্যাহার পদ্ধতি অফার করে। এই এন্ডপয়েন্টের সাহায্যে, আপনি রিফান্ড কীভাবে গণনা করা হয় তা নির্ধারণ করতে revocationContext নির্দিষ্ট করতে পারেন।
এই পদক্ষেপটি গ্রহণ করলে একটি SUBSCRIPTION_REVOKED রিয়েল টাইম ডেভেলপার বিজ্ঞপ্তি ট্রিগার হবে। আপনার অ্যাপটি Revocations -এ বর্ণিত পদ্ধতিতে এই বাতিলকরণগুলি পরিচালনা করবে।
উদাহরণ:
- ক্রয় টোকেন
1a2b3c4d5e6f7g8h9i0jদিয়ে কিনুন - প্যাকেজ নাম
com.your.appসহ অ্যাপ্লিকেশন - আনুপাতিক হারে ফেরত প্রদানের উদ্দেশ্য
HTTP পোস্ট অনুরোধ:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke
অনুরোধের মূল অংশ:
{
"revocationContext": {
"proratedRefund": {}
}
}
সম্পূর্ণ ফেরত
যদি আপনার সাবস্ক্রিপশন বন্ধ করে বর্তমান বিলিং সময়ের সম্পূর্ণ অর্থ ফেরত দিতে হয়, তাহলে সম্পূর্ণ অর্থ ফেরত দিন। purchases.subscriptionsv2.revoke ফাংশনটি ব্যবহার করুন এবং "fullRefund": {} অর্থ ফেরতের ধরণ হিসেবে সেট করুন।
উদাহরণ:
মারিয়ার সুপারমুভিজ স্ট্রিমিং মাসিক প্ল্যানের ৩০ দিনের সাবস্ক্রিপশন স্বয়ংক্রিয়ভাবে পুনর্নবীকরণ হচ্ছে। মারিয়া কিছু প্রযুক্তিগত সমস্যার সম্মুখীন হয়েছে যার কারণে তিনি কন্টেন্ট অ্যাক্সেস করতে পারছেন না। বিলিং চক্রের ৩য় দিনে তিনি গ্রাহক পরিষেবার সাথে যোগাযোগ করে বলেন যে তিনি কখনও সাবস্ক্রিপশন অ্যাক্সেস করতে পারেননি।
গ্রাহক পরিষেবা তাদের সিস্টেমে মারিয়ার সাবস্ক্রিপশন ক্রয়ের বিবরণ খুঁজে বের করে এবং
purchases.subscriptionsv2.revokeএ একটি কল করে সম্পূর্ণ অর্থ ফেরতের অনুরোধ করে।গ্রাহক পরিষেবা মারিয়াকে বলে যে তার সাবস্ক্রিপশন মূল্যের ১০০% ফেরত দেওয়া উচিত এবং সে আর এই প্ল্যানে সাবস্ক্রাইব করা হয়নি।
প্রোরেট রিফান্ড
যদি আপনার সাবস্ক্রিপশন বন্ধ করে বাকি এনটাইটেলমেন্ট সময় আংশিকভাবে ফেরত দিতে হয়, তাহলে একটি প্রোরেটেড রিফান্ড ইস্যু করুন। purchases.subscriptionsv2.revoke ফাংশনটি ব্যবহার করুন এবং "proratedRefund": {} কে রিফান্ড টাইপ হিসেবে সেট করুন।
উদাহরণ:
মারিয়ার সুপারমুভিজ স্ট্রিমিং মাসিক প্ল্যানের ৩০ দিনের সাবস্ক্রিপশন স্বয়ংক্রিয়ভাবে পুনর্নবীকরণ হচ্ছে। তিনি কিছুদিন ধরে আনন্দের সাথে পরিষেবাটি ব্যবহার করছেন। মারিয়া তার বিলিং চক্রের ১৫তম দিনে গ্রাহক পরিষেবার সাথে যোগাযোগ করে এবং বলে যে তিনি বিদেশে চলে যাচ্ছেন এবং পরের দিন থেকে আর পরিষেবাটি ব্যবহার করতে পারবেন না।
গ্রাহক পরিষেবা তাদের সিস্টেমে মারিয়ার সাবস্ক্রিপশন ক্রয়ের বিবরণ খুঁজে বের করে এবং
purchases.subscriptionsv2.revokeএ একটি কল করে আনুপাতিক হারে ফেরতের অনুরোধ করে।গ্রাহক পরিষেবা মারিয়াকে বলে যে তার সাবস্ক্রিপশন মূল্যের প্রায় ৫০% ফেরত দেওয়া উচিত এবং পরিষেবার অ্যাক্সেস অবিলম্বে বন্ধ করে দেওয়া উচিত।