প্রতারণা এবং অপব্যবহারের বিরুদ্ধে লড়াই করুন

আপনার অ্যাপের জনপ্রিয়তা বাড়ার সাথে সাথে এটি দূষিত ব্যবহারকারীদের অবাঞ্ছিত দৃষ্টি আকর্ষণ করতে পারে যারা আপনার অ্যাপের অপব্যবহার করতে চায়। এই বিষয় সুপারিশগুলি বর্ণনা করে যা আপনার বিলিং ইন্টিগ্রেশনে এই আক্রমণগুলি প্রতিরোধ করতে এবং আপনার অ্যাপে অপব্যবহারের প্রভাব কমাতে সাহায্য করতে ব্যবহার করা উচিত৷

আপনার ব্যাকএন্ডে সংবেদনশীল যুক্তি সরান

আপনার অ্যাপ ডিজাইন যতটা অনুমতি দেয়, আপনার নিয়ন্ত্রণ করা ব্যাকএন্ড সার্ভারে সংবেদনশীল ডেটা এবং যুক্তি নিয়ে যান। ফ্রন্টএন্ড ডিভাইসে আপনার যত বেশি ডেটা এবং লজিক থাকবে, এটি পরিবর্তন বা টেম্পারড হওয়ার জন্য তত বেশি ঝুঁকিপূর্ণ।

উদাহরণ স্বরূপ, একটি অনলাইন দাবা খেলার ব্যাকএন্ডে সমস্ত চালকে বৈধতা দেওয়া উচিত যাতে বিশ্বাস না করে যে ফ্রন্টএন্ড সবসময় আইনি পদক্ষেপ পাঠায়।

উপরন্তু, আপনার সিস্টেম ডিজাইনের উপর নির্ভর করে আপনি যদি দুর্বলতা বা নিরাপত্তা সমস্যা খুঁজে পান, তাহলে ফ্রন্টএন্ডের পরিবর্তে ব্যাকএন্ডে আপডেটগুলি ডিবাগ করা, ঠিক করা এবং রোল আউট করা সহজ হতে পারে।

এনটাইটেলমেন্ট দেওয়ার আগে ক্রয় যাচাই করুন

