इस्तेमाल करने लायक डिजिटल लेन-देन बनाएं

इस गाइड में, बातचीत वाली सुविधा में डिजिटल लेन-देन जोड़ने का तरीका बताया गया है कार्रवाई, ताकि उपयोगकर्ता आपके इस्तेमाल के लायक डिजिटल प्रॉडक्ट खरीद सकें.

मुख्य शब्द: इस्तेमाल किया जा सकने वाला डिजिटल प्रॉडक्ट, स्टॉक कीपिंग यूनिट (एसकेयू) होता है जो जब कोई उपयोगकर्ता एक से ज़्यादा बार उसे इस्तेमाल करके खरीद सकता है, जैसे कि वीडियो गेम में इस्तेमाल की जाने वाली वर्चुअल मुद्रा कितनी है Android गेम के लिए. यह डिजिटल प्रॉडक्ट, इस्तेमाल न किए जा सकने वाले प्रॉडक्ट से अलग है एक डिजिटल प्रॉडक्ट है, जिसे उपयोगकर्ता सिर्फ़ एक बार खरीद सकता है.

इस्तेमाल किए जा सकने वाले वन-टाइम प्रॉडक्ट के बारे में ज़्यादा जानकारी के लिए, Android पर दस्तावेज़ एक बार इस्तेमाल किए जा सकने वाले प्रॉडक्ट की खास सुविधाएं.

ट्रांज़ैक्शन फ़्लो

इस गाइड में, डेवलपमेंट के हर चरण के बारे में बताया गया है, जो डिजिटल प्रॉडक्ट के लिए होता है ट्रांज़ैक्शन फ़्लो. जब आपकी सेट की गई कार्रवाई, डिजिटल प्रॉडक्ट के लिए लेन-देन मैनेज करती है, तो इस फ़्लो का इस्तेमाल करता है:

  1. डिजिटल खरीदारी एपीआई क्लाइंट सेट अप करना: आपकी कार्रवाई, डिजिटल खरीदारी एपीआई क्लाइंट का इस्तेमाल करती है आपकी Google Play इन्वेंट्री से संपर्क करने और लेन-देन के लिए, एपीआई की खरीदारी करता है. इससे पहले कि आपकी सेट की गई कार्रवाई कुछ और करे, यह डिजिटल खरीदारी एपीआई के साथ संपर्क करने के लिए सेवा कुंजी.
  2. जानकारी इकट्ठा करना: आपकी सेट की गई कार्रवाई और आपकी Google Play इन्वेंट्री को किसी लेन-देन के लिए तैयार करना होगा.
    1. लेन-देन की ज़रूरी शर्तों की पुष्टि करना: आपकी सेट की गई कार्रवाई में डिजिटल लेन-देन से जुड़ी ज़रूरी शर्तों को पूरा करने में मदद मिलती है. पक्का करें कि उपयोगकर्ता लेन-देन कर सकता है.
    2. उपलब्ध इन्वेंट्री इकट्ठा करें: आपकी सेट की गई कार्रवाई के लिए, Google Play पर मौजूद कॉन्टेंट की जांच की जाती है और यह पहचान की जाती है कि अभी कौनसे आइटम खरीदारी के लिए उपलब्ध हैं.
  3. ऑर्डर बनाएं: आपकी सेट की गई कार्रवाई में उपलब्ध डिजिटल प्रॉडक्ट, ताकि वे खरीदने के लिए कोई एक विकल्प चुन सकें.
  4. खरीदारी पूरी करना: आपकी सेट की गई कार्रवाई, डिजिटल खरीदारी एपीआई का इस्तेमाल इन कामों के लिए करती है Google Play Store से उपयोगकर्ता के चुने हुए विकल्प के साथ खरीदारी शुरू करना.
  5. नतीजे मैनेज करें: आपकी सेट की गई कार्रवाई को ट्रांज़ैक्शन करता है और उपयोगकर्ता को खरीदारी के पूरा होने की सूचना देता है (या अतिरिक्त चरण शामिल हैं).
  6. खरीदारी को बार-बार होने वाला बनाना: आपकी सेट की गई कार्रवाई में डिजिटल खरीदारी का इस्तेमाल किया जाता है "इस्तेमाल" के लिए एपीआई खरीदा गया आइटम, जिससे वह आइटम खरीदारी के लिए उपलब्ध हो उस उपयोगकर्ता ने फिर से साइन इन किया है.

