অ-ভোগযোগ্য ডিজিটাল লেনদেন তৈরি করুন

এই নির্দেশিকাটি ব্যাখ্যা করে যে কীভাবে আপনার কথোপকথনমূলক অ্যাকশনে ডিজিটাল লেনদেন যোগ করতে হয়, যাতে ব্যবহারকারীরা আপনার অ-ভোগযোগ্য ডিজিটাল পণ্য কিনতে পারে।

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

অ-ভোগযোগ্য এক-কালীন পণ্য সম্পর্কে আরও তথ্যের জন্য, এক-কালীন পণ্য-নির্দিষ্ট বৈশিষ্ট্যগুলিতে Android ডকুমেন্টেশন পড়ুন।

লেনদেন প্রবাহ

ডিজিটাল পণ্য লেনদেনের প্রবাহে এই নির্দেশিকা প্রতিটি উন্নয়ন পদক্ষেপের রূপরেখা দেয়। যখন আপনার Action ডিজিটাল পণ্যের লেনদেন পরিচালনা করে, তখন এটি নিম্নলিখিত প্রবাহ ব্যবহার করে:

  1. একটি ডিজিটাল কেনাকাটা API ক্লায়েন্ট সেট আপ করুন : আপনার অ্যাকশন আপনার Google Play ইনভেন্টরির সাথে যোগাযোগ করতে এবং লেনদেনের জন্য ডিজিটাল কেনাকাটা API ব্যবহার করে। আপনার অ্যাকশন অন্য কিছু করার আগে, এটি ডিজিটাল ক্রয় API এর সাথে যোগাযোগ করার জন্য একটি পরিষেবা কী সহ একটি JWT ক্লায়েন্ট তৈরি করে।
  2. তথ্য সংগ্রহ করুন : আপনার অ্যাকশন ব্যবহারকারী এবং আপনার Google Play ইনভেন্টরি সম্পর্কে প্রাথমিক তথ্য সংগ্রহ করে একটি লেনদেনের জন্য প্রস্তুত।
    1. লেনদেনের প্রয়োজনীয়তা যাচাই করুন : ব্যবহারকারী লেনদেন করতে পারে তা নিশ্চিত করতে ক্রয় প্রবাহের শুরুতে আপনার অ্যাকশন ডিজিটাল লেনদেনের প্রয়োজনীয়তা সহায়ক ব্যবহার করে।
    2. উপলব্ধ ইনভেন্টরি সংগ্রহ করুন : আপনার অ্যাকশন আপনার Google Play ইনভেন্টরি পরীক্ষা করে এবং বর্তমানে কেনার জন্য উপলব্ধ আইটেমগুলি সনাক্ত করে৷
  3. অর্ডার তৈরি করুন : আপনার অ্যাকশন ব্যবহারকারীর কাছে উপলব্ধ ডিজিটাল পণ্য উপস্থাপন করে যাতে তারা কেনার জন্য একটি নির্বাচন করতে পারে।
  4. কেনাকাটা সম্পূর্ণ করুন : আপনার অ্যাকশন Google Play স্টোরে ব্যবহারকারীর নির্বাচনের মাধ্যমে একটি কেনাকাটা শুরু করতে ডিজিটাল ক্রয় API ব্যবহার করে।
  5. ফলাফলটি পরিচালনা করুন : আপনার অ্যাকশন লেনদেনের জন্য একটি স্ট্যাটাস কোড পায় এবং ব্যবহারকারীকে জানায় যে ক্রয়টি সফল হয়েছে (বা অতিরিক্ত পদক্ষেপের প্রয়োজন)।

সীমাবদ্ধতা এবং পর্যালোচনা নির্দেশিকা

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

ডিজিটাল পণ্য বিক্রি করে এমন ক্রিয়াগুলি শুধুমাত্র নিম্নলিখিত দেশে স্থাপন করা যেতে পারে:

  • অস্ট্রেলিয়া
  • ব্রাজিল
  • কানাডা
  • ইন্দোনেশিয়া
  • জাপান
  • মেক্সিকো
  • রাশিয়া
  • সিঙ্গাপুর
  • থাইল্যান্ড
  • তুরস্ক
  • যুক্তরাজ্য
  • যুক্তরাষ্ট্র

পূর্বশর্ত

আপনি আপনার অ্যাকশনে ডিজিটাল লেনদেনগুলিকে অন্তর্ভুক্ত করার আগে, আপনার নিম্নলিখিত পূর্বশর্তগুলির প্রয়োজন:

একটি Android অ্যাপ সংযুক্ত করুন

