API транзакций не работает в случае действий Google

Я пытаюсь использовать образец приложения для тестирования интеграции Google Pay: https://github.com/actions-on-google/dialogflow-transactions-nodejs/blob/master/functions/index.js

Изначально у меня были проблемы с REGION и USER_ACTION_REQUIRED, которые я решил, но теперь ничего не происходит при попытке пройти

new TransactionDecision({
 orderOptions: {
    requestDeliveryAddress: false,
  },
 paymentOptions: {
    googleProvidedOptions: {
            prepaidCardDisallowed: false,
            supportedCardNetworks: ['VISA', 'AMEX', 'DISCOVER', 'MASTERCARD'],
            tokenizationParameters: {
        parameters: { "gateway" : "stripe", "stripe:publishableKey" : "pk_live_MYKEY", "stripe:version" : "2019-05-16" } ,
                tokenizationType: 'PAYMENT_GATEWAY',
            },
    },
  },
  proposedOrder: order,
})

где order - это объект согласно образцу github.

Когда он вызывает conv.ask с указанным выше объектом TransactionDecision, он не работает. Я не получаю никаких сообщений об ошибках, даже если для уровня отладки установлено значение true.

Как действовать дальше ?? Пожалуйста, порекомендуйте.


person stackjohnny    schedule 22.07.2019    source источник


Ответы (1)


Вам нужно будет использовать Transaction API, как описано здесь .

  1. Сначала выполните проверку требований.
  2. Захватите решение "тихо", используя actions.intent.TRANSACTION_DECISION
  3. Если транзакция доступна, сгенерируйте правильный объект Order. Совет: начните с только необходимых элементов / параметров для объекта.
  4. Подтвердите пользователя для заказа и инициируйте оплату.

Это хорошо задокументировано и объяснено в приведенной выше ссылке.

Совет:

  • используйте учетную запись Google, созданную для страны, в которой требуется транзакционный API. Если целевой бот находится в США, убедитесь, что ваша учетная запись Gmail была создана в США с адресом в США. Иногда возникают проблемы при доступе из страны, где API транзакции недоступен.
  • используйте Ассистента на мобильном телефоне для тестирования, так как симулятор снова может вызывать проблемы.
  • на мобильном устройстве установите приложение для фиксации местоположения и имитируйте свое местоположение в стране, где поддерживается API транзакций.
person Abhinav Tyagi    schedule 22.07.2019