Conversational Actions will be deprecated on June 13, 2023. For more information, see Conversational Actions sunset.

Membuat transaksi digital yang tidak dapat dikonsumsi

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Panduan ini menjelaskan cara menambahkan transaksi digital ke Action Percakapan, sehingga pengguna dapat membeli produk digital Anda yang tidak dapat dikonsumsi.

Istilah utama: Barang digital yang tidak dapat dikonsumsi adalah unit penyimpanan stok (SKU) yang hanya dapat dibeli satu kali, seperti akses berbayar ke konten tambahan dalam aplikasi Action atau Android. Jenis produk ini berbeda dengan barang digital yang dapat dikonsumsi yang dapat dibeli, digunakan, dan dibeli kembali.

Untuk informasi selengkapnya tentang produk sekali beli yang tidak dapat dikonsumsi, lihat dokumentasi Android tentang fitur khusus produk sekali beli.

Alur transaksi

Panduan ini menguraikan setiap langkah pengembangan saat terjadi dalam alur transaksi produk digital. Saat menangani transaksi produk digital, Action Anda akan menggunakan alur berikut:

  1. Siapkan klien API pembelian digital: Action Anda menggunakan API pembelian digital untuk berkomunikasi dengan inventaris Google Play dan bertransaksi. Sebelum Action Anda melakukan hal lainnya, tindakan ini akan membuat klien JWT dengan kunci layanan untuk berkomunikasi dengan API pembelian digital.
  2. Mengumpulkan informasi: Action Anda mengumpulkan informasi dasar tentang pengguna dan inventaris Google Play Anda untuk mempersiapkan transaksi.
    1. Validasi persyaratan transaksi: Action Anda menggunakan helper persyaratan transaksi digital di awal alur pembelian untuk memastikan pengguna dapat bertransaksi.
    2. Mengumpulkan inventaris yang tersedia: Tindakan Anda akan memeriksa inventaris Google Play Anda dan mengidentifikasi item yang saat ini tersedia untuk dibeli.
  3. Buat pesanan: Action Anda menyajikan produk digital yang tersedia untuk pengguna sehingga mereka dapat memilih item yang akan dibeli.
  4. Selesaikan pembelian: Action Anda menggunakan API pembelian digital untuk memulai pembelian dengan pilihan pengguna ke Google Play Store.
  5. Menangani hasilnya: Action Anda menerima kode status untuk transaksi dan memberi tahu pengguna bahwa pembelian berhasil (atau memerlukan langkah tambahan).

Panduan pembatasan dan peninjauan

Kebijakan tambahan berlaku untuk Actions dengan transaksi. Kami memerlukan waktu beberapa minggu untuk meninjau Tindakan yang menyertakan transaksi. Jadi, pertimbangkan waktu tersebut saat merencanakan jadwal rilis Anda. Untuk memudahkan proses peninjauan, pastikan Anda mematuhi kebijakan dan pedoman untuk transaksi sebelum mengirimkan Action untuk ditinjau.

Tindakan yang menjual produk digital hanya dapat di-deploy di negara-negara berikut:

  • Australia
  • Brasil
  • Kanada
  • Indonesia
  • Jepang
  • Meksiko
  • Rusia
  • Singapura
  • Thailand
  • Turkiye
  • Inggris Raya
  • Amerika Serikat

Prasyarat

Sebelum memasukkan transaksi digital ke dalam Action, Anda memerlukan prasyarat berikut:

  • Akun developer dan akun penjual di Google Play, untuk mengelola produk digital Anda di konsol Google Play.

  • Domain web yang diverifikasi di Google Search Console. Domain ini tidak perlu dikaitkan dengan situs yang diluncurkan secara publik, kami hanya perlu mereferensikan domain web Anda.

  • Aplikasi Android dengan izin com.android.vending.BILLING di konsol Google Play. Produk digital Anda akan menjadi “pembelian dalam aplikasi” yang terkait dengan aplikasi ini di konsol Google Play.

    Anda juga harus membuat rilis di konsol Play dengan aplikasi ini, tetapi jika tidak ingin rilis bersifat publik, Anda dapat membuat rilis alfa tertutup.

    Jika Anda belum memiliki aplikasi Android, ikuti petunjuk Mengaitkan Aplikasi Android.

  • Satu atau beberapa produk terkelola di konsol Google Play, yang merupakan produk digital yang Anda jual dengan Action. Perlu diperhatikan bahwa Anda tidak dapat membuat produk terkelola di konsol Play sebelum menyiapkan prasyarat aplikasi Android.

    Jika Anda belum memiliki produk terkelola, ikuti petunjuk Membuat Produk Digital.