সংবেদনশীল ডেটা এবং যুক্তির একটি বিশেষ ক্ষেত্রে যা ব্যাকএন্ডে পরিচালনা করা উচিত তা হল ক্রয় যাচাইকরণ এবং স্বীকৃতি। একজন ব্যবহারকারী ক্রয় করার পরে, আপনাকে নিম্নলিখিতগুলি করতে হবে:

  1. আপনার ব্যাকএন্ডে সংশ্লিষ্ট purchaseToken পাঠান। এর মানে হল যে আপনি সমস্ত ক্রয়ের জন্য সমস্ত purchaseToken মানগুলির একটি রেকর্ড বজায় রাখবেন৷
  2. যাচাই করুন যে বর্তমান ক্রয়ের জন্য purchaseToken মান পূর্ববর্তী কোন purchaseToken মানগুলির সাথে মেলে না৷ purchaseToken বিশ্বব্যাপী অনন্য, তাই আপনি নিরাপদে এই মানটিকে আপনার ডাটাবেসের প্রাথমিক কী হিসাবে ব্যবহার করতে পারেন।
  3. Google Play Developer API-এ Purchases.products:get বা Purchases.subscriptionsv2:get এন্ডপয়েন্ট ব্যবহার করুন যাতে Google-এর মাধ্যমে যাচাই করা যায় যে ক্রয়টি বৈধ।
  4. যদি ক্রয় বৈধ হয় এবং অতীতে ব্যবহার করা না হয়, তাহলে আপনি নিরাপদে অ্যাপ-মধ্যস্থ আইটেম বা সদস্যতার এনটাইটেলমেন্ট দিতে পারেন।
  5. সাবস্ক্রিপশনের জন্য, যখন Purchases.subscriptionsv2:getlinkedPurchaseToken সেট করা থাকে, তখন আপনাকে আপনার ডাটাবেস থেকে linkedPurchaseToken কেও সরিয়ে দিতে হবে এবং একাধিক ব্যবহারকারী একই ক্রয়ের জন্য এনটাইটেলমেন্টের অধিকারী নয় তা নিশ্চিত করতে linkedPurchaseToken কে দেওয়া এনটাইটেলমেন্ট প্রত্যাহার করতে হবে।
  6. ক্রয় অবস্থা PURCHASED হলেই আপনার এনটাইটেলমেন্ট মঞ্জুর করা উচিত এবং PENDING ক্রয়গুলি সঠিকভাবে পরিচালনা করা নিশ্চিত করুন৷ CANCELED কেনাকাটার সংখ্যা বৃদ্ধি পেলে, কেনাকাটা এখনও PENDING থাকা অবস্থায় আপনি এনটাইটেলমেন্ট প্রদান করতে পারেন। আপনি মুলতুবি লেনদেন পরিচালনা করতে আরও তথ্য পেতে পারেন।
  7. এনটাইটেলমেন্ট দেওয়ার পরে, আপনি যদি একটি ভোগ্য পণ্য গ্রহণ করতে এবং স্বীকার করতে চান, তাহলে আপনার নিরাপদ ব্যাকএন্ড সার্ভারে Purchases.products:consume Play Developer API ব্যবহার করুন। একটি অ-ব্যবহারযোগ্য পণ্য বা সাবস্ক্রিপশন স্বীকার করতে, প্রাসঙ্গিক প্লে ডেভেলপার API এন্ডপয়েন্টে কল করুন, হয় Purchases.products:acknowledge বা Purchases.subscriptions:acknowledge । স্বীকৃতি প্রয়োজন, কারণ এটি Google Play-কে জানায় যে ব্যবহারকারীকে ক্রয়ের জন্য এনটাইটেলমেন্ট দেওয়া হয়েছে। এনটাইটেলমেন্ট দেওয়ার পর অবিলম্বে আপনাকে ক্রয় স্বীকার করতে হবে।

    মনে রাখবেন যে আপনি যখন আপনার অ্যাপের মাধ্যমে ক্লায়েন্টের পক্ষ থেকে কেনাকাটা স্বীকার করতে বা ব্যবহার করতে পারেন, তখন সার্ভার সাইড APIগুলি দুর্বল নেটওয়ার্ক সংযোগ এবং দূষিত কার্যকলাপের মতো সমস্যাগুলির বিরুদ্ধে অতিরিক্ত সুরক্ষা প্রদান করে৷ উদাহরণস্বরূপ, একজন ব্যবহারকারী আপনার অ্যাপ থেকে একটি আইটেম কিনেছেন কিনা তা বিবেচনা করুন কিন্তু ক্রয়টি যাচাই করার সময় তারা নেটওয়ার্ক সংযোগ হারিয়েছে। সার্ভার স্বীকৃতি ছাড়া, স্বীকৃতি প্রক্রিয়াটি সম্পূর্ণ করতে তাদের অ্যাপের মাধ্যমে আবার লগ ইন করতে হতে পারে। অন্যথায়, যদি ব্যবহারকারী তিন দিনের মধ্যে আবার লগ ইন না করে, ক্রয় স্বীকৃতির অভাবের কারণে ক্রয় স্বয়ংক্রিয়ভাবে ফেরত দেওয়া হয়। Google Play সার্ভারকে ক্রয়টি বৈধ বলে সূচিত করার সাথে সাথে সার্ভার স্বীকৃতি প্রাপ্তি স্বীকার করে এই দৃশ্যটিকে আটকায়।

    ক্রয় স্বীকৃতি এবং খরচ সম্পর্কে আরও তথ্যের জন্য, ক্রয় প্রক্রিয়াকরণ দেখুন।

আপনার আনলক কন্টেন্ট রক্ষা

ক্ষতিকারক ব্যবহারকারীদের আপনার আনলক করা বিষয়বস্তু পুনরায় বিতরণ করা থেকে আটকাতে, এটিকে আপনার APK ফাইলে বান্ডিল করবেন না। পরিবর্তে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

  • আপনার বিষয়বস্তু বিতরণ করতে একটি রিয়েল-টাইম পরিষেবা ব্যবহার করুন, যেমন একটি বিষয়বস্তু ফিড। একটি রিয়েল-টাইম পরিষেবার মাধ্যমে সামগ্রী সরবরাহ করা আপনাকে আপনার সামগ্রীকে সতেজ রাখতে সক্ষম করে।
  • আপনার সামগ্রী সরবরাহ করতে একটি দূরবর্তী সার্ভার ব্যবহার করুন।