पाबंदियां और समीक्षा के दिशा-निर्देश

अन्य नीतियां, लेन-देन वाली कार्रवाइयों पर लागू होती हैं. इसमें हमें थोड़ा समय लग सकता है वाले कुछ हफ़्तों में, लेन-देन वाली कार्रवाइयों की समीक्षा के लिए हफ़्ते भर दें. कॉन्टेंट रिलीज़ करने के शेड्यूल का प्लान बना रहा है. समीक्षा की प्रक्रिया को आसान बनाने के लिए, पक्का करें कि आपने नीतियों का पालन किया है के साथ लेन-देन से जुड़ी नीतियां और दिशा-निर्देश अपनी कार्रवाई को समीक्षा के लिए सबमिट करने से पहले.

डिजिटल प्रॉडक्ट बेचने वाली कार्रवाइयां, सिर्फ़ इन देशों में डिप्लॉय की जा सकती हैं:

  • ऑस्ट्रेलिया
  • ब्राज़ील
  • कनाडा
  • इंडोनेशिया
  • जापान
  • मेक्सिको
  • रूस
  • सिंगापुर
  • थाईलैंड
  • तुर्किये
  • यूनाइटेड किंगडम
  • अमेरिका

ज़रूरी शर्तें

अपने Action में डिजिटल लेन-देन शामिल करने से पहले, आपको इन शर्तों को पूरा करना ज़रूरी है:

  • ऐप्लिकेशन डेवलपर खाता और एक कारोबारी खाता आपके डिजिटल प्रॉडक्ट को मैनेज करने के लिए, Google Play Console.

  • ऐसा वेब डोमेन जो की पुष्टि करें. इस डोमेन को सार्वजनिक तौर पर लॉन्च की गई किसी वेब साइट से जोड़ने की ज़रूरत नहीं है. हमें बस आपके वेब डोमेन का रेफ़रंस चाहिए.

  • ऐसा Android ऐप्लिकेशन जिसमें com.android.vending.BILLING हो अनुमति सभी ऐप्लिकेशन डाउनलोड करें. आपकी डिजिटल चीज़ें “इन-ऐप्लिकेशन खरीदारी” होंगी जो Google Play Console में इस ऐप्लिकेशन से जुड़ा है.

    आपको इस ऐप्लिकेशन का इस्तेमाल करके, Play Console में भी एक रिलीज़ बनानी होगी. हालांकि, अगर आपको रिलीज़ को सार्वजनिक नहीं करना है, तो क्लोज़्ड ऐल्फ़ा वर्शन रिलीज़ के लिए है.

    अगर आपके पास पहले से कोई Android ऐप्लिकेशन नहीं है, तो Android ऐप्लिकेशन के लिए निर्देश जोड़ें.

  • इसमें एक या एक से ज़्यादा प्रबंधित प्रॉडक्ट मौजूद हैं Google Play Console, आपकी सेट की गई कार्रवाई की मदद से, ये डिजिटल प्रॉडक्ट बेचे जाते हैं. ध्यान दें कि Play Console में मैनेज किए जा रहे प्रॉडक्ट तब तक नहीं बनाए जा सकते, जब तक कि Android ऐप्लिकेशन के लिए ज़रूरी.

    अगर आपके पास पहले से मैनेज किए जा रहे प्रॉडक्ट नहीं हैं, तो इन निर्देशों का पालन करें अपने डिजिटल सामान बनाने के लिए निर्देश.

