Класс QInAppTransaction
Содержит информацию о транзакции в внешнем магазине приложений. Подробнее...
| Заголовок: | #include <QInAppTransaction> |
| Наследуется от: | QObject |
Открытые типы
| Перечисление | FailureReason { NoFailure, ОтмененоПользователем, ВозниклаОшибка } |
| Перечисление | TransactionStatus { Неизвестно, ПокупкаПодтверждена, ПокупкаНеУдалась, ПокупкаВосстановлена } |
Свойства
|
Открытые функции
| virtual QString | errorString() const |
| virtual QInAppTransaction::FailureReason | failureReason() const |
| virtual void | finalize() = 0 |
| virtual QString | orderId() const |
| virtual QString | platformProperty(const QString &propertyName) const |
| QInAppProduct * | product() const |
| QInAppTransaction::TransactionStatus | status() const |
| virtual QDateTime | timestamp() const |
Подробное описание
QInAppTransaction содержит информацию о транзакции в внешнем магазине приложений и обычно предоставляется в результате вызова QInAppProduct::purchase(). Когда поток покупки был завершен пользователем (например, подтверждение покупки путем ввода пароля), экземпляр QInAppStore, содержащий продукт, выпустит сигнал QInAppStore::transactionReady() с данными о транзакции.
Свойство status() предоставляет информацию о том, была ли транзакция успешной. Если она была успешной, приложение должно предпринять соответствующие действия. После выполнения необходимых действий следует вызвать finalize(). Функция finalize() должна быть вызвана независимо от состояния транзакции.
Важно, чтобы приложение сохранило информацию о покупке перед вызовом finalize(). Если транзакция не завершена (например, из-за прерывания приложения до того, как оно успело сохранить информацию), транзакция будет повторно выведена в следующий раз, когда продукт будет зарегистрирован с помощью QInAppStore::registerProduct().
Транзакции также могут быть выведены после вызова QInAppStore::restorePurchases(), в этом случае для каждого ранее приобретенного продукта с возможностью разблокирования будет выведена новая транзакция со статусом PurchaseRestored.
Примечание: Поскольку в определенных обстоятельствах транзакции могут быть выведены для одной и той же транзакции несколько раз, приложение всегда должно проверять, была ли транзакция зарегистрирована. Не ожидайте, что каждая транзакция будет уникальной.
Документация по типу членов
Перечисление QInAppTransaction::FailureReason
Это тип перечисления, указывающий причину ошибки, если транзакция имеет статус PurchaseFailed.
| Постоянная | Значение | Описание |
|---|---|---|
QInAppTransaction::NoFailure |
0 |
Статус транзакции не PurchaseFailed. |
QInAppTransaction::CanceledByUser |
1 |
Транзакция была вручную отменена пользователем. |
QInAppTransaction::ErrorOccurred |
2 |
Произошла ошибка, помешавшая завершению транзакции. См. свойство errorString для получения дополнительной информации о конкретной произошедшей ошибке. |
Перечисление QInAppTransaction::TransactionStatus
Этот тип перечисления используется для указания состояния транзакции.
| Постоянная | Значение | Описание |
|---|---|---|
QInAppTransaction::Unknown |
0 |
Статус транзакции не задан. |
QInAppTransaction::PurchaseApproved |
1 |
Покупка была успешно завершена. |
QInAppTransaction::PurchaseFailed |
2 |
Покупка не была завершена по какой-то причине. Это может быть связано с тем, что пользователь отменил транзакцию, но также может быть вызвано, например, отсутствием сетевого соединения. |
QInAppTransaction::PurchaseRestored |
3 |
Продукт ранее был приобретен, и теперь покупка восстановлена в результате вызова QInAppStore::restorePurchases(). |
Документация свойств
errorString : const QString
Это свойство содержит строку, описывающую ошибку, если транзакция завершилась ошибкой. Содержимое строки ошибки зависит от платформы.
Функции доступа:
| virtual QString | errorString() const |
См. также failureReason и status.
failureReason : const FailureReason
Это свойство содержит причину ошибки, если состояние транзакции равно PurchaseFailed. Если покупка была отменена пользователем, причина ошибки будет CanceledByUser. Если покупка завершилась ошибкой, причина будет ErrorOccurred. Если покупка прошла успешно, причина будет NoFailure.
Функции доступа:
| virtual QInAppTransaction::FailureReason | failureReason() const |
См. также errorString и status.
orderId : const QString
Это свойство содержит уникальный идентификатор этой транзакции. Это значение может быть пустой строкой, если транзакция не была зарегистрирована (например, для отменённых покупок).
Функции доступа:
| virtual QString | orderId() const |
product : QInAppProduct* const
Это свойство содержит продукт, являющийся объектом этой транзакции.
Функции доступа:
| QInAppProduct * | product() const |
status : const TransactionStatus
Это свойство содержит состояние транзакции. Если покупка была успешно завершена, состояние будет PurchaseApproved. Если покупка завершилась ошибкой или была неуспешной, состояние будет PurchaseFailed. Если транзакция была восстановлена в результате вызова QInAppStore::restorePurchases(), то состояние будет PurchaseRestored.
Функции доступа:
| QInAppTransaction::TransactionStatus | status() const |
timestamp : const QDateTime
Это свойство содержит метку времени транзакции. Метка времени может быть недействительной, если транзакция недействительна, например, если пользователь отменил покупку.
Функции доступа:
| virtual QDateTime | timestamp() const |
См. также orderId.
Документация функций-членов
[pure virtual] void QInAppTransaction::finalize()
Вызовите эту функцию, когда приложение закончит все необходимые действия по обработке покупки. Если состояние равно PurchaseApproved, приложение должно сохранить информацию о транзакции надёжным способом перед её финализацией. Все транзакции должны быть финализированы.
Примечание: Эта функция может быть вызвана через систему метаобъектов и из QML. См. Q_INVOKABLE.
[virtual] QString QInAppTransaction::platformProperty(const QString &propertyName) const
Возвращает платформозависимое свойство, заданное propertyName.
Следующие свойства доступны в Google Play:
- AndroidSignature: Подпись транзакции, предоставленная закрытым ключом приложения.
- AndroidPurchaseData: Данные о покупке, возвращённые магазином Google Play.
Эти свойства можно использовать для проверки покупки с помощью открытого ключа вашего приложения. Также возможно, чтобы бэкенд проверял покупки, передав открытый ключ перед регистрацией продуктов, используя QInAppStore::setPlatformProperty().
Примечание: Эта функция может быть вызвана через систему метаобъектов и из QML. См. Q_INVOKABLE.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qinapptransaction.html