Revision control
Copy as Markdown
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page qtpurchasing-iosclasses.html
\title In-App purchasing demo - iOS classes
\brief IOS classes are used in the purchasing demo to enable purchasing in iOS.
Following classes are part of the \l{In-App purchasing demo}:
\section1 Classes
\table
\row
\li \l IosInAppPurchaseProduct
\li A product registered in the store.
\row
\li \l IosInAppPurchaseTransaction
\li Contains information about a transaction in the external app store.
\row
\li \l IosInAppPurchaseBackend
\li Comminucates with external store.
\endtable
Check out \l{In-App purchasing demo - base classes} which include InAppProduct, InAppStore,
InAppTransaction and InAppPurchaseBackend
\section1 IosInAppPurchaseProduct
IosInAppPurchaseProduct adds purchase() for initializing purchasing process.
\section1 IosInAppPurchaseTransaction
IosInAppPurchaseTransaction adds new parameters and return types.
Transaction error handling is implemented on IosInAppPurchaseTransaction's
constructor. The class has the finalize() function that finalizes the transaction.
\section1 IosInAppPurchaseBackend
IosInAppPurchaseBackend uses \b Objective-C language to communicate with the App
Store.
\section2 Initializing the products
This class shows the product's information on the store page.
\list 1
\li IosInAppPurchaseBackend is called from InAppStore::setupBackend().
\li At initialization IosInAppPurchaseBackend creates InAppPurchaseManager with
Objective-C.
\li InAppStore::registerProduct(productType, &identifier) function is called and
queryProduct() is executed in the back end.
\li Objective-C function requestProductData:() is called and will make \l{https://developer.apple.com/documentation/storekit/skproductsrequest}{SKProductRequest}.
\li After SKProductRequest is finished and product objects has been
created in Objective-C productsRequest:(), products will be registered
by the IosInAppPurchaseBackend::registerProduct() function.
\li Signal productQueryDone() will be emitted and the item's information will be
visible on the application's store page.
\endlist
\section2 Purchasing process
\list 1
\li The user presses one of the products on the applications store page.
\li \c IosInAppPurchaseProduct::purchase() function is called and payment is added to
the \c SKPaymentQueue in the Objective-C function paymentQueue:() in
IosInAppPurchaseBackend.
\li Purchase confirmation pop-up is launched for the user.
\endlist
*/