Ошибка авторизации биллинга с помощью Google in-app billing

Я сделал приложение для Android, которое использует биллинг Google в приложении. Большая часть времени это работает очень хорошо, но некоторые пользователи, похоже, не авторизованы. В этом случае я получаю электронное письмо со следующим текстом.

Google order # XXX has been cancelled because carrier billing authorization did not succeed for your buyer. The buyer was not charged. 

Я понимаю, что это значит и что проблема не на моей стороне, но мне интересно, что именно происходит в этом случае в приложении. Выполняется ли заказ сначала и позже отменяется? Каков поток сообщений в этом случае между Google и моим приложением?

В этом сообщении нет ничего плохого. Каждая платежная транзакция состоит из двух шагов: авторизация и захват. На этапе авторизации Google Play пытается проверить, что платежный инструмент (в вашем случае это учетная запись оператора) действителен, и средств там достаточно. Если это удастся, тогда определенная сумма денег будет заблокирована на этом платежном инструменте на определенное время. Следующим шагом является захват или отмена этого разрешения. Захват означает, что деньги будут востребованы и перенесены на счет Google. Отменяет отсутствие перевода денег.

В вашем случае первый этап авторизации завершился неудачно. Обычно вы увидите отмененный ордер в Google Кошельке, но в банковских записях пользователя не будет отменена транзакция платежа . Если на этапе авторизации транзакция с платежом не выполняется, это то же самое, что транзакции вообще не было.

Что вы можете сделать, чтобы исправить это? Ничего. Это зависит от того, какой платежный инструмент используется, и если там есть достаточное количество находок. Если пользователь использует учетную запись оператора для оплаты с некоторыми ограничениями на нее, может быть отказано в авторизации, что нормально.

Применяется ли ваше приложение? Да. Он будет уведомлен о том, что платеж потерпел неудачу, и вы не должны включать оплачиваемые функции для этого пользователя. Вам не нужно ничего делать. Если пользователь захочет, он или она исправит проблему (например, пополнит свою учетную запись) и попытается снова купить.

Надеюсь это поможет.