আপনার যদি বর্তমানে Google Play কনসোলে বিলিং অনুমতি সহ একটি Android অ্যাপ না থাকে, তাহলে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যান্ড্রয়েড স্টুডিওতে বা আপনার পছন্দের অ্যান্ড্রয়েড আইডিইতে, একটি নতুন প্রকল্প তৈরি করুন। একটি খুব মৌলিক অ্যাপ তৈরি করতে প্রজেক্ট সেটআপ প্রম্পটে বিকল্পগুলি বেছে নিন।
  2. প্রকল্পটির একটি প্যাকেজ নাম দিন, যেমন com.mycompany.myapp । এই নামটিকে ডিফল্ট হিসাবে ছেড়ে দেবেন না, যেহেতু আপনি প্লে কনসোলে com.example অন্তর্ভুক্ত প্যাকেজগুলি আপলোড করতে পারবেন না৷
  3. আপনার অ্যাপের AndroidManifest.xml ফাইল খুলুন।
  4. manifest উপাদানের ভিতরে কোডের নিম্নলিখিত লাইন যোগ করুন:

    <uses-permission android:name="com.android.vending.BILLING" />

    আপনার AndroidManifest.xml ফাইলটি নিম্নলিখিত কোড ব্লকের মতো হওয়া উচিত:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.mycompany.myapp">
        <uses-permission android:name="com.android.vending.BILLING" />
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme" />
    </manifest>
    
  5. একটি স্বাক্ষরিত APK হিসাবে আপনার অ্যাপ্লিকেশন তৈরি করুন. অ্যান্ড্রয়েড স্টুডিওতে, এই পদক্ষেপগুলি অনুসরণ করুন:

    1. বিল্ড এ যান, সাইনড বান্ডেল/এপিকে জেনারেট করুন
    2. পরবর্তী ক্লিক করুন.
    3. কী স্টোর পাথের অধীনে, নতুন তৈরি করুন ক্লিক করুন।
    4. প্রতিটি ক্ষেত্র পূরণ করুন তারপর ওকে ক্লিক করুন। আপনার কী স্টোরের পাসওয়ার্ড এবং কী পাসওয়ার্ডটি নোট করুন এবং এগুলিকে একটি নিরাপদ জায়গায় সংরক্ষণ করুন, যেহেতু আপনি এইগুলি পরে ব্যবহার করবেন৷
    5. পরবর্তী ক্লিক করুন.
    6. রিলিজ নির্বাচন করুন।
    7. V1 (JAR স্বাক্ষর) নির্বাচন করুন।
    8. শেষ ক্লিক করুন.
    9. কয়েক সেকেন্ড পরে, Android Studio একটি app-release.apk ফাইল তৈরি করে। পরে ব্যবহারের জন্য এই ফাইলটি সনাক্ত করুন.
  6. Google Play কনসোলে , একটি নতুন অ্যাপ্লিকেশন তৈরি করুন৷

  7. অ্যাপ রিলিজে যান।

  8. ক্লোজড ট্র্যাকের অধীনে, ম্যানেজ করুন তারপর আলফা-এ যান।

  9. রিলিজ তৈরি করুন বোতামে ক্লিক করুন।

  10. Google কে আপনার সাইনিং কী পরিচালনা এবং সুরক্ষিত করতে দিন এর অধীনে, আপনার সাইনিং কী তথ্য লিখুন।

  11. আপনার APK ফাইল আপলোড করুন।

  12. সংরক্ষণ করুন ক্লিক করুন.

আপনার ডিজিটাল পণ্য তৈরি করুন

প্লে কনসোলে আপনার কাছে বর্তমানে কোনো ডিজিটাল পণ্য না থাকলে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Google Play কনসোলে , অ্যাপ-মধ্যস্থ পণ্যে যান তারপর পরিচালিত পণ্যগুলিতে যান। যদি আপনি একটি সতর্কতা দেখতে পান, তাহলে একটি Android অ্যাপ তৈরি করতে পূর্ববর্তী নির্দেশাবলী অনুসরণ করুন বা একটি মার্চেন্ট প্রোফাইল তৈরি করতে লিঙ্কটিতে ক্লিক করুন।
  2. ম্যানেজড পণ্য তৈরি করুন ক্লিক করুন।
  3. আপনার ডিজিটাল পণ্যের জন্য ক্ষেত্রগুলি পূরণ করুন। পণ্য আইডি নোট করুন, যেভাবে আপনি আপনার অ্যাকশন থেকে এই পণ্যটিকে উল্লেখ করবেন।
  4. সংরক্ষণ করুন ক্লিক করুন.
  5. আপনি বিক্রি করতে চান প্রতিটি পণ্যের জন্য ধাপ 2-4 পুনরাবৃত্তি করুন।