Android ऐप्लिकेशन असोसिएट करें

अगर इस समय आपके पास ऐसा Android ऐप्लिकेशन नहीं है जिसमें बिलिंग की अनुमति Google Play Console के लिए, यह तरीका अपनाएं:

  1. Android Studio में या अपनी पसंद के Android IDE के लिए, नया प्रोजेक्ट बनाएं. इसमें विकल्प चुनें प्रोजेक्ट सेटअप करने पर एक बहुत ही बेसिक ऐप्लिकेशन बनाने के लिए कहा जाता है.
  2. प्रोजेक्ट को पैकेज का नाम दें, जैसे कि com.mycompany.myapp. इस नाम को डिफ़ॉल्ट नाम न रखें, क्योंकि आप ऐसे पैकेज अपलोड नहीं कर सकते Play Console में 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 के तौर पर अपना ऐप्लिकेशन बनाएं. Android Studio में, यह तरीका अपनाएं:

    1. बिल्ड, हस्ताक्षर किया गया बंडल / APK जनरेट करें पर जाएं.
    2. आगे बढ़ें पर क्लिक करें.
    3. की स्टोर पाथ में, नया बनाएं पर क्लिक करें.
    4. हर फ़ील्ड को भरें. इसके बाद, ठीक है पर क्लिक करें. की स्टोर की जानकारी का ध्यान रखें पासवर्ड और कुंजी पासवर्ड को सुरक्षित तरीके से सेव करता है, और इन्हें सुरक्षित जगह पर सेव करता है, क्योंकि आप इनका इस्तेमाल बाद में कर पाएंगे.
    5. आगे बढ़ें पर क्लिक करें.
    6. रिलीज़ चुनें.
    7. V1 (JAR हस्ताक्षर) को चुनें.
    8. पूरा करें पर क्लिक करें.
    9. कुछ सेकंड के बाद, Android Studio एक app-release.apk फ़ाइल जनरेट करता है. बाद में इस्तेमाल करने के लिए, इस फ़ाइल को ढूंढें.
  6. इस Google Play Console, नया ऐप्लिकेशन बनाएं.

  7. ऐप्लिकेशन रिलीज़ पर जाएं.

  8. बंद ट्रैक में, मैनेज करें पर जाएं. इसके बाद, ऐल्फ़ा पर जाएं.

  9. रिलीज़ बनाएं बटन पर क्लिक करें.

  10. Google को अपने साइनिंग पासकोड को मैनेज और सुरक्षित करने दें में जाकर, अपने साइनिंग पासकोड डालें ज़रूरी जानकारी.

  11. अपनी APK फ़ाइल अपलोड करें.

  12. सेव करें पर क्लिक करें.

अपना डिजिटल सामान बनाएं

अगर फ़िलहाल आपके पास Play Console में कोई डिजिटल प्रॉडक्ट नहीं है, तो इन निर्देशों का पालन करें चरण:

  1. इस Google Play Console, ऐप्लिकेशन में खरीदे जा सकने वाले प्रॉडक्ट पर जाएं. इसके बाद, मैनेज किए जा रहे प्रॉडक्ट पर जाएं. अगर आपको कोई चेतावनी दिखती है, Android ऐप्लिकेशन बनाने के लिए पिछले निर्देशों का पालन करें या लिंक पर क्लिक करें व्यापारी प्रोफ़ाइल बनाने के लिए.
  2. मैनेज किया जा रहा प्रॉडक्ट बनाएं पर क्लिक करें.
  3. अपने डिजिटल प्रॉडक्ट के लिए फ़ील्ड भरें. प्रॉडक्ट आईडी पर ध्यान दें, इस प्रॉडक्ट का रेफ़रंस, आपकी सेट की गई कार्रवाई से मिलेगा.
  4. सेव करें पर क्लिक करें.
  5. जिस प्रॉडक्ट को बेचना है उसके लिए, दूसरे से लेकर चौथे चरण तक की प्रोसेस दोहराएं.