Mengaitkan Aplikasi Android

Jika saat ini Anda tidak memiliki aplikasi Android dengan izin penagihan di konsol Google Play, ikuti langkah-langkah berikut:

  1. Di Android Studio atau Android IDE pilihan Anda, buat project baru. Pilih opsi dalam perintah penyiapan project untuk membuat aplikasi yang sangat dasar.
  2. Beri nama paket untuk project, seperti com.mycompany.myapp. Jangan biarkan nama ini sebagai default, karena Anda tidak dapat mengupload paket yang menyertakan com.example ke konsol Play.
  3. Buka file AndroidManifest.xml aplikasi Anda.
  4. Tambahkan baris kode berikut di dalam elemen manifest:

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

    File AndroidManifest.xml Anda akan terlihat seperti blok kode berikut:

    <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. Mem-build aplikasi Anda sebagai APK yang ditandatangani. Di Android Studio, ikuti langkah-langkah berikut:

    1. Buka Build, Generate Signed Bundle / APK.
    2. Klik Berikutnya.
    3. Di bagian Key store path, klik Create new.
    4. Isi setiap kolom, lalu klik OK. Catat Sandi penyimpanan kunci dan Sandi kunci, serta simpan di tempat yang aman, karena Anda akan menggunakannya nanti.
    5. Klik Berikutnya.
    6. Pilih rilis.
    7. Pilih V1 (JAR Signature).
    8. Klik Finish.
    9. Setelah beberapa detik, Android Studio akan membuat file app-release.apk. Temukan file ini untuk digunakan nanti.
  6. Di konsol Google Play, buat aplikasi baru.

  7. Buka Rilis aplikasi.

  8. Di bagian Closed track, buka Kelola lalu Alfa.

  9. Klik tombol Buat Rilis.

  10. Di bagian Izinkan Google mengelola dan melindungi kunci penandatanganan, masukkan informasi kunci penandatanganan Anda.

  11. Upload file APK Anda.

  12. Klik Simpan.

Buat Produk Digital Anda

Jika saat ini Anda tidak memiliki produk digital apa pun di konsol Play, ikuti langkah-langkah berikut:

  1. Di konsol Google Play, buka Produk dalam aplikasi, lalu Produk terkelola. Jika Anda melihat peringatan, ikuti petunjuk sebelumnya untuk membuat aplikasi Android atau klik link untuk membuat profil penjual.
  2. Klik Buat Produk terkelola.
  3. Isi kolom untuk produk digital Anda. Catat ID Produk, yaitu cara Anda mereferensikan produk ini dari Action Anda.
  4. Klik Simpan.
  5. Ulangi langkah 2-4 untuk setiap produk yang ingin Anda jual.

Contoh barang yang tidak habis pakai di konsol Google Play.

Menyiapkan project Actions

Dengan menyiapkan produk digital di konsol Google Play, Anda harus mengaktifkan transaksi digital dan mengaitkan project Action dengan aplikasi Play.

Penyiapan

Untuk mengaktifkan transaksi produk digital di project Actions, ikuti langkah-langkah berikut:

  1. Di Konsol Actions, buka project Anda atau buat yang baru.
  2. Buka Deploy, lalu Directory information.
  3. Di bagian Informasi tambahan dan Transaksi, centang kotak Ya di bagian Apakah Action Anda menggunakan Digital Purchase API untuk melakukan transaksi produk digital.
  4. Klik Simpan.

Membuat kunci API produk digital

Untuk mengirim permintaan ke API produk digital, Anda perlu mendownload kunci akun layanan JSON yang terkait dengan project konsol Actions.

Untuk mengambil kunci akun layanan Anda, ikuti langkah-langkah berikut:

  1. Di Konsol Actions, klik ikon tiga titik di pojok kanan atas, lalu Setelan project.
  2. Temukan Project ID Action Anda.
  3. Ikuti link ini, mengganti "<project_id>" dengan ID project Anda: https://console.developers.google.com/apis/credentials?project=project_id
  4. Di navigasi utama, buka Credentials.
  5. Di halaman yang muncul, klik Create credentials, lalu Service account account.
  6. Buka Akun Layanan, lalu klik Akun Layanan Baru.
  7. Beri nama akun layanan seperti transaksi digital.
  8. Klik Create.
  9. Tetapkan Role ke Project > Owner.
  10. Klik Continue.
  11. Klik Buat Kunci.
  12. Pilih jenis kunci JSON.
  13. Klik Create key dan download kunci akun layanan JSON.