Google Play কনসোলে অ-ভোগযোগ্য পণ্যের উদাহরণ।

আপনার অ্যাকশন প্রকল্প প্রস্তুত করুন

Google Play কনসোলে সেট আপ করা আপনার ডিজিটাল পণ্যগুলির সাথে, আপনাকে অবশ্যই ডিজিটাল লেনদেন সক্ষম করতে হবে এবং আপনার অ্যাকশন প্রকল্পটিকে আপনার Play অ্যাপের সাথে সংযুক্ত করতে হবে৷

সেটআপ

আপনার অ্যাকশন প্রকল্পে ডিজিটাল পণ্য লেনদেন চালু করতে, এই ধাপগুলি অনুসরণ করুন:

  1. অ্যাকশন কনসোলে , আপনার প্রকল্প খুলুন বা একটি নতুন তৈরি করুন।
  2. Deploy- এ যান তারপর ডিরেক্টরির তথ্য
  3. অতিরিক্ত তথ্য এবং লেনদেনের অধীনে, ডিজিটাল পণ্যের লেনদেন করতে আপনার ক্রিয়াকলাপগুলি ডিজিটাল ক্রয় API ব্যবহার করুন এর অধীনে হ্যাঁ বাক্সে টিক দিন।
  4. সংরক্ষণ করুন ক্লিক করুন.

একটি ডিজিটাল পণ্য API কী তৈরি করুন

ডিজিটাল পণ্য API-এ অনুরোধ পাঠাতে, আপনাকে আপনার অ্যাকশন কনসোল প্রকল্পের সাথে যুক্ত একটি JSON পরিষেবা অ্যাকাউন্ট কী ডাউনলোড করতে হবে।

আপনার পরিষেবা অ্যাকাউন্ট কী পুনরুদ্ধার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যাকশন কনসোলে , উপরের-ডান কোণায় তিনটি বিন্দু আইকনে ক্লিক করুন, তারপরে প্রকল্প সেটিংসে ক্লিক করুন।
  2. আপনার অ্যাকশনের প্রকল্প আইডি খুঁজুন।
  3. এই লিঙ্কটি অনুসরণ করুন, আপনার প্রকল্পের আইডি দিয়ে " <project_id> " প্রতিস্থাপন করুন: https://console.developers.google.com/apis/credentials?project=project_id
  4. প্রধান নেভিগেশনে, শংসাপত্রে যান।
  5. প্রদর্শিত পৃষ্ঠায়, ক্রেডেনশিয়াল তৈরি করুন , তারপর পরিষেবা অ্যাকাউন্ট কী ক্লিক করুন।
  6. সার্ভিস অ্যাকাউন্টে যান এবং নতুন সার্ভিস অ্যাকাউন্টে ক্লিক করুন।
  7. পরিষেবা অ্যাকাউন্টটিকে ডিজিটাল লেনদেনের মতো একটি নাম দিন।
  8. তৈরি করুন ক্লিক করুন।
  9. প্রকল্প > মালিকের ভূমিকা সেট করুন।
  10. অবিরত ক্লিক করুন.
  11. কী তৈরি করুন ক্লিক করুন।
  12. JSON কী প্রকার নির্বাচন করুন।
  13. কী তৈরি করুন ক্লিক করুন এবং JSON পরিষেবা অ্যাকাউন্ট কী ডাউনলোড করুন।

এই পরিষেবা অ্যাকাউন্ট কী একটি নিরাপদ জায়গায় সংরক্ষণ করুন। ডিজিটাল কেনাকাটা API-এর জন্য একটি ক্লায়েন্ট তৈরি করতে আপনি এই কীটি আপনার পূরণে ব্যবহার করবেন।

আপনার প্লে ইনভেন্টরিতে সংযোগ করুন

একটি অ্যাকশন প্রকল্প থেকে আপনার ডিজিটাল পণ্য অ্যাক্সেস করার জন্য, সংযুক্ত বৈশিষ্ট্য হিসাবে আপনার প্রকল্পের সাথে আপনার ওয়েব ডোমেন এবং অ্যাপ যুক্ত করুন৷