আপনি যখন রিমোট সার্ভার বা রিয়েল-টাইম পরিষেবা থেকে সামগ্রী সরবরাহ করেন, তখন আপনি ডিভাইসের মেমরিতে আনলক করা সামগ্রী সংরক্ষণ করতে পারেন বা ডিভাইসের SD কার্ডে সংরক্ষণ করতে পারেন৷ আপনি যদি একটি SD কার্ডে সামগ্রী সংরক্ষণ করেন তবে সামগ্রীটি এনক্রিপ্ট করতে ভুলবেন না এবং একটি ডিভাইস-নির্দিষ্ট এনক্রিপশন কী ব্যবহার করুন৷

অকার্যকর ক্রয় সনাক্ত করুন এবং পরিচালনা করুন

অকার্যকর কেনাকাটা হল এমন ক্রয় যা বাতিল করা হয়েছে, প্রত্যাহার করা হয়েছে বা চার্জ ফেরত নেওয়া হয়েছে। যদি একটি অকার্যকর কেনাকাটা আগে কোনও ব্যবহারকারীকে অ্যাপ-মধ্যস্থ আইটেম বা অন্যান্য সামগ্রী মঞ্জুর করে থাকে, তাহলে আপনি যে কোনও সম্পর্কিত সামগ্রী সহ ক্রয় বাতিল হওয়ার কারণ জানতে আপনি ভয়েডেড পারচেসেস API ব্যবহার করতে পারেন যা আপনি ফিরে পেতে পারেন৷

অ্যাপ-মধ্যস্থ আইটেম এবং সদস্যতাগুলির জন্য ক্রয়গুলি নিম্নলিখিতগুলি সহ বিভিন্ন কারণে বাতিল করা যেতে পারে:

  • একটি ক্রয় বাতিল করা হয়, হয় ব্যবহারকারী দ্বারা, বিকাশকারী দ্বারা বা Google দ্বারা (অস্বীকৃত স্বয়ংক্রিয়-বাতিল কেনাকাটা সহ)। সাবস্ক্রিপশনের জন্য, মনে রাখবেন যে এটি সাবস্ক্রিপশন বাতিল করার পরিবর্তে একটি সাবস্ক্রিপশন ক্রয় বাতিলকে বোঝায়।
  • একটি ক্রয় ফেরত চার্জ করা হয়.
  • অ্যাপ বিকাশকারী ব্যবহারকারীর অর্ডার বাতিল বা ফেরত দেয় এবং কনসোলে "প্রত্যাহার" বিকল্পটি পরীক্ষা করে।

