API de Actions on Google Orders (Dialogflow)

La API de Actions on Google Orders permite a los desarrolladores manejar transacciones para bienes físicos en sus acciones.

Autentica solicitudes

El acceso al extremo de la API requiere autenticación OAuth 2.0. Necesitas un Token de usuario de OAuth 2.0 autorizado para el permiso https://www.googleapis.com/auth/actions.order.

Para obtener el token, puedes usar cualquiera de los flujos disponibles, a excepción del flujo de Cuentas de servicio.

El siguiente fragmento contiene un ejemplo de la carga útil de JSON de un pedido:

{
  "order": {
    "merchantOrderId": "1234",
    "userVisibleOrderId": "6789",
    "userVisibleStateLabel": "CONFIRMED",
    "buyerInfo": {
      "email": "xyz@example.com",
      "firstName": "Jane",
      "lastName": "Doe",
      "displayName": "Jane Doe",
      "phoneNumbers": [
        {
          "e164PhoneNumber": "+1234567890"
        }
      ]
    },
    "image": {
      "url": "www.someurl.com"
    },
    "createTime": "2017-01-15T01:30:15.01Z",
    "lastUpdateTime": "2017-01-15T01:30:15.01Z",
    "transactionMerchant": {
      "id": "www.examplemerchant.com",
      "name": "Example Merchant",
      "image": {
        "url": "www.someurl.com"
      },
      "phoneNumbers": [
        {
          "e164PhoneNumber": "+11112223333"
        }
      ],
      "address": {
        "zipCode": "94043",
        "city": "Mountain View",
        "postalAddress": {
          "regionCode": "US",
          "postalCode": "94043",
          "administrativeArea": "CA",
          "locality": "Mountain View",
          "addressLines": [
            "1600, Amphiteatre Parkway"
          ]
        }
      }
    },
    "contents": {
      "lineItems": [
        {
          "id": "1",
          "name": "Pizza Extreme",
          "description": "Has everything a pizza should have",
          "notes": [
            "Vegetarian please"
          ],
          "priceAttributes": [
            {
              "type": "REGULAR",
              "name": "Item Price",
              "state": "ACTUAL",
              "amount": {
                "currencyCode": "USD",
                "amountInMicros": "6000000"
              },
              "taxIncluded": false
            }
          ],
          "vertical": {
            "@type": "type.googleapis.com/google.actions.orders.v3.verticals.purchase.PurchaseItemExtension",
            "productId": "www.examplemerchant.com/123/3333",
            "quantity": 1,
            "itemOptions": [
              {
                "id": "",
                "name": "",
                "prices": [
                  {
                    "type": "REGULAR",
                    "name": "Item Price",
                    "state": "ACTUAL",
                    "amount": {
                      "currencyCode": "USD",
                      "amountInMicros": "2000000"
                    },
                    "taxIncluded": false
                  }
                ],
                "quantity": 1,
                "productId": "www.examplemerchant.com/123/3333/1",
                "subOptions": []
              }
            ]
          },
          "provider": {
            "id": "www.examplemerchant2.com/123",
            "name": "Example Merchant 2",
            "image": {},
            "phoneNumbers": [
              {
                "e164PhoneNumber": "+11112223333"
              }
            ],
            "address": {
              "zipCode": "94043",
              "city": "Mountain View",
              "postalAddress": {
                "regionCode": "US",
                "postalCode": "94043",
                "administrativeArea": "CA",
                "locality": "Mountain View",
                "addressLines": [
                  "1350 Charleston Road"
                ]
              }
            }
          }
        }
      ]
    },
    "priceAttributes": [
      {
        "type": "TOTAL",
        "name": "Total Price",
        "state": "ACTUAL",
        "amount": {
          "currencyCode": "USD",
          "amountInMicros": "10000000"
        },
        "taxIncluded": true
      },
      {
        "type": "TAX",
        "name": "Tax",
        "state": "ACTUAL",
        "amount": {
          "currencyCode": "USD",
          "amountInMicros": "2000000"
        },
        "taxIncluded": true
      },
      {
        "type": "SUBTOTAL",
        "name": "Subtotal",
        "state": "ACTUAL",
        "amount": {
          "currencyCode": "USD",
          "amountInMicros": "6000000"
        },
        "taxIncluded": false
      },
      {
        "type": "DELIVERY",
        "name": "Delivery",
        "state": "ACTUAL",
        "amount": {
          "currencyCode": "USD",
          "amountInMicros": "2000000"
        },
        "taxIncluded": false
      }
    ],
    "followUpActions": [
      {
        "type": "CALL",
        "title": "Call us",
        "openUrlAction": {
          "url": "tel:+16501112222"
        }
      },
      {
        "type": "EMAIL",
        "title": "Email us",
        "openUrlAction": {
          "url": "mailto:person@example.com"
        }
      }
    ],
    "paymentData": {
      "paymentInfo": {
        "paymentMethodDisplayInfo": {
          "paymentType": "PAYMENT_CARD",
          "paymentMethodDisplayName": "VISA **** 1234"
        },
        "paymentMethodProvenance": "PAYMENT_METHOD_PROVENANCE_GOOGLE"
      }
    },
    "termsOfServiceUrl": "www.examplemerchant.com/policy",
    "note": "Vegetarian only",
    "vertical": {
      "@type": "type.googleapis.com/google.actions.orders.v3.verticals.purchase.PurchaseOrderExtension",
      "status": "IN_PREPARATION",
      "type": "FOOD",
      "returnsInfo": {
        "isReturnable": false
      },
      "fulfillmentInfo": {
        "id": "www.examplemerchant.com/merchant-id/123",
        "fulfillmentType": "DELIVERY",
        "expectedFulfillmentTime": {
          "timeIso8601": "PT10M"
        },
        "location": {
          "zipCode": "94086",
          "city": "Sunnyvale",
          "postalAddress": {
            "regionCode": "US",
            "postalCode": "94086",
            "administrativeArea": "CA",
            "locality": "Sunnyvale",
            "addressLines": [
              "222, Some other Street"
            ]
          }
        },
        "price": {
          "type": "REGULAR",
          "name": "Delivery Price",
          "state": "ACTUAL",
          "amount": {
            "currencyCode": "USD",
            "amountInMicros": "2000000"
          },
          "taxIncluded": "FALSE"
        },
        "fulfillmentContact": {
          "email": "xyz@example.com",
          "firstName": "Jane",
          "lastName": "Doe",
          "displayName": "Jane Doe",
          "phoneNumbers": [
            {
              "e164PhoneNumber": "+16507146554"
            }
          ]
        }
      }
    }
  }
}