আপনার প্লে কনসোল ওয়েব ডোমেন এবং অ্যাপকে আপনার অ্যাকশন প্রকল্পের সাথে সংযুক্ত করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যাকশন কনসোলে , ডিপ্লোয় তারপর ব্র্যান্ড যাচাইকরণে যান।
  2. আপনি যদি কোনো বৈশিষ্ট্য সংযুক্ত না করে থাকেন, তাহলে প্রথমে একটি ওয়েবসাইট সংযুক্ত করুন:

    1. ওয়েব সম্পত্তি ( </> ) বোতামে ক্লিক করুন।
    2. আপনার ওয়েব ডোমেনের URL লিখুন এবং সংযোগ ক্লিক করুন।

    Google অনুসন্ধান কনসোলে সেই ওয়েব ডোমেনের জন্য যাচাই করা ব্যক্তিকে আরও নির্দেশাবলী সহ একটি ইমেল পাঠায়। একবার এই ইমেলের প্রাপক এই পদক্ষেপগুলি অনুসরণ করলে, ওয়েবসাইটটি ব্র্যান্ড যাচাইকরণের অধীনে উপস্থিত হওয়া উচিত।

  3. একবার আপনার অন্তত একটি সংযুক্ত ওয়েবসাইট হয়ে গেলে, আপনার অ্যান্ড্রয়েড অ্যাপ সংযোগ করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

    1. অ্যাকশন কনসোলে , ডিপ্লোয় তারপর ব্র্যান্ড যাচাইকরণে যান।
    2. Connect App এ ক্লিক করুন।
    3. প্রদর্শিত পৃষ্ঠায়, প্লে কনসোলে আপনার ওয়েব ডোমেন যাচাই করতে নির্দেশাবলী অনুসরণ করুন। আপনার ডিজিটাল পণ্য রয়েছে এমন প্লে অ্যাপটি নির্বাচন করুন, এবং ব্র্যান্ড যাচাইকরণ পৃষ্ঠায় দেখানো ওয়েব ডোমেন URLটি ঠিক ঠিকভাবে লিখুন৷

      আবার, Google ডোমেনের যাচাইকৃত মালিককে একটি যাচাইকরণ ইমেল পাঠায়। একবার তারা যাচাইকরণ অনুমোদন করলে, আপনার প্লে অ্যাপটি ব্র্যান্ড যাচাইকরণের অধীনে উপস্থিত হওয়া উচিত।

    4. অ্যাক্সেস প্লে কেনাকাটা সক্ষম করুন৷

অ্যাকশন প্রজেক্টের সাথে সংযুক্ত ওয়েবসাইট এবং অ্যাপ দেখানো ছবি।

আপনার ক্রয় প্রবাহ তৈরি করুন

আপনার অ্যাকশন প্রজেক্ট এবং ডিজিটাল পণ্যের তালিকা প্রস্তুত করে, আপনার কথোপকথন পূরণ ওয়েবহুকে একটি ডিজিটাল পণ্য ক্রয়ের প্রবাহ তৈরি করুন।

1. একটি ডিজিটাল ক্রয় API ক্লায়েন্ট সেট আপ করুন৷

আপনার কথোপকথন পূরণের ওয়েবহুকে, আপনার পরিষেবা অ্যাকাউন্ট JSON কী এবং https://www.googleapis.com/auth/actions.purchases.digital স্কোপ দিয়ে একটি JWT ক্লায়েন্ট তৈরি করুন।

নিম্নলিখিত Node.js কোড ডিজিটাল ক্রয় API এর জন্য একটি JWT ক্লায়েন্ট তৈরি করে:

  const serviceAccount = {'my-file.json'};
  const request = require('request');
  const {google} = require('googleapis');

  const jwtClient = new google.auth.JWT(
    serviceAccount.client_email, null, serviceAccount.private_key,
    ['https://www.googleapis.com/auth/actions.purchases.digital'],
    null
  );

2. তথ্য সংগ্রহ করুন

ব্যবহারকারী কেনাকাটা করার আগে, আপনার অ্যাকশন ব্যবহারকারীর কেনাকাটা করার ক্ষমতা এবং আপনার ইনভেন্টরি থেকে কোন পণ্য পাওয়া যায় সে সম্পর্কে তথ্য সংগ্রহ করে।

2. ক. ডিজিটাল ক্রয়ের প্রয়োজনীয়তা যাচাই করুন

ব্যবহারকারীকে কেনাকাটা করার বিকল্প দেওয়ার আগে ব্যবহারকারীর অ্যাকাউন্ট লেনদেন করার জন্য সেট আপ করা হয়েছে তা নিশ্চিত করা একটি ভাল অভ্যাস। আপনার একটি DigitalPurchaseCheck দৃশ্যে স্থানান্তর করা উচিত, যা পরীক্ষা করে যে ব্যবহারকারী যাচাই করা হয়েছে, তারা একটি অনুমোদিত পৃষ্ঠে (স্মার্ট ডিসপ্লে, স্মার্ট স্পিকার বা অ্যান্ড্রয়েড) লেনদেন সম্পাদন করছে এবং তারা এমন একটি লোকেলে রয়েছে যেখানে ডিজিটাল লেনদেন হয় সমর্থিত