অকার্যকর কেনাকাটার কারণের উপর ভিত্তি করে এবং পূর্ববর্তী ব্যবহারকারীর আচরণগত ডেটা বিবেচনায় নিয়ে, আপনি একটি পদক্ষেপের বিষয়ে সিদ্ধান্ত নিতে পারেন। আমরা নিম্নলিখিতগুলির মধ্যে এক বা একাধিক প্রয়োগ করার পরামর্শ দিই:

  • ক্লব্যাক সম্পাদন করুন: যখন একটি ক্রয় বাতিল হয়ে যায়, তখন আপনি অব্যবহৃত আইটেমগুলিকে এমনভাবে ফেরত দিতে পারেন যেন সেগুলি কখনও কেনা হয়নি। উদাহরণ স্বরূপ, যদি একটি ইন-গেম কারেন্সি ক্রয় বাতিল করা হয়, তাহলে আপনি ক্লো ব্যাক কারেন্সি পেতে পারেন যা ইতিমধ্যেই ব্যবহারকারীকে দেওয়া হয়েছে। সেক্ষেত্রে যেখানে ব্যবহারকারী ইতিমধ্যেই মুদ্রা ব্যয় করেছেন, মুদ্রার ভারসাম্য নেতিবাচক হিসাবে সেট করুন এবং মুদ্রার ভারসাম্য ইতিবাচক না হওয়া পর্যন্ত অ্যাপ কার্যকলাপ এবং ভবিষ্যতের কেনাকাটা সীমিত করার কথা বিবেচনা করুন।
  • একাধিক স্ট্রাইক বাস্তবায়ন: প্রথমবার অপরাধীদের জন্য কম কঠোর পদক্ষেপ নেওয়ার কথা বিবেচনা করুন, যেমন অ্যাপ-মধ্যস্থ সতর্কতা প্রদর্শন করা। পুনরাবৃত্তি অপরাধীদের জন্য, আরো কঠোর ব্যবস্থা বিবেচনা করুন.
  • সাময়িকভাবে কেনাকাটা অক্ষম করুন: একাধিক স্ট্রাইক বাস্তবায়নের অনুরূপ, কেন ক্রয় বাতিল করা হয়েছে তা আরও পুঙ্খানুপুঙ্খভাবে তদন্ত না করা পর্যন্ত অকার্যকর কেনাকাটার ব্যবহারকারীদের জন্য কেনাকাটা অক্ষম করার কথা বিবেচনা করুন।
  • সাময়িকভাবে বা স্থায়ীভাবে আপনার অ্যাপে অ্যাক্সেসের অনুমতি না দিন: বারবার দূষিত কার্যকলাপের চরম ক্ষেত্রে, অস্থায়ীভাবে বা স্থায়ীভাবে আপনার অ্যাপে অ্যাক্সেসের অনুমতি না দেওয়ার কথা বিবেচনা করুন।
  • অকার্যকর কেনাকাটা এপিআই-তে ঘন ঘন কল করুন: আপনি যখন এক বা একাধিক অকার্যকর কেনাকাটা শনাক্ত করেন, তখন ব্যবহারকারীরা সেগুলি ব্যবহার করতে পারার আগে ক্রয়গুলি ফিরিয়ে আনতে অকার্যকর কেনাকাটা API-তে আরও ঘন ঘন কল করার কথা বিবেচনা করুন। আপনি Voided Purchases API ডকুমেন্টেশনে Voided Purchases API কোটা সম্পর্কে আরও তথ্য পেতে পারেন।

জালিয়াতি হওয়ার আগেই Google-কে শনাক্ত করতে সাহায্য করুন

কিছু ধরনের জালিয়াতি দূষিত ব্যবহারকারীদের সাথে সম্পর্কিত যারা তাদের কার্যকলাপ লুকানোর জন্য একাধিক Google এবং ইন-অ্যাপ অ্যাকাউন্ট তৈরি করে।

Google অ্যাকাউন্টগুলিকে অ্যাপ-মধ্যস্থ অ্যাকাউন্টগুলিতে ম্যাপ করতে Google-কে সাহায্য করতে BillingFlowParams এর নির্মাতার setObfuscatedAccountId এবং setObfuscatedProfileId পদ্ধতিগুলি ব্যবহার করুন৷

Google এই ডেটা ব্যবহার করে সন্দেহজনক আচরণ শনাক্ত করতে এবং কিছু ধরনের প্রতারণামূলক লেনদেন সম্পূর্ণ হওয়ার আগে ব্লক করে।

ট্রেডমার্ক এবং কপিরাইট লঙ্ঘনের বিরুদ্ধে ব্যবস্থা নেওয়া

আপনি যদি সামগ্রী সরবরাহ বা পরিচালনা করার জন্য একটি দূরবর্তী সার্ভার ব্যবহার করেন, আপনার অ্যাপটিকে আনলক করা সামগ্রীর ক্রয়ের অবস্থা যাচাই করতে বলুন যখনই কোনো ব্যবহারকারী সামগ্রীটি অ্যাক্সেস করে৷ এটি আপনাকে প্রয়োজনে ব্যবহার প্রত্যাহার করতে এবং জলদস্যুতা হ্রাস করতে দেয়৷ আপনি যদি দেখেন যে আপনার সামগ্রী Google Play এ পুনরায় বিতরণ করা হচ্ছে, দ্রুত এবং সিদ্ধান্তমূলকভাবে কাজ করতে ভুলবেন না। আরও বিশদ বিবরণের জন্য, কপিরাইট সহায়তা কেন্দ্রে প্রায়শই জিজ্ঞাসিত কপিরাইট প্রশ্ন পৃষ্ঠাটি দেখুন৷