diff --git a/packages/in_app_purchase/in_app_purchase_storekit/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_storekit/CHANGELOG.md index 7dd881cb856..181db40db5e 100644 --- a/packages/in_app_purchase/in_app_purchase_storekit/CHANGELOG.md +++ b/packages/in_app_purchase/in_app_purchase_storekit/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.20+2 + +* Fixes price not being displayed correctly. + ## 0.3.20+1 * Prevent devices below iOS 15 or macOS 15 from enabling StoreKit2. diff --git a/packages/in_app_purchase/in_app_purchase_storekit/lib/src/types/app_store_product_details.dart b/packages/in_app_purchase/in_app_purchase_storekit/lib/src/types/app_store_product_details.dart index f0ab7257b37..6e1a38f1661 100644 --- a/packages/in_app_purchase/in_app_purchase_storekit/lib/src/types/app_store_product_details.dart +++ b/packages/in_app_purchase/in_app_purchase_storekit/lib/src/types/app_store_product_details.dart @@ -66,7 +66,7 @@ class AppStoreProduct2Details extends ProductDetails { id: product.id, title: product.displayName, description: product.description, - price: product.priceLocale.currencySymbol + product.price.toString(), + price: product.displayPrice, rawPrice: product.price, currencyCode: product.priceLocale.currencyCode, currencySymbol: product.priceLocale.currencySymbol, diff --git a/packages/in_app_purchase/in_app_purchase_storekit/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_storekit/pubspec.yaml index dd15dd6062e..e7ecbc0ebc1 100644 --- a/packages/in_app_purchase/in_app_purchase_storekit/pubspec.yaml +++ b/packages/in_app_purchase/in_app_purchase_storekit/pubspec.yaml @@ -2,7 +2,7 @@ name: in_app_purchase_storekit description: An implementation for the iOS and macOS platforms of the Flutter `in_app_purchase` plugin. This uses the StoreKit Framework. repository: https://github.com/flutter/packages/tree/main/packages/in_app_purchase/in_app_purchase_storekit issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22 -version: 0.3.20+1 +version: 0.3.20+2 environment: sdk: ^3.3.0 diff --git a/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/pigeon_converter_test.dart b/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/pigeon_converter_test.dart index 3bdbd0af612..5cbdd2f9719 100644 --- a/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/pigeon_converter_test.dart +++ b/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/pigeon_converter_test.dart @@ -1,9 +1,10 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. - import 'package:flutter_test/flutter_test.dart'; +import 'package:in_app_purchase_storekit/in_app_purchase_storekit.dart'; import 'package:in_app_purchase_storekit/src/messages.g.dart'; +import 'package:in_app_purchase_storekit/src/store_kit_2_wrappers/sk2_product_wrapper.dart'; import 'package:in_app_purchase_storekit/store_kit_wrappers.dart'; void main() { @@ -104,4 +105,24 @@ void main() { expect(wrapper.domain, 'domain'); expect(wrapper.userInfo, {}); }); + + test('test AppStoreProduct2Details conversion', () { + final SK2Product product = SK2Product( + id: '123', + displayName: 'name', + displayPrice: '0.99', + description: 'description', + price: 9.99, + type: SK2ProductType.consumable, + priceLocale: SK2PriceLocale(currencyCode: 'USD', currencySymbol: r'$')); + + final AppStoreProduct2Details details = + AppStoreProduct2Details.fromSK2Product(product); + + expect(details.sk2Product, product); + expect(details.price, product.displayPrice); + expect(details.id, product.id); + expect(details.description, product.description); + expect(details.currencySymbol, product.priceLocale.currencySymbol); + }); }