একটি ডিজিটাল ক্রয় চেক দৃশ্য তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. দৃশ্য ট্যাব থেকে, DigitalPurchaseCheck নামের একটি নতুন দৃশ্য যুক্ত করুন।
  2. স্লট ফিলিং এর অধীনে, একটি নতুন স্লট যোগ করতে + এ ক্লিক করুন।
  3. সিলেক্ট টাইপ এর অধীনে, স্লট টাইপ হিসাবে actions.type.DigitalPurchaseCheckResult নির্বাচন করুন।
  4. স্লট নামের ক্ষেত্রে, স্লটটির নাম DigitalPurchaseCheck দিন।
  5. কাস্টমাইজ স্লট মান রাইটব্যাক চেকবক্স সক্ষম করুন (ডিফল্টরূপে সক্ষম)।
  6. সংরক্ষণ করুন ক্লিক করুন.

একটি ডিজিটাল ক্রয় চেক নিম্নলিখিত ফলাফলগুলির মধ্যে একটিতে পরিণত হবে:

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

একটি ডিজিটাল ক্রয় চেক ফলাফল পরিচালনা করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. দৃশ্য ট্যাব থেকে, আপনার নতুন তৈরি DigitalPurchaseCheck দৃশ্য নির্বাচন করুন।
  2. শর্তের অধীনে, একটি নতুন শর্ত যোগ করতে + ক্লিক করুন।
  3. পাঠ্য ক্ষেত্রে, সাফল্যের শর্ত পরীক্ষা করতে নিম্নলিখিত শর্ত সিনট্যাক্স লিখুন:

    scene.slots.status == "FINAL" && session.params.DigitalPurchaseCheck.resultType == "CAN_PURCHASE"
    
  4. আপনি যে শর্তটি যোগ করেছেন তার উপরে আপনার কার্সারটি ঘোরান এবং if scene.slots.status == "FINAL" এর আগে এটি স্থাপন করতে উপরের তীরটিতে ক্লিক করুন।

  5. প্রম্পট পাঠান সক্ষম করুন এবং ব্যবহারকারীকে জানাতে একটি সাধারণ প্রম্পট প্রদান করুন যে তারা একটি লেনদেন করতে প্রস্তুত:

    candidates:
      - first_simple:
          variants:
            - speech: >-
                You are ready to purchase digital goods.
    
  6. ট্রানজিশনের অধীনে অন্য একটি দৃশ্য নির্বাচন করুন, ব্যবহারকারীকে কথোপকথন চালিয়ে যেতে এবং একটি লেনদেন করার সাথে এগিয়ে যাওয়ার অনুমতি দেয়।

  7. else if scene.slots.status == "FINAL"

  8. প্রম্পট পাঠান সক্ষম করুন এবং ব্যবহারকারীকে জানাতে একটি সাধারণ প্রম্পট প্রদান করুন যে তারা একটি লেনদেন করতে অক্ষম:

    candidates:
      - first_simple:
          variants:
            - speech: Sorry you cannot perform a digital purchase.
    
  9. ট্রানজিশনের অধীনে, কথোপকথন শেষ করতে কথোপকথন শেষ করুন নির্বাচন করুন।

2. খ. উপলব্ধ জায় সংগ্রহ করুন

আপনার বর্তমানে উপলব্ধ প্লে স্টোর ইনভেন্টরির অনুরোধ করতে ডিজিটাল ক্রয় API ব্যবহার করুন, তারপর প্রতিটি পণ্যের জন্য JSON অবজেক্টের অ্যারেতে এটি তৈরি করুন। ক্রয়ের জন্য কোন বিকল্পগুলি উপলব্ধ তা ব্যবহারকারীকে দেখানোর জন্য আপনি পরে এই অ্যারেটি উল্লেখ করুন৷

আপনার প্রতিটি ডিজিটাল পণ্য একটি JSON ফর্ম্যাটে SKU হিসাবে উপস্থাপন করা হয়। নিম্নলিখিত Node.js কোড প্রতিটি SKU এর প্রত্যাশিত বিন্যাসের রূপরেখা দেয়:

body = {
  skus: [
    skuId: {
      skuType: one of "SKU_TYPE_IN_APP" or "SKU_TYPE_SUBSCRIPTION"
      id: string,
      packageName: string
    }
    formattedPrice: string,
    title: string,
    description: string
  ]
}

