1

获取支持的语言环境(en-US)的 actions.type.DigitalPurchaseCheckResult 的 CANNOT_PURCHASE 并启用 Access Play 购买应用程序

设想:

  1. Actions 控制台 > 目录信息 > 其他信息 > 您的 Actions 是否使用数字购买 API 来执行数字商品交易?- 是的:

  2. 操作控制台 > 品牌验证:

  • 网站:连接网站 (https://my_website.com/)
  • Android 应用程序:我的应用程序、com.mycompany.app、状态 - 已连接、访问 Play 购买 - 已启用
  1. Actions Console > Scenes > DigitalPurchaseCheck 根据文档完成

  2. 主调用使用 DigitalPurchaseCheck 场景作为转换。

  3. 调用测试应用程序和处理“if scene.slots.status == "FINAL" && session.params.DigitalPurchaseCheck.resultType == "CAN_PUR​​CHASE"" 条件的 webhook 永远不会被调用。相反,会调用处理“else if scene.slots.status == "FINAL"”的 webhook。

  4. 在 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)中测试。

能否请你帮忙!

4

0 回答 0