Google Play Console में, इस्तेमाल किए जा सकने वाले सामान का उदाहरण.

अपना Actions प्रोजेक्ट तैयार करना

Google Play कंसोल में अपना डिजिटल प्रॉडक्ट सेट अप करके, आपको और अपने Actions प्रोजेक्ट को अपने Play ऐप्लिकेशन से जोड़ें.

सेटअप

अपने Actions प्रोजेक्ट में डिजिटल प्रॉडक्ट का लेन-देन चालू करने के लिए, इन निर्देशों का पालन करें चरण:

  1. कार्रवाइयां कंसोल में, अपना प्रोजेक्ट खोलें या कोई नया प्रोजेक्ट बनाएं.
  2. डिप्लॉय करें पर जाएं, फिर डायरेक्ट्री की जानकारी पर जाएं.
  3. ज़्यादा जानकारी और लेन-देन सेक्शन में जाकर, हां वाले बॉक्स पर सही का निशान लगाएं क्या आपकी कार्रवाइयां, लेन-देन करने के लिए Digital Purchase API का इस्तेमाल करती हैं साथ ही, डिजिटल प्रॉडक्ट के मामले में भी ऐसा ही किया जा सकता है.
  4. सेव करें पर क्लिक करें.

डिजिटल प्रॉडक्ट के लिए एपीआई पासकोड बनाना

डिजिटल प्रॉडक्ट एपीआई को अनुरोध भेजने के लिए, आपको JSON सेवा डाउनलोड करनी होगी खाता कुंजी जुड़ी होनी चाहिए.

अपने सेवा खाते की कुंजी वापस पाने के लिए, यह तरीका अपनाएं:

  1. कार्रवाइयां कंसोल में, सबसे ऊपर दाएं कोने में तीन बिंदु वाले आइकॉन पर क्लिक करें, इसके बाद, प्रोजेक्ट सेटिंग पर क्लिक करें.
  2. अपने Action का प्रोजेक्ट आईडी ढूंढें.
  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 सेवा खाते की कुंजी डाउनलोड करें.

इस सेवा खाता कुंजी को किसी सुरक्षित जगह पर सेव करें. आप इस डिजिटल बटन का इस्तेमाल अपने ऑर्डर पूरा करने के लिए, डिजिटल खरीदारी एपीआई के लिए क्लाइंट बनाना.

अपनी Play इन्वेंट्री से कनेक्ट करना

किसी Actions प्रोजेक्ट से अपने डिजिटल प्रॉडक्ट को ऐक्सेस करने के लिए, अपने वेब डोमेन और ऐप्लिकेशन कनेक्ट की गई प्रॉपर्टी के तौर पर फ़्लैग करती है.