https://actions.googleapis.com/v3/packages/{packageName}/skus:batchGet endpoint-এ একটি POST অনুরোধ পাঠান, যেখানে Google Play Console-এ {packageName} হল আপনার অ্যাপের প্যাকেজের নাম (উদাহরণস্বরূপ, com.myapp.digitalgoods ), এবং ফলাফলটিকে SKU অবজেক্টের অ্যারেতে ফর্ম্যাট করুন।

ফলাফলের অ্যারেতে শুধুমাত্র নির্দিষ্ট ডিজিটাল পণ্যগুলি পুনরুদ্ধার করতে, আপনি body.ids এ কেনার জন্য উপলব্ধ করতে চান এমন ডিজিটাল পণ্যগুলির জন্য পণ্য আইডি তালিকাভুক্ত করুন (Google Play কনসোলে প্রতিটি অ্যাপ-মধ্যস্থ পণ্যের অধীনে দেখানো হয়েছে)।

নিম্নলিখিত Node.js কোড ডিজিটাল ক্রয় API থেকে উপলব্ধ পণ্যগুলির একটি তালিকার অনুরোধ করে এবং ফলাফলটিকে SKU-এর অ্যারে হিসাবে ফর্ম্যাট করে:

return jwtClient.authorize((err, tokens) => {
    if (err) {
      throw new Error(`Auth error: ${err}`);
    }

    const packageName = 'com.example.projectname';

    request.post(`https://actions.googleapis.com/v3/packages/${packageName}/skus:batchGet`, {
      'auth': {
        'bearer': tokens.access_token,
      },
      'json': true,
      'body': {
        'conversationId': conv.session.id,
        'skuType': 'SKU_TYPE_IN_APP',
        // This request is filtered to only retrieve SKUs for the following product IDs
        'ids': ['nonconsumable.1']
      },
    }, (err, httpResponse, body) => {
      if (err) {
        throw new Error(`API request error: ${err}`);
      }
      console.log(`${httpResponse.statusCode}: ${httpResponse.statusMessage}`);
      console.log(JSON.stringify(body));
    });
  });
});

3. অর্ডার তৈরি করুন

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

নিম্নলিখিত Node.js কোডটি SKU অবজেক্টের একটি ইনভেন্টরি অ্যারে পড়ে এবং প্রতিটির জন্য একটি তালিকা আইটেম সহ একটি তালিকা প্রতিক্রিয়া তৈরি করে:

const items = [];
const entries = [];
skus.forEach((sku) => {
   const key = `${sku.skuId.skuType},${sku.skuId.id}`
   items.push({
       key: key
   });
   entries.push({
       name: key,
       synonyms: [],
       display: {
           title: sku.title,
           description: `${sku.description} | ${sku.formattedPrice}`,
       }
   });
});

conv.session.typeOverrides = [{
   name: 'type_name',
   mode: 'TYPE_REPLACE',
   synonym: {
       entries: entries
   }
}];

conv.add(new List({
   title: 'List title',
   subtitle: 'List subtitle',
   items: items,
}));

ব্যবহারকারী নির্বাচন থেকে ক্রয় তৈরি করুন

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

conv.session.params.purchase = {
  "@type": "type.googleapis.com/google.actions.transactions.v3.CompletePurchaseValueSpec",
  "skuId": {
    "skuType": "<SKU_TYPE_IN_APP>",
    "id": "<SKU_ID>",
    "packageName": "<PACKAGE_NAME>"
  },
  "developerPayload": ""
};

অ্যাকশন বিল্ডারে, আপনি পরিবর্তে উপরের অর্ডার অবজেক্টের সাথে স্লট কনফিগার করতে JSON সম্পাদক ব্যবহার করতে পারেন। উভয় বাস্তবায়ন CompletePurchaseValueSpec এর জন্য একই বিন্যাস ব্যবহার করে, যা আপনি JSON ওয়েবহুক পেলোড রেফারেন্সে খুঁজে পেতে পারেন।

4. ক্রয় সম্পূর্ণ করুন

একবার ব্যবহারকারী একটি আইটেম নির্বাচন করলে আপনি ক্রয় সম্পূর্ণ করতে পারেন। একবার আপনি নির্বাচিত আইটেমের সাথে যুক্ত স্লটটি পূরণ করলে, আপনার একটি দৃশ্যে স্থানান্তর করা উচিত যা একটি সম্পূর্ণ ক্রয় সম্পাদন করে।