Simpan kunci akun layanan ini di tempat yang aman. Anda akan menggunakan kunci ini dalam fulfillment untuk membuat klien bagi API pembelian digital.

Menghubungkan ke inventaris Play

Untuk mengakses produk digital Anda dari project Actions, kaitkan domain dan aplikasi web Anda dengan project sebagai properti yang terhubung.

Untuk menghubungkan domain web dan aplikasi Play Console ke project Actions, ikuti langkah-langkah berikut:

  1. Di Konsol Actions, buka Deploy, lalu Brand verification.
  2. Jika Anda belum menghubungkan properti apa pun, hubungkan situs terlebih dahulu:

    1. Klik tombol properti web (</>).
    2. Masukkan URL untuk domain web Anda dan klik Hubungkan.

    Google akan mengirimkan email yang berisi petunjuk lebih lanjut kepada individu yang diverifikasi untuk domain web tersebut di Google Search Console. Setelah penerima email ini mengikuti langkah-langkah tersebut, situs akan muncul di bagian Verifikasi merek.

  3. Setelah Anda memiliki setidaknya satu situs yang terhubung, lakukan langkah-langkah berikut untuk menghubungkan aplikasi Android Anda:

    1. Di Konsol Actions, buka Deploy, lalu Brand verification.
    2. Klik Hubungkan Aplikasi.
    3. Di halaman yang muncul, ikuti petunjuk untuk memverifikasi domain web di konsol Play. Pilih aplikasi Play yang berisi produk digital Anda, lalu masukkan URL domain web persis seperti yang ditampilkan di halaman Verifikasi merek.

      Sekali lagi, Google mengirimkan email verifikasi kepada pemilik domain terverifikasi. Setelah mereka menyetujui verifikasi, aplikasi Play Anda akan muncul di bagian Verifikasi merek.

    4. Aktifkan Akses pembelian di Play.

Gambar yang menunjukkan situs dan aplikasi yang terhubung ke project Actions.

Buat alur pembelian Anda

Setelah project Action dan inventaris produk digital Anda siap, buat alur pembelian item digital di webhook pemenuhan percakapan Anda.

1. Menyiapkan klien API pembelian digital

Di webhook fulfillment percakapan Anda, buat klien JWT dengan kunci JSON akun layanan Anda dan cakupan https://www.googleapis.com/auth/actions.purchases.digital.

Kode Node.js berikut membuat klien JWT untuk API pembelian digital:

  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. Mengumpulkan informasi

Sebelum pengguna dapat melakukan pembelian, Action Anda akan mengumpulkan informasi tentang kemampuan pengguna untuk melakukan pembelian dan item yang tersedia dari inventaris Anda.

2. a. Memvalidasi persyaratan pembelian digital

Sebaiknya pastikan akun pengguna disiapkan untuk melakukan transaksi sebelum memberi mereka opsi untuk melakukan pembelian. Anda harus melakukan transisi ke scene DigitalPurchaseCheck, yang memeriksa apakah pengguna sudah diverifikasi, bahwa mereka melakukan transaksi di platform yang diizinkan (smart display, smart speaker, atau Android), dan bahwa mereka berada di lokalitas tempat transaksi digital didukung.

Untuk membuat adegan pemeriksaan pembelian digital, ikuti langkah-langkah berikut:

  1. Dari tab Scenes, tambahkan Scene baru dengan nama DigitalPurchaseCheck.
  2. Di bagian Pengisian slot, klik + untuk menambahkan slot baru.
  3. Di bagian Select type, pilih actions.type.DigitalPurchaseCheckResult sebagai jenis slot.
  4. Di kolom nama slot, beri nama DigitalPurchaseCheck untuk slot.
  5. Aktifkan kotak centang Sesuaikan penulisan nilai slot (diaktifkan secara default).
  6. Klik Simpan.

Pemeriksaan pembelian digital akan menghasilkan salah satu hasil berikut:

  • Jika persyaratan terpenuhi, parameter sesi akan ditetapkan dengan kondisi berhasil dan Anda dapat melanjutkan dengan mengizinkan pengguna membeli produk digital.
  • Jika satu atau beberapa persyaratan tidak dapat dipenuhi, parameter sesi ditetapkan dengan kondisi kegagalan. Dalam hal ini, Anda harus mengalihkan percakapan dari pengalaman transaksional, atau mengakhiri percakapan.

