{ "name": "com.unity.purchasing", "displayName": "In App Purchasing", "unity": "2020.3", "_upm": { "gameService": { "groupIndex": 4, "groupName": "Monetize", "configurePath": "Project/Services/In-App Purchasing", "genericDashboardUrl": "https://dashboard.unity3d.com/", "projectDashboardUrl": "https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue", "projectDashboardUrlType": "OrganizationKeyAndProjectGuid" }, "supportedPlatforms": [ "Android", "iOS" ], "changelog": "### Added\n- GooglePlay - `IGooglePlayConfiguration.SetMaxConnectionAttempts(int maxConnectionAttempts)` has been added to specify the max connection attempts to the Google Play Store.\n- Apple - Added privacy manifest to comply with Apple's new privacy requirements. More details on how the Unity Engine supports this can be found [here](https://forum.unity.com/threads/apple-privacy-manifest-updates-for-unity-engine.1529026/).\n- Added `ConfigurationBuilder.logUnavailableProducts` to specify if unavailable products should be logged.\n\n### Changed\n- GooglePlay - The default max connection attempt to the Google Play Store has been increased from 1 to 3. See `IGooglePlayConfiguration.SetMaxConnectionAttempts` to configure this to a different value.\n- Apple - The log when retrieving products (SKProductsResponse) now also contains the invalid products count.\n- Improved `IStoreListener.OnInitializeFailed` for `InitializationFailureReason.NoProductsAvailable` by adding a message to clarify whether the store returned products or not.\n\n### Fixed\n- GooglePlay - Fixed AndroidJavaObject not being disposed causing a global reference table overflow in an edge case.\n- GooglePlay - Fixed bug causing BillingClient duplication resulting in ANR.\n- Apple - Fixed isFamilyShareable on tvOS to be only available on supported versions (14.0 and above).\n- Apple - Error codes when a purchase fails now always returns the code from Apple instead of defaulting to `SKErrorUnknown`.\n- Fixed Analytics' transactionServer being null." }, "version": "4.11.0", "description": "IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.", "dependencies": { "com.unity.ugui": "1.0.0", "com.unity.modules.unitywebrequest": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.services.core": "1.8.2" }, "keywords": [ "purchasing", "iap", "unity" ], "license": "Unity Companion Package License v1.0", "hideInEditor": false, "relatedPackages": { "com.unity.purchasing.tests": "4.11.0" }, "upmCi": { "footprint": "72d426a29282f0ac1ae5c00e4a52102f61fe97f4" }, "documentationUrl": "https://docs.unity3d.com/Packages/com.unity.purchasing@4.11/manual/index.html", "repository": { "url": "https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git", "type": "git", "revision": "d048512094268963253b336dd8eba44548759d38" }, "samples": [ { "displayName": "01 Buying Consumables", "description": "This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.", "path": "Samples~/01 BuyingConsumables" }, { "displayName": "02 Buying Subscription", "description": "This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.", "path": "Samples~/02 BuyingSubscription" }, { "displayName": "03 Fetching Additional Products", "description": "This sample showcases how to fetch additional products using the Store Controller.", "path": "Samples~/03 FetchingAdditionalProducts" }, { "displayName": "04 Integrating Self-Provided Backend Receipt Validation", "description": "This sample showcases how to integrate your own backend validation with Unity IAP.", "path": "Samples~/04 IntegratingSelfProvidedBackendReceiptValidation" }, { "displayName": "05 Local Receipt Validation", "description": "This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.", "path": "Samples~/05 LocalReceiptValidation" }, { "displayName": "06 Initialize Unity Gaming Services", "description": "This sample showcases how to initialize Unity Gaming Services using the Services Core API", "path": "Samples~/06 InitializeGamingServices" }, { "displayName": "Apple App Store - 01 Refreshing App Receipts", "description": "This sample shows how to refresh Apple App Store receipts.", "path": "Samples~/Apple App Store - 01 RefreshingAppReceipt" }, { "displayName": "Apple App Store - 02 Restoring Transactions", "description": "This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.", "path": "Samples~/Apple App Store - 02 RestoringTransactions" }, { "displayName": "Apple App Store - 03 Handling Deferred Purchases", "description": "This sample showcases how to handle deferred purchases using Apple extensions and configurations.", "path": "Samples~/Apple App Store - 03 HandlingDeferredPurchases" }, { "displayName": "Apple App Store - 04 Retrieving Product Receipt", "description": "This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.", "path": "Samples~/Apple App Store - 04 RetrievingProductReceipt" }, { "displayName": "Apple App Store - 05 Fraud Detection", "description": "This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.", "path": "Samples~/Apple App Store - 05 FraudDetection" }, { "displayName": "Apple App Store - 06 Getting Introductory Subscription Prices", "description": "This sample showcases how to use Apple extensions to get introductory subscription offer information.", "path": "Samples~/Apple App Store - 06 GettingIntroductoryPrices" }, { "displayName": "Apple App Store - 07 Getting Product Details", "description": "This sample showcases how to use Apple extensions to get additional product details.", "path": "Samples~/Apple App Store - 07 gettingProductDetails" }, { "displayName": "Apple App Store - 08 Promoting Products", "description": "This sample shows how to Promote Products in the Apple App Store.", "path": "Samples~/Apple App Store - 08 PromptingProducts" }, { "displayName": "Apple App Store - 09 Present Code Redemption Sheet", "description": "This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.", "path": "Samples~/Apple App Store - 09 PresentCodeRedemptionSheet" }, { "displayName": "Apple App Store - 10 Can Make Payments", "description": "This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.", "path": "Samples~/Apple App Store - 10 CanMakePayments" }, { "displayName": "Apple App Store - 11 Family Sharing", "description": "This sample showcases how to use Unity IAP to manage family shared purchases.", "path": "Samples~/Apple App Store - 11 FamilySharing" }, { "displayName": "Apple App Store - 12 Upgrading and Downgrading Subscriptions", "description": "This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.", "path": "Samples~/Apple App Store - 12 UpgradeDowngradeSubscription" }, { "displayName": "Google Play Store - 01 Upgrading and Downgrading Subscriptions", "description": "This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.", "path": "Samples~/Google Play Store - 01 UpgradeDowngradeSubscription" }, { "displayName": "Google Play Store - 02 Restoring Transactions", "description": "This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.", "path": "Samples~/Google Play Store - 02 RestoringTransactions" }, { "displayName": "Google Play Store - 03 Confirming Subscription Price Change", "description": "This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.", "path": "Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange" }, { "displayName": "Google Play Store - 04 Handling Deferred Purchases", "description": "This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.", "path": "Samples~/Google Play Store - 04 HandlingDeferredPurchases" }, { "displayName": "Google Play Store - 05 Fraud Detection", "description": "This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.", "path": "Samples~/Google Play Store - 05 FraudDetection" } ] }