সম্পূর্ণ ক্রয় দৃশ্য তৈরি করুন

  1. দৃশ্য ট্যাব থেকে, CompletePurchase নামের একটি নতুন দৃশ্য যোগ করুন।
  2. স্লট ফিলিং এর অধীনে, একটি নতুন স্লট যোগ করতে + এ ক্লিক করুন।
  3. সিলেক্ট টাইপ এর অধীনে, স্লট টাইপ হিসাবে actions.type.CompletePurchaseValue নির্বাচন করুন।
  4. স্লট নামের ক্ষেত্রে, স্লটটির নাম দিন CompletePurchase .
  5. কাস্টমাইজ স্লট মান রাইটব্যাক চেকবক্স সক্ষম করুন (ডিফল্টরূপে সক্ষম)।
  6. কনফিগার স্লটের অধীনে, ড্রপডাউন থেকে Use session parameter নির্বাচন করুন।
  7. কনফিগার স্লটের অধীনে, টেক্সট ফিল্ডে অর্ডার সংরক্ষণ করতে ব্যবহৃত সেশন প্যারামিটারের নাম লিখুন (যেমন $session.params.purchase )।
  8. সংরক্ষণ করুন ক্লিক করুন.

5. ফলাফল হ্যান্ডেল

actions.type.CompletePurchaseValue টাইপ সহ একটি স্লটে নিম্নলিখিত ফলাফল থাকতে পারে:

  • PURCHASE_STATUS_OK : ক্রয় সফল হয়েছে৷ এই সময়ে লেনদেন সম্পূর্ণ হয়েছে, তাই লেনদেন প্রবাহ থেকে প্রস্থান করুন এবং আপনার কথোপকথনে ফিরে যান।
  • PURCHASE_STATUS_ALREADY_OWNED : লেনদেন ব্যর্থ হয়েছে কারণ ব্যবহারকারী ইতিমধ্যেই সেই আইটেমের মালিক৷ ব্যবহারকারীর আগের কেনাকাটা চেক করে এবং দেখানো আইটেমগুলিকে সাজিয়ে এই ত্রুটিটি এড়িয়ে চলুন যাতে তাদের কাছে ইতিমধ্যেই থাকা আইটেমগুলি পুনরায় কেনার বিকল্প না থাকে৷
  • PURCHASE_STATUS_ITEM_UNAVAILABLE : লেনদেন ব্যর্থ হয়েছে কারণ অনুরোধ করা আইটেমটি উপলব্ধ নয়৷ কেনার সময় কাছাকাছি উপলব্ধ SKU চেক করে এই ত্রুটি এড়িয়ে চলুন.
  • PURCHASE_STATUS_ITEM_CHANGE_REQUESTED : লেনদেন ব্যর্থ হয়েছে কারণ ব্যবহারকারী অন্য কিছু কেনার সিদ্ধান্ত নিয়েছে৷ আপনার অর্ডার বিল্ডিংয়ের সাথে পুনরায় অনুরোধ করুন যাতে ব্যবহারকারী এখনই অন্য সিদ্ধান্ত নিতে পারে।
  • PURCHASE_STATUS_USER_CANCELLED : লেনদেন ব্যর্থ হয়েছে কারণ ব্যবহারকারী ক্রয় প্রবাহ বাতিল করেছে৷ যেহেতু ব্যবহারকারী সময়ের আগেই প্রবাহ থেকে প্রস্থান করেছে, ব্যবহারকারীকে জিজ্ঞাসা করুন যে তারা লেনদেনের পুনরায় চেষ্টা করতে চান বা সম্পূর্ণভাবে লেনদেন থেকে বেরিয়ে যেতে চান কিনা।
  • PURCHASE_STATUS_ERROR : একটি অজানা কারণে লেনদেন ব্যর্থ হয়েছে৷ ব্যবহারকারীকে জানাতে দিন যে লেনদেন ব্যর্থ হয়েছে এবং তারা আবার চেষ্টা করতে চান কিনা তা জিজ্ঞাসা করুন।
  • PURCHASE_STATUS_UNSPECIFIED : একটি অজানা কারণে লেনদেন ব্যর্থ হয়েছে, যার ফলে একটি অজানা স্থিতি। ব্যবহারকারীকে লেনদেন ব্যর্থ হয়েছে তা জানিয়ে এই ত্রুটির স্থিতিটি পরিচালনা করুন এবং তারা আবার চেষ্টা করতে চান কিনা তা জিজ্ঞাসা করুন৷