अपने Play Console वेब डोमेन और ऐप्लिकेशन को अपने Actions प्रोजेक्ट से कनेक्ट करने के लिए, यह तरीका अपनाएं यह तरीका अपनाएं:

  1. कार्रवाइयां कंसोल में, Deploy पर जाएं. इसके बाद, ब्रैंड की पुष्टि करना पर जाएं.
  2. अगर आपने कोई प्रॉपर्टी कनेक्ट नहीं की है, तो पहले कोई वेबसाइट कनेक्ट करें:

    1. वेब प्रॉपर्टी (&lt;/&gt;) बटन पर क्लिक करें.
    2. अपने वेब डोमेन का यूआरएल डालें और कनेक्ट करें पर क्लिक करें.

    Google उस व्यक्ति को अतिरिक्त निर्देशों के साथ एक ईमेल भेजता है में उस वेब डोमेन की पुष्टि करता है, Google Search Console. जब यह ईमेल पाने वाला व्यक्ति इन चरणों का पालन कर लेगा, तब वेबसाइट ब्रैंड की पुष्टि वाले सेक्शन में दिखते हैं.

  3. कम से कम एक वेबसाइट कनेक्ट होने के बाद, यह तरीका अपनाएं अपना Android ऐप्लिकेशन कनेक्ट करें:

    1. कार्रवाइयां कंसोल में, Deploy पर जाएं. इसके बाद, ब्रैंड की पुष्टि करना पर जाएं.
    2. ऐप्लिकेशन कनेक्ट करें पर क्लिक करें.
    3. इसके बाद, जो पेज दिखेगा उस पर दिए गए निर्देशों का पालन करके वेब की पुष्टि करें Play Console पर नए डोमेन के साथ काम करता है. वह Play ऐप्लिकेशन चुनें जिसमें और वेब डोमेन का यूआरएल ठीक वैसा ही डालें जैसा कि ब्रैंड की पुष्टि करने वाला पेज.

      एक बार फिर से, Google इसके सत्यापित स्वामी को एक सत्यापन ईमेल भेजता है डोमेन. जब वे पुष्टि करने की मंज़ूरी दे देंगे, तब आपके Play ऐप्लिकेशन को ब्रैंड की पुष्टि वाले सेक्शन में दिखते हैं.

    4. Play से की जाने वाली खरीदारी का ऐक्सेस चालू करें.

इमेज में, Actions प्रोजेक्ट से जुड़ी वेबसाइट और ऐप्लिकेशन दिखाए गए हैं.

अपना परचेज़ फ़्लो बनाएं

अपने Actions प्रोजेक्ट और डिजिटल प्रॉडक्ट की इन्वेंट्री तैयार करके, एक डिजिटल आपकी बातचीत वाले वेबहुक में, सामान की खरीदारी के फ़्लो में.

1. डिजिटल खरीदारी एपीआई क्लाइंट सेट अप करना

बातचीत पूरी करने के लिए इस्तेमाल किए जाने वाले वेबहुक में, अपनी सेवा की मदद से JWT क्लाइंट बनाएं खाते की JSON कुंजी और https://www.googleapis.com/auth/actions.purchases.digital दायरा.

यहां दिया गया Node.js कोड, डिजिटल खरीदारी एपीआई के लिए 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 सीन पर ले जाया जाएगा. इससे यह पता चलेगा कि व्यक्ति की पहचान की पुष्टि हुई है या नहीं, कि वे लेन-देन किसी ऐसे प्लैटफ़ॉर्म (स्मार्ट डिसप्ले, या Android के लिए उपलब्ध हो. साथ ही, यह भी कि वे ऐसी जगह पर हों जहां डिजिटल लेन-देन किए जा सकते हैं.

डिजिटल खरीदारी की जांच वाला सीन बनाने के लिए, यह तरीका अपनाएं:

  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. बी. उपलब्ध इन्वेंट्री इकट्ठा करें

'Play Store' पर मौजूदा समय में उपलब्ध अपने स्टोर का अनुरोध करने के लिए, डिजिटल खरीदारी एपीआई का इस्तेमाल करना इन्वेंट्री की तरह बनाया जा सकता है. इसके बाद, उसे हर प्रॉडक्ट के लिए 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 अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एंडपॉइंट, जहां Google Play में {packageName} आपके ऐप्लिकेशन के पैकेज का नाम है कंसोल (उदाहरण के लिए, com.myapp.digitalgoods) को एक्सपोर्ट कर सकता है और नतीजे को SKU ऑब्जेक्ट का कलेक्शन.

नतीजे के क्रम में सिर्फ़ खास डिजिटल प्रॉडक्ट को पाने के लिए, प्रॉडक्ट को लिस्ट करें डिजिटल प्रॉडक्ट के आईडी (जैसा कि Google Play में हर इन-ऐप्लिकेशन प्रॉडक्ट के नीचे दिखाया गया है) कंसोल) से कनेक्ट करें, जिसे आपको body.ids में खरीदारी के लिए उपलब्ध कराना है.

