获取支持的语言环境(en-US)的 actions.type.DigitalPurchaseCheckResult 的 CANNOT_PURCHASE 并启用 Access Play 购买应用程序
设想:
Actions 控制台 > 目录信息 > 其他信息 > 您的 Actions 是否使用数字购买 API 来执行数字商品交易?- 是的:
操作控制台 > 品牌验证:
- 网站:连接网站 (https://my_website.com/)
- Android 应用程序:我的应用程序、com.mycompany.app、状态 - 已连接、访问 Play 购买 - 已启用
Actions Console > Scenes > DigitalPurchaseCheck 根据文档完成
主调用使用 DigitalPurchaseCheck 场景作为转换。
调用测试应用程序和处理“if scene.slots.status == "FINAL" && session.params.DigitalPurchaseCheck.resultType == "CAN_PURCHASE"" 条件的 webhook 永远不会被调用。相反,会调用处理“else if scene.slots.status == "FINAL"”的 webhook。
在 DigitalPurchaseCheck 验证期间收到的 webhookRequest 如下所示:
{
"requestJson": {
"handler": {
"name": "cannotPurchaseHandler"
},
"intent": {
"name": "",
"params": {
"DigitalPurchaseCheck": {
"original": "",
"resolved": {
"resultType": "CANNOT_PURCHASE",
"@type": "type.googleapis.com/google.actions.transactions.v3.DigitalPurchaseCheckResult"
}
}
},
"query": ""
},
"scene": {
"name": "DigitalPurchaseCheck",
"slotFillingStatus": "FINAL",
"slots": {
"DigitalPurchaseCheck": {
"mode": "REQUIRED",
"status": "SLOT_UNSPECIFIED",
"value": {
"resultType": "CANNOT_PURCHASE",
"@type": "type.googleapis.com/google.actions.transactions.v3.DigitalPurchaseCheckResult"
},
"updated": true
}
}
},
"session": {
"id": "ABwppHHCRgAM0p9S2851n8Z02SreJqDQPeP1dS5qeX6ywHjLEKz0ZTOZqch4uNNaOhTORcqlWXgGSa31Nq3zxJ0mAYE",
"params": {
"DigitalPurchaseCheck": {
"resultType": "CANNOT_PURCHASE",
"@type": "type.googleapis.com/google.actions.transactions.v3.DigitalPurchaseCheckResult"
}
},
"typeOverrides": [],
"languageCode": ""
},
"user": {
"locale": "en-US",
"params": {
"tokenPayload": {...}
如您所见,语言环境支持数字交易:"locale": "en-US"
但结果始终是:"resultType": "CANNOT_PURCHASE"
该文档包含有趣的评论:“2. a. 验证交易要求:在为用户提供购买选项之前,确保用户的帐户已设置为执行交易是一种很好的做法。此步骤包括检查用户是否拥有付款方式已配置,并且它们位于支持数字交易的区域。为此,您应该转换到执行数字购买检查的场景。
因此,就我而言,第二个条件已经满足:它们位于支持数字交易的语言环境中。
但看起来第一个条件(检查用户是否配置了付款方式)可能会导致验证失败。我正在使用我的开发帐户进行测试。但是文档没有提到应该配置为测试交易流的任何其他内容。
在模拟器和真实设备(Home Mini、Nest Hub、Android 上的 Google Assistant)中测试。
能否请你帮忙!