Untuk menangani hasil pemeriksaan Pembelian Digital, ikuti langkah-langkah berikut:

  1. Dari tab Scenes, pilih scene DigitalPurchaseCheck yang baru dibuat.
  2. Di bagian Kondisi, klik + untuk menambahkan kondisi baru.
  3. Di kolom teks, masukkan sintaksis kondisi berikut untuk memeriksa kondisi sukses:

    scene.slots.status == "FINAL" && session.params.DigitalPurchaseCheck.resultType == "CAN_PURCHASE"
    
  4. Arahkan kursor ke kondisi yang baru saja ditambahkan, lalu klik panah atas untuk menempatkannya sebelum if scene.slots.status == "FINAL".

  5. Aktifkan Send prompt dan berikan perintah sederhana yang memberi tahu pengguna bahwa mereka siap untuk melakukan transaksi:

    candidates:
      - first_simple:
          variants:
            - speech: >-
                You are ready to purchase digital goods.
    
  6. Di bagian Transition, pilih scene lain, yang memungkinkan pengguna melanjutkan percakapan dan melanjutkan transaksi.

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

  8. Aktifkan Send prompt, lalu berikan perintah sederhana yang memberi tahu pengguna bahwa mereka tidak dapat melakukan transaksi:

    candidates:
      - first_simple:
          variants:
            - speech: Sorry you cannot perform a digital purchase.
    
  9. Di bagian Transisi, pilih Akhiri percakapan untuk mengakhiri percakapan.

2. b. Mengumpulkan inventaris yang tersedia

Gunakan API pembelian digital untuk meminta inventaris Play Store yang saat ini tersedia, lalu mem-build-nya ke dalam array objek JSON untuk setiap produk. Anda mereferensikan array ini nanti untuk menunjukkan opsi yang tersedia untuk dibeli kepada pengguna.

Setiap produk digital Anda direpresentasikan sebagai SKU dalam format JSON. Kode Node.js berikut menguraikan format yang diharapkan dari setiap 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
  ]
}

Kirim permintaan POST ke endpoint https://actions.googleapis.com/v3/packages/{packageName}/skus:batchGet, dengan {packageName} sebagai nama paket aplikasi Anda di Konsol Google Play (misalnya, com.myapp.digitalgoods), dan format hasilnya menjadi array objek SKU.

Untuk hanya mengambil produk digital tertentu dalam array yang dihasilkan, cantumkan ID produk untuk produk digital (seperti yang ditunjukkan di bawah setiap produk dalam aplikasi di Konsol Google Play) yang ingin Anda sediakan untuk dibeli di body.ids.

Kode Node.js berikut meminta daftar barang yang tersedia dari API pembelian digital dan memformat hasilnya sebagai array 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. Buat urutan

Untuk memulai pembelian digital pengguna, sajikan daftar produk digital Anda yang tersedia untuk dibeli. Anda dapat menggunakan berbagai jenis respons lengkap untuk mewakili stok dan meminta pengguna untuk membuat pilihan.

Kode Node.js berikut membaca array inventaris objek SKU dan membuat respons daftar dengan satu item daftar untuk masing-masing:

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,
}));

Buat pembelian dari pilihan pengguna

Setelah pengguna memilih item, Anda dapat membuat pesanan. Untuk melakukannya, setelah slot yang dikaitkan dengan item yang dipilih, Anda dapat memanggil webhook untuk membuat pesanan. Dari fulfillment Anda, simpan data pesanan ke parameter sesi. Objek urutan digunakan di seluruh adegan untuk sesi yang sama.

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": ""
};

Di Actions Builder, Anda dapat menggunakan editor JSON untuk mengonfigurasi slot dengan objek pesanan di atas. Kedua implementasi tersebut menggunakan format yang sama untuk CompletePurchaseValueSpec, yang dapat Anda temukan di referensi payload webhook JSON.

4. Selesaikan pembelian

Setelah pengguna memilih item, Anda dapat menyelesaikan pembelian. Setelah mengisi slot yang terkait dengan item yang dipilih, Anda harus beralih ke scene yang melakukan pembelian lengkap.