नीचे दिया गया Node.js कोड, उपलब्ध सामान की सूची के लिए डिजिटल प्लैटफ़ॉर्म से अनुरोध करता है एपीआई खरीदता है और 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': ['consumable.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": ""
};

इसके बजाय, Actions Builder में स्लॉट को कॉन्फ़िगर करने के लिए 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. बातचीत खत्म करने के लिए, ट्रांज़िशन में बातचीत खत्म करें को चुनें.

खरीदारी के जिस तरह के नतीजे दिखाने हैं उनके लिए ऊपर दिया गया तरीका दोहराएं.

6. खरीदारी को दोहराने लायक बनाएं

लेन-देन पूरा होने के बाद, डिजिटल खरीदारी के लिए पोस्ट का अनुरोध भेजें एपीआई, जिससे उपयोगकर्ता आइटम को फिर से खरीद सके. अपने https://actions.googleapis.com/v3/conversations/{sessionId}/entitlement:consume को अनुरोध सेशन के आईडी वाला एंडपॉइंट, जो session.id में मिला है.

आपके पोस्ट अनुरोध में खरीदारी टोकन ऑब्जेक्ट भी शामिल होना चाहिए उपयोगकर्ता की खरीदारी, जो कि packageEntitlements.entitlements.inAppDetails.inAppPurchaseData.purchaseToken.

यह कोड, डिजिटल खरीदारी एपीआई को consume अनुरोध भेजता है और यह रिपोर्ट करेगा कि वह अनुरोध सफल रहा या नहीं:

request.post(`https://actions.googleapis.com/v3/conversations/${conv.session.id}/entitlement:consume`, {
  'auth': {
    'bearer': tokens.access_token,
  },
  'json': true,
  'body': {
  // This purchase token is in both the purchase event and the user's entitlements
  // in their request JSON
    "purchaseToken": entitlement.purchaseToken
  },
  }, (err, httpResponse, body) => {
    if (err) {
     throw new Error(`API request error: ${err}`);
    }
  console.log(`${httpResponse.statusCode}: ${httpResponse.statusMessage}`);
  console.log(JSON.stringify(httpResponse));
  console.log(JSON.stringify(body));
  resolve(body);
});

// Make sure the consume request was successful. In production, don't notify the user; handle failures on the back end
return consumePromise.then(body => {
  const consumed = Object.keys(body).length === 0;
  if (consumed) {
    conv.add(`You successfully consumed ${id}`);
  } else {
    conv.add(`Failed to consume: ${id}`);
  }
});

उपयोगकर्ता की खरीदारी दिखाना

जब कोई उपयोगकर्ता आपकी कार्रवाई पर क्वेरी करता है, तो अनुरोध JSON के user ऑब्जेक्ट में एक और अपनी खरीदारी की सूची बनाओ. इस जानकारी की जाँच करें और अपनी Action की उपयोगकर्ता ने किस कॉन्टेंट के लिए पैसे चुकाए हैं.

यह सैंपल कोड, अनुरोध का user ऑब्जेक्ट दिखाता है, जिसमें यह शामिल होता है इसके लिए की गई पिछली इन-ऐप्लिकेशन खरीदारी का packageEntitlements com.digitalgoods.application पैकेज:

{
  "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"
    ]
  }
}

अपने प्रोजेक्ट की जांच करना

अपने प्रोजेक्ट की जांच करते समय, Actions कंसोल में सैंडबॉक्स मोड चालू किया जा सकता है बिना किसी शुल्क के सेट की गई कार्रवाई की जांच करें. सैंडबॉक्स मोड को चालू करने के लिए, यह तरीका अपनाएं:

  1. Actions कंसोल में, नेविगेशन में जांच करें पर क्लिक करें.
  2. सेटिंग पर क्लिक करें.
  3. डेवलपमेंट सैंडबॉक्स विकल्प को चालू करें.