Panduan ini menjelaskan cara menambahkan transaksi digital ke Percakapan Anda Tindakan, agar pengguna dapat membeli produk digital habis pakai Anda.
Istilah utama: Produk digital yang dapat dipakai adalah unit penyimpanan persediaan (SKU) yang pengguna dapat menggunakan dan membeli lebih dari sekali, seperti sejumlah mata uang dalam game untuk game Android. Produk digital ini berbeda dengan produk tidak habis pakai produk digital yang hanya dapat dibeli satu kali.
Untuk informasi selengkapnya tentang produk sekali beli yang dapat dikonsumsi, lihat panduan Android dokumentasi tentang fitur khusus produk sekali beli.
Alur transaksi
Panduan ini menguraikan setiap langkah pengembangan saat terjadi pada produk digital untuk seluruh alur transaksi. Ketika Action Anda menangani transaksi untuk produk digital, menggunakan alur berikut:
- Menyiapkan klien API pembelian digital: Action Anda menggunakan klien digital Purchases API untuk berkomunikasi dengan inventaris Google Play Anda dan bertransaksi. Sebelum Action Anda melakukan hal lain, tindakan ini akan membuat klien JWT dengan kunci layanan untuk berkomunikasi dengan Digital Purchases API.
- Kumpulkan informasi: Action Anda mengumpulkan informasi dasar tentang
pengguna dan inventaris Google Play Anda untuk mempersiapkan transaksi.
- Memvalidasi persyaratan transaksi: Action Anda menggunakan format digital bantuan dalam persyaratan transaksi di awal alur pembelian untuk memastikan pengguna dapat bertransaksi.
- Mengumpulkan inventaris yang tersedia: Action Anda memeriksa Google Play Anda inventaris dan mengidentifikasi item apa yang tersedia untuk dibeli saat ini.
- Buat urutan: Action Anda menampilkan produk digital yang tersedia kepada pengguna sehingga mereka dapat memilih produk untuk dibeli.
- Menyelesaikan pembelian: Action Anda menggunakan API pembelian digital untuk memulai pembelian dengan pilihan pengguna dari Google Play Store.
- Menangani hasilnya: Action Anda menerima kode status untuk dan memberi tahu pengguna bahwa pembelian berhasil (atau mengambil langkah tambahan).
- Buat pembelian dapat diulang: Action Anda menggunakan pembelian digital API untuk "penggunaan" item yang dibeli, sehingga item tersebut tersedia untuk dibeli oleh pengguna tersebut.
Pembatasan dan panduan peninjauan
Kebijakan tambahan berlaku untuk Tindakan dengan transaksi. Dibutuhkan beberapa minggu untuk meninjau Tindakan yang mencakup transaksi, jadi pertimbangkan waktu tersebut saat merencanakan jadwal rilis. Untuk memudahkan proses peninjauan, pastikan Anda mematuhi kebijakan dengan kebijakan dan panduan untuk transaksi sebelum mengirimkan Action Anda untuk ditinjau.
Action yang menjual produk digital hanya dapat di-deploy di negara-negara berikut:
- Australia
- Brasil
- Kanada
- Indonesia
- Jepang
- Meksiko
- Rusia
- Singapura
- Thailand
- Turki
- Inggris Raya
- Amerika Serikat
Prasyarat
Sebelum menyertakan transaksi digital ke dalam Action, Anda memerlukan prasyarat berikut:
J 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 web yang diluncurkan secara publik, kami hanya perlu mereferensikan domain web Anda.
Aplikasi Android dengan
com.android.vending.BILLING
izin di konsol Google Play. Produk digital Anda akan menjadi "pembelian dalam aplikasi" yang dikaitkan dengan aplikasi ini di Konsol Google Play.Anda juga perlu membuat rilis di konsol Play dengan aplikasi ini, tetapi jika Anda tidak ingin rilis bersifat publik, Anda dapat membuat alfa tertutup rilis.
Jika Anda belum memiliki aplikasi Android, ikuti Kaitkan petunjuk Aplikasi Android.
Satu atau beberapa produk terkelola di Konsol Google Play, yang merupakan produk digital yang dijual dengan Action Anda. Perlu diketahui bahwa Anda tidak dapat membuat produk terkelola di konsol Play sebelum menyiapkan Prasyarat aplikasi Android.
Jika Anda belum memiliki produk terkelola, ikuti Petunjuk Buat Produk Digital Anda.
Mengaitkan Aplikasi Android
Jika saat ini Anda tidak memiliki aplikasi Android dengan izin penagihan di Konsol Google Play, ikuti langkah-langkah berikut:
- Di Android Studio atau Android IDE pilihan Anda, buat project baru. Pilih opsi di petunjuk pengaturan proyek untuk membuat aplikasi yang sangat dasar.
- Beri nama paket project, seperti
com.mycompany.myapp
. Jangan biarkan nama ini sebagai {i>default<i}, karena Anda tidak bisa mengunggah paket yang menyertakancom.example
ke konsol Play. - Buka file
AndroidManifest.xml
aplikasi Anda. 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>
Bangun aplikasi Anda sebagai APK yang ditandatangani. Di Android Studio, ikuti langkah-langkah berikut:
- Buka Build, Generate Signed Bundle / APK.
- Klik Berikutnya.
- Di bagian Key store path, klik Create new.
- Isi setiap kolom, lalu klik OK. Catat Key store Anda sandi dan Sandi kunci, dan menyimpannya di tempat yang aman, karena Anda akan menggunakannya nanti.
- Klik Berikutnya.
- Pilih rilis.
- Pilih V1 (JAR Signature).
- Klik Selesai.
- Setelah beberapa detik, Android Studio akan menghasilkan file
app-release.apk
. Temukan file ini untuk digunakan nanti.
Di kolom Konsol Google Play, membuat aplikasi baru.
Buka Rilis aplikasi.
Di bagian Jalur tertutup, buka Kelola, lalu Alfa.
Klik tombol Buat Rilis.
Di bagian Izinkan Google mengelola dan melindungi kunci penandatanganan Anda, masukkan penandatanganan informasi penting.
Upload file APK Anda.
Klik Simpan.
Membuat Konten Digital
Jika saat ini Anda tidak memiliki produk digital apa pun di konsol Play, ikuti langkah:
- Di kolom 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.
- Klik Buat Produk terkelola.
- Isi kolom untuk produk digital Anda. Catat ID Produk, yaitu cara Anda akan mereferensikan produk ini dari Action Anda.
- Klik Simpan.
- Ulangi langkah 2-4 untuk setiap produk yang ingin Anda jual.
Menyiapkan project Action
Dengan produk digital yang disiapkan di konsol Google Play, Anda harus mengaktifkan transaksi digital dan mengaitkan project Action dengan aplikasi Play.
Penyiapan
Untuk mengaktifkan transaksi produk digital dalam project Action Anda, ikuti langkah-langkah berikut langkah:
- Di Konsol Actions, buka project Anda atau buat project baru.
- Buka Deploy, lalu Directory information.
- Di bagian Informasi tambahan dan Transaksi, centang kotak Ya di bagian Apakah Actions Anda menggunakan Digital Purchase API untuk melakukan transaksi produk digital.
- Klik Simpan.
Membuat kunci API barang digital
Untuk mengirim permintaan ke API produk digital, Anda perlu mendownload layanan JSON kunci akun yang terkait dengan project Konsol Actions Anda.
Untuk mengambil kunci akun layanan, ikuti langkah-langkah berikut:
- Di Konsol Actions, klik ikon tiga titik di pojok kanan atas, lalu Project settings.
- Temukan Project ID Action Anda.
- Ikuti link ini, yang menggantikan "
<project_id>
" dengan ID project Anda:https://console.developers.google.com/apis/credentials?project=project_id
- Di navigasi utama, buka Credentials.
- Di halaman yang muncul, klik Create credentials, lalu Service kunci akun.
- Buka Service Account, lalu klik New Service Account.
- Beri nama akun layanan seperti transaksi digital.
- Klik Buat.
- Tetapkan Role ke Project > Pemilik.
- Klik Lanjutkan.
- Klik Buat Kunci.
- Pilih jenis kunci JSON.
- Klik Create key, lalu download kunci akun layanan JSON.
Simpan kunci akun layanan ini di tempat yang aman. Anda akan menggunakan kunci ini di pemenuhan untuk membuat klien untuk API pembelian digital.
Menghubungkan ke inventaris Play
Untuk mengakses produk digital Anda dari project Actions, kaitkan domain web dan aplikasi dengan project Anda properti yang terhubung.
Untuk menghubungkan domain web dan aplikasi konsol Play ke project Action Anda, ikuti langkah-langkah berikut:
- Di Konsol Actions, buka Deploy, lalu Verifikasi merek.
Jika Anda belum menghubungkan properti apa pun, hubungkan situs terlebih dahulu:
- Klik tombol properti web (</>).
- Masukkan URL untuk domain web Anda, lalu klik Hubungkan.
Google akan mengirimkan email 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.
Setelah memiliki setidaknya satu situs yang terhubung, lakukan langkah-langkah berikut untuk hubungkan aplikasi Android Anda:
- Di Konsol Actions, buka Deploy, lalu Verifikasi merek.
- Klik Hubungkan Aplikasi.
Di halaman yang muncul, ikuti petunjuk untuk memverifikasi situs Anda domain di Konsol Play. Pilih aplikasi Play yang berisi produk digitalnya, dan masukkan URL domain web persis seperti yang ditampilkan di Halaman Verifikasi merek.
Sekali lagi, Google mengirimkan email verifikasi ke pemilik terverifikasi domain. Setelah mereka menyetujui verifikasi, aplikasi Play Anda akan muncul di bagian Verifikasi merek.
Aktifkan Akses pembelian Play.
Membuat alur pembelian
Dengan menyiapkan project Action dan inventaris produk digital Anda, buat alur pembelian barang di webhook fulfillment percakapan Anda.
1. Menyiapkan klien API pembelian digital
Di webhook fulfillment percakapan Anda, buat klien JWT dengan layanan Anda
kunci JSON akun dan
https://www.googleapis.com/auth/actions.purchases.digital
cakupan.
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 mengumpulkan informasi tentang kemampuan pengguna untuk melakukan pembelian dan barang apa yang tersedia dari inventaris Anda.
2. a. Memvalidasi persyaratan pembelian digital
Sebaiknya pastikan akun pengguna disiapkan untuk
transaksi sebelum memberi mereka
opsi untuk melakukan pembelian. Anda seharusnya
melakukan transisi ke scene DigitalPurchaseCheck
, yang memeriksa apakah pengguna telah diverifikasi,
bahwa mereka melakukan transaksi di platform
yang diizinkan (layar smart,
smart speaker, atau Android), dan berada di lokalitas tempat
saat ini, transaksi juga didukung.
Untuk membuat tampilan pemeriksaan pembelian digital, ikuti langkah-langkah berikut:
- Dari tab Scenes, tambahkan Scene baru dengan nama
DigitalPurchaseCheck
. - Di bagian Pengisian slot, klik + untuk menambahkan slot baru.
- Di bagian Pilih jenis, pilih
actions.type.DigitalPurchaseCheckResult
sebagai jenis slot. - Di kolom nama slot, berikan nama
DigitalPurchaseCheck
untuk slot. - Aktifkan kotak centang Customize slot value writeback (diaktifkan secara default).
- Klik Simpan.
Pemeriksaan pembelian digital akan memberikan salah satu hasil berikut:
- Jika persyaratan terpenuhi, parameter sesi ditetapkan dengan keberhasilan dan Anda dapat melanjutkan dengan memperbolehkan pengguna membeli produk digital.
- Jika satu atau lebih persyaratan tidak dapat dipenuhi, parameter sesi akan yang ditetapkan dengan kondisi kegagalan. Dalam hal ini, Anda harus mengubah arah pembicaraan meninggalkan pengalaman transaksional, atau mengakhiri percakapan.
Untuk menangani hasil pemeriksaan Pembelian Digital, ikuti langkah-langkah berikut:
- Dari tab Scenes, pilih scene
DigitalPurchaseCheck
yang baru dibuat. - Di bagian Kondisi, klik + untuk menambahkan kondisi baru.
Pada kolom teks, masukkan sintaksis kondisi berikut untuk memeriksa kondisi keberhasilan:
scene.slots.status == "FINAL" && session.params.DigitalPurchaseCheck.resultType == "CAN_PURCHASE"
Arahkan kursor ke kondisi yang baru saja Anda tambahkan dan klik panah atas untuk menempatkannya sebelum
if scene.slots.status == "FINAL"
.Aktifkan Kirim perintah dan berikan perintah sederhana yang memberi tahu pengguna mereka siap untuk melakukan transaksi:
candidates: - first_simple: variants: - speech: >- You are ready to purchase digital goods.
Di bagian Transisi, pilih suasana lain, sehingga pengguna dapat melanjutkan percakapan dan melanjutkan dengan melakukan transaksi.
Pilih kondisi
else if scene.slots.status == "FINAL"
.Aktifkan Kirim perintah dan berikan perintah sederhana yang memberi tahu pengguna mereka tidak dapat melakukan transaksi:
candidates: - first_simple: variants: - speech: Sorry you cannot perform a digital purchase.
Di bagian Transisi, pilih Akhiri percakapan untuk mengakhiri percakapan.
2. b. Mengumpulkan inventaris yang tersedia
Gunakan API pembelian digital untuk meminta Play Store yang saat ini tersedia inventaris, lalu masukkan ke dalam array objek JSON untuk setiap produk. Anda mereferensikan array ini nanti untuk menunjukkan kepada pengguna opsi yang tersedia untuk pembelian.
Setiap produk digital Anda ditampilkan sebagai SKU dalam format JSON. Tujuan 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
https://actions.googleapis.com/v3/packages/{packageName}/skus:batchGet
endpoint, dengan {packageName}
adalah nama paket aplikasi Anda di Google Play
Konsol (misalnya, com.myapp.digitalgoods
), lalu format hasilnya menjadi
array objek SKU.
Untuk hanya mengambil produk digital tertentu dalam array yang dihasilkan, cantumkan produk
ID untuk produk digital (seperti yang ditampilkan di setiap produk dalam aplikasi di Google Play
Konsol) yang ingin Anda sediakan untuk dibeli di body.ids
.
Kode Node.js berikut meminta daftar barang yang tersedia dari membeli API 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': ['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. Membuat pesanan
Untuk memulai pembelian digital pengguna, tampilkan daftar produk digital Anda yang tersedia untuk dibeli. Anda dapat menggunakan berbagai jenis respons yang beragam untuk mewakili stok dan meminta pengguna untuk membuat pilihan.
Kode Node.js berikut membaca array inventaris objek SKU dan membuat cantumkan respons 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 yang terkait dengan item yang dipilih, Anda dapat memanggil webhook membuat pesanan. Dari pemenuhan pesanan Anda, simpan data pesanan ke sesi . Objek urutan digunakan di seluruh scene 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 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 Anda mengisi yang terkait dengan item yang dipilih, Anda harus beralih ke adegan yang melakukan pembelian lengkap.
Buat Adegan Pembelian yang Lengkap
- Dari tab Scenes, tambahkan scene baru dengan nama
CompletePurchase
. - Di bagian Pengisian slot, klik + untuk menambahkan slot baru.
- Di bagian Select type, pilih
actions.type.CompletePurchaseValue
sebagai jenis slot. - Di kolom nama slot, berikan nama
CompletePurchase
untuk slot. - Aktifkan kotak centang Customize slot value writeback (diaktifkan secara default).
- Di bagian Configure slot, pilih
Use session parameter
dari dropdown. - Di bagian Konfigurasi slot, masukkan nama parameter sesi yang digunakan untuk
simpan pesanan ke dalam kolom teks (misalnya,
$session.params.purchase
). - Klik Simpan.
5. Menangani hasil
Slot dengan jenis actions.type.CompletePurchaseValue
dapat memiliki hal berikut
hasil:
PURCHASE_STATUS_OK
: Pembelian berhasil. Transaksi tersebut selesaikan di titik ini, jadi keluarlah dari alur transaksional dan kembali ke percakapan Anda.PURCHASE_STATUS_ALREADY_OWNED
: Transaksi gagal karena pengguna sudah memiliki item tersebut. Hindari error ini dengan memeriksa pembelian dan menyesuaikan item yang ditampilkan sehingga mereka 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 mendekati waktu pembelian.PURCHASE_STATUS_ITEM_CHANGE_REQUESTED
: Transaksi gagal karena pengguna memutuskan untuk membeli sesuatu yang lain. Minta ulang dengan membuat pesanan sehingga pengguna dapat segera membuat keputusan lain.PURCHASE_STATUS_USER_CANCELLED
: Transaksi gagal karena pengguna membatalkan alur pembelian. Karena pengguna keluar lebih awal dari alur, tanyakan kepada pengguna apakah mereka ingin mencoba kembali transaksi atau keluar dari transaksi secara menyeluruh.PURCHASE_STATUS_ERROR
: Transaksi gagal karena alasan yang tidak diketahui. Beri tahu pengguna bahwa transaksi tersebut gagal, dan tanyakan apakah ia ingin mencoba lagi.PURCHASE_STATUS_UNSPECIFIED
: Transaksi gagal karena alasan yang tidak diketahui, yang mengakibatkan status yang tidak diketahui. Tangani status error ini dengan membiarkan pengguna mengetahui bahwa transaksi tersebut gagal, dan tanyakan apakah mereka ingin mencoba lagi.
Anda harus menangani setiap hasil ini dari scene CompletePurchase
.
- Dari tab Scenes, pilih scene
CompletePurchase
yang baru dibuat. - Di bagian Kondisi, klik + untuk menambahkan kondisi baru.
Pada kolom teks, masukkan sintaksis kondisi berikut untuk memeriksa kondisi keberhasilan:
scene.slots.status == "FINAL" && session.params.CompletePurchase.purchaseStatus == "PURCHASE_STATUS_OK"
Arahkan kursor ke kondisi yang baru saja Anda tambahkan dan klik panah atas untuk menempatkannya sebelum
if scene.slots.status == "FINAL"
.Aktifkan Kirim perintah dan berikan perintah sederhana yang memberi tahu pengguna mereka siap untuk melakukan transaksi:
candidates: - first_simple: variants: - speech: >- Your purchase was successful.
Di bagian Transisi, pilih Akhiri percakapan untuk mengakhiri percakapan.
Ulangi langkah-langkah di atas untuk setiap jenis hasil pembelian yang ingin Anda dukung.
6. Membuat pembelian dapat diulang
Setelah transaksi berhasil, kirim permintaan POST ke pembelian digital
API untuk memakai item, sehingga pengguna dapat membelinya lagi. Kirimkan
permintaan ke https://actions.googleapis.com/v3/conversations/{sessionId}/entitlement:consume
endpoint dengan ID sesi yang ada di session.id
.
Permintaan POST Anda juga harus menyertakan objek token pembelian yang terkait dengan
pembelian pengguna, ditemukan dalam JSON permintaan pengguna di bagian
packageEntitlements.entitlements.inAppDetails.inAppPurchaseData.purchaseToken
.
Kode berikut mengirim permintaan consume
ke Digital Purchases API dan
melaporkan apakah permintaan tersebut berhasil:
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}`);
}
});
Mencerminkan pembelian pengguna
Saat pengguna mengkueri Action Anda, objek user
JSON permintaan akan menyertakan
daftar pembelian mereka. Periksa informasi ini dan ubah
respons berdasarkan konten yang 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 Anda tanpa menagih metode pembayaran. Untuk mengaktifkan mode sandbox, ikuti langkah-langkah berikut:
- Di Konsol Actions, klik Test di navigasi.
- Klik Setelan.
- Aktifkan opsi Development Sandbox.