У меня есть группа подписки с ежемесячно и Годовые планы.
протестировано на ios с использованием плагина Flutter in_app_purchase версии 3.2.3.
flow:
/> [*] Я сначала приобрела ежемесячную подписку .
[*] Затем я приобрел Годовую подписку .
Слушатель из in_app_purchase возвращает strong>, в том числе orshlyly. Поведение?
Код: Выделить всё
Future _listenToPurchaseUpdated(
List
purchaseDetailsList, BuildContext context) async {
for (final purchaseDetails in purchaseDetailsList) {
if (purchaseDetails.status == PurchaseStatus.pending) {
//
} else if (purchaseDetails.status == PurchaseStatus.error) {
//
} else if (purchaseDetails.status == PurchaseStatus.purchased ||
purchaseDetails.status == PurchaseStatus.restored) {
// deliver product
// await deliverProduct(purchaseDetails, context);
}
// complete purchase
if (purchaseDetails.pendingCompletePurchase) {
print('Calling completePurchase...');
await inAppPurchase.completePurchase(purchaseDetails);
}
}
}
1 Как среди этих двух покупок определить, какая подписка правильная/активная?
2 Должен ли я проверить это с помощью PurchaseDetails.verificationData.serverVerificationData?
Например, в серверной части Node.js с помощью App от Apple API сервера магазина[/b]:
Код: Выделить всё
import { AppStoreServerAPIClient, ReceiptUtility, Environment, SignedDataVerifier, ProductType } from "@apple/app-store-server-library";
const verifier = new SignedDataVerifier(
appleRootCAs,
enableOnlineChecks,
environment, // Environment.Sandbox or Environment.Production
bundleId
);
const decodedTransaction = await verifier.verifyAndDecodeTransaction(serverVerificationData);
await inAppPurchase.completePurchase(purchaseDetails);
< /code>
Для каждого приобретенного ладоня, возвращаемых слушателем (купленным или восстановленным), или только при приобретении. Подписка, затем обновлена до ежегодной подписки.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... ion-on-ios
Мобильная версия