Membuat Adegan Pembelian Lengkap

  1. Dari tab Scenes, tambahkan scene baru dengan nama CompletePurchase.
  2. Di bagian Pengisian slot, klik + untuk menambahkan slot baru.
  3. Di bagian Select type, pilih actions.type.CompletePurchaseValue sebagai jenis slot.
  4. Di kolom nama slot, beri nama CompletePurchase untuk slot.
  5. Aktifkan kotak centang Sesuaikan nilai penulisan ulang slot slot (diaktifkan secara default).
  6. Di bagian Configure slot, pilih Use session parameter dari dropdown.
  7. Di bagian Konfigurasi slot, masukkan nama parameter sesi yang digunakan untuk menyimpan pesanan ke dalam kolom teks (yaitu $session.params.purchase).
  8. Klik Simpan.

5. Menangani hasilnya

Slot dengan jenis actions.type.CompletePurchaseValue dapat memiliki hasil berikut:

  • PURCHASE_STATUS_OK: Pembelian berhasil. Transaksi ini sudah selesai pada titik ini, jadi keluar dari alur transaksi dan beralih kembali ke percakapan Anda.
  • PURCHASE_STATUS_ALREADY_OWNED: Transaksi gagal karena pengguna sudah memiliki item tersebut. Hindari error ini dengan memeriksa pembelian sebelumnya dari pengguna dan menyesuaikan item yang ditampilkan sehingga pengguna tidak memiliki opsi untuk membeli kembali item yang sudah mereka miliki.
  • PURCHASE_STATUS_ITEM_UNAVAILABLE: Transaksi gagal karena item yang diminta tidak tersedia. Hindari error ini dengan memeriksa SKU yang tersedia lebih dekat dengan waktu pembelian.
  • PURCHASE_STATUS_ITEM_CHANGE_REQUESTED: Transaksi gagal karena pengguna memutuskan untuk membeli sesuatu yang lain. Minta ulang pembuatan pesanan Anda sehingga pengguna dapat langsung membuat keputusan lain.
  • PURCHASE_STATUS_USER_CANCELLED: Transaksi gagal karena pengguna membatalkan alur pembelian. Karena pengguna keluar dari alur prematur, tanyakan apakah mereka ingin mencoba kembali transaksi atau keluar dari transaksi.
  • PURCHASE_STATUS_ERROR: Transaksi gagal karena alasan yang tidak diketahui. Beri tahu pengguna bahwa transaksi gagal, dan tanyakan apakah mereka ingin mencoba lagi.
  • PURCHASE_STATUS_UNSPECIFIED: Transaksi gagal karena alasan yang tidak diketahui, sehingga menyebabkan status tidak diketahui. Tangani status error ini dengan memberi tahu pengguna bahwa transaksi gagal, dan tanyakan apakah mereka ingin mencoba lagi.

Anda harus menangani setiap hasil ini dari scene CompletePurchase.

  1. Dari tab Scenes, pilih scene CompletePurchase yang baru dibuat.
  2. Di bagian Kondisi, klik + untuk menambahkan kondisi baru.
  3. Di kolom teks, masukkan sintaksis kondisi berikut untuk memeriksa kondisi sukses:

    scene.slots.status == "FINAL" && session.params.CompletePurchase.purchaseStatus == "PURCHASE_STATUS_OK"
    
  4. Arahkan kursor ke kondisi yang baru saja ditambahkan, lalu klik panah atas untuk menempatkannya sebelum if scene.slots.status == "FINAL".

  5. Aktifkan Send prompt dan berikan perintah sederhana yang memberi tahu pengguna bahwa mereka siap untuk melakukan transaksi:

    candidates:
      - first_simple:
          variants:
            - speech: >-
                Your purchase was successful.
    
  6. Di bagian Transisi, pilih Akhiri percakapan untuk mengakhiri percakapan.

Ulangi langkah-langkah di atas untuk setiap jenis hasil pembelian yang ingin Anda dukung.

Mencerminkan pembelian yang dilakukan pengguna

Saat pengguna mengkueri Action Anda, objek user JSON permintaan menyertakan daftar pembelian mereka. Periksa informasi ini dan ubah respons Action Anda berdasarkan konten yang telah dibayar pengguna.

Kode contoh berikut menunjukkan objek user permintaan yang menyertakan packageEntitlements pembelian dalam aplikasi sebelumnya yang mereka lakukan untuk paket 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"
    ]
  }
}

Menguji project Anda

Saat menguji project, Anda dapat mengaktifkan mode sandbox di konsol Actions untuk menguji Action tanpa mengenakan metode pembayaran. Untuk mengaktifkan mode sandbox, ikuti langkah-langkah berikut:

  1. Di Konsol Actions, klik Test di navigasi.
  2. Klik Setelan.
  3. Aktifkan opsi Sandbox Pengembangan.