আপনার CompletePurchase দৃশ্য থেকে এই ফলাফলগুলির প্রতিটি পরিচালনা করা উচিত।

  1. দৃশ্য ট্যাব থেকে, আপনার নতুন তৈরি CompletePurchase দৃশ্য নির্বাচন করুন।
  2. শর্তের অধীনে, একটি নতুন শর্ত যোগ করতে + ক্লিক করুন।
  3. পাঠ্য ক্ষেত্রে, সাফল্যের শর্ত পরীক্ষা করতে নিম্নলিখিত শর্ত সিনট্যাক্স লিখুন:

    scene.slots.status == "FINAL" && session.params.CompletePurchase.purchaseStatus == "PURCHASE_STATUS_OK"
    
  4. আপনি যে শর্তটি যোগ করেছেন তার উপরে আপনার কার্সারটি ঘোরান এবং if scene.slots.status == "FINAL" এর আগে এটি স্থাপন করতে উপরের তীরটিতে ক্লিক করুন।

  5. প্রম্পট পাঠান সক্ষম করুন এবং ব্যবহারকারীকে জানাতে একটি সাধারণ প্রম্পট প্রদান করুন যে তারা একটি লেনদেন করতে প্রস্তুত:

    candidates:
      - first_simple:
          variants:
            - speech: >-
                Your purchase was successful.
    
  6. ট্রানজিশনের অধীনে কথোপকথন শেষ করতে কথোপকথন শেষ করুন নির্বাচন করুন।

আপনি সমর্থন করতে চান প্রতিটি ধরনের ক্রয়ের ফলাফলের জন্য উপরের ধাপগুলি পুনরাবৃত্তি করুন।

ব্যবহারকারীর ক্রয় প্রতিফলিত করুন

যখন একজন ব্যবহারকারী আপনার অ্যাকশন সম্পর্কে প্রশ্ন করে, তখন JSON-এর user বস্তুর অনুরোধে তাদের কেনাকাটার একটি তালিকা অন্তর্ভুক্ত থাকে। এই তথ্যটি পরীক্ষা করুন এবং ব্যবহারকারী কোন সামগ্রীর জন্য অর্থ প্রদান করেছেন তার উপর ভিত্তি করে আপনার অ্যাকশনের প্রতিক্রিয়া পরিবর্তন করুন৷

নিম্নলিখিত নমুনা কোডটি একটি অনুরোধের user অবজেক্ট দেখায় যা com.digitalgoods.application প্যাকেজের জন্য পূর্ববর্তী অ্যাপ-মধ্যস্থ কেনাকাটার packageEntitlements অন্তর্ভুক্ত করে:

{
  "handler": {
    "name": "handler_name"
  },
  "intent": {
    "name": "actions.intent.MAIN",
    "params": {},
    "query": ""
  },
  "scene": {
    "name": "SceneName",
    "slotFillingStatus": "UNSPECIFIED",
    "slots": {}
  },
  "session": {
    "id": "example_session_id",
    "params": {},
    "typeOverrides": []
  },
  "user": {
    "locale": "en-US",
    "params": {
      "verificationStatus": "VERIFIED"
      "packageEntitlements": [
        {
          "packageName": "com.digitalgoods.application",
          "entitlements": [
            {
              "sku": "non-consumable.1",
              "skuType": "SKU_TYPE_IN_APP"
            }
            {
              "sku": "consumable.2",
              "skuType": "SKU_TYPE_IN_APP"
            }
          ]
        },
        {
          "packageName": "com.digitalgoods.application",
          "entitlements": [
            {
              "sku": "annual.subscription",
              "skuType": "SKU_TYPE_SUBSCRIPTION",
              "inAppDetails": {
                "inAppPurchaseData": {
                  "autoRenewing": true,
                  "purchaseState": 0,
                  "productId": "annual.subscription",
                  "purchaseToken": "12345",
                  "developerPayload": "HSUSER_IW82",
                  "packageName": "com.digitalgoods.application",
                  "orderId": "GPA.233.2.32.3300783",
                  "purchaseTime": 1517385876421
                },
                "inAppDataSignature": "V+Q=="
              }
            }
          ]
        }
      ]
     }
   },
  "homeStructure": {
    "params": {}
  },
  "device": {
    "capabilities": [
      "SPEECH",
      "RICH_RESPONSE",
      "LONG_FORM_AUDIO"
    ]
  }
}

আপনার প্রকল্প পরীক্ষা করুন

আপনার প্রকল্পের পরীক্ষা করার সময়, আপনি অর্থপ্রদানের পদ্ধতি চার্জ না করে আপনার অ্যাকশন পরীক্ষা করতে অ্যাকশন কনসোলে স্যান্ডবক্স মোড সক্ষম করতে পারেন। স্যান্ডবক্স মোড সক্ষম করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যাকশন কনসোলে, নেভিগেশনে টেস্টে ক্লিক করুন।
  2. সেটিংস এ ক্লিক করুন।
  3. ডেভেলপমেন্ট স্যান্ডবক্স বিকল্পটি সক্রিয় করুন।