Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Unity Unity IAP Store package 2.0.0 is now available

Discussion in 'Unity IAP' started by nicholasr, Jul 12, 2016.

Thread Status:
Not open for further replies.
  1. laurenfr

    laurenfr

    Unity Technologies

    Joined:
    Oct 19, 2017
    Posts:
    3
    Unity IAP 1.21.0 is available for developers needing access to the Unity Distribution Platform Beta

    Added
    UDP module, currently in closed beta. This release did not modify any other IAP functionality.
     
  2. thabang_unity

    thabang_unity

    Unity Technologies

    Joined:
    Jan 9, 2018
    Posts:
    1
    Unity IAP 1.20.1 is now available

    1.20.1: Replaces IAP 1.21 as stable release for non-UDP IAP developers. Those requiring UDP support should remain on 1.21.

    Developers currently using Unity IAP 1.21 that do not need support for the Unity Distribution Platform (UDP) Beta on Android should transition to this release.

    Added
    • Added a callback function that allows developers to check the state of the upgrade/downgrade process of subscriptions on GooglePlay.
    Fixed
    • Google Daydream - Correctly Displays IAP Prompt in 3d VR version instead of native 2D.
    • Fixed issue where IAP catalog prevented deletion of Price under Google Configuration.
    • Amazon Store - Fixed bug where Amazon store could not correctly parse currencies for certain countries.
    • MacOS - Fixed bug that causes non-consumables to auto-restore on MacOS apps after re-install, instead of requiring the the Restore button to be clicked.
    • Updated Android Response Code to return correct message whenever an activity is cancelled.
    • Fixed Mono CIL linker error causing initialization failure in Unity 5.3
    • Fixed inefficient Apple Receipt Parser that was slowing down when a large number of transactions were parsed on auto-rest
     
    Last edited by a moderator: Oct 10, 2018
  3. ap-unity

    ap-unity

    Unity Technologies

    Joined:
    Aug 3, 2016
    Posts:
    1,388
    UnityIAP 1.22.0 now available. You can install via the Asset store or the Services Window

    [1.22.0] - 2019-03-18
    Added

    - Added Unity Distribution Portal (UDP) module as an Android build target. Unity Distribution Portal streamlines your distribution process. UDP allows you to only build one version of your game, centralize the management of your marketing assets and metadata, and submit your content to multiple app stores, all in the same workflow. For more details, please refer to https://docs.unity3d.com/Packages/com.unity.purchasing.udp@1.0/manual/index.html.
    - Added extension function for Apple store to expose products’ sku details
    - Added support for developer to include accountId in getBuyIntentExtraParams, this data helps Google analyze fraud attempts and prevent fraudulent transactions.
    - Added GooglePlay store extension function to support restore purchases.
    - Added GooglePlay store extension function to support consume(finish transaction) a purchase manually.

    Fixed
    - Fixed UWP build errors.
    - Fixed errors when initializing with two purchasing modules on WebGL & Windows Standalone.
    - Fixed not “re-importing required assets” when switching build targets with IAP.
    - Re-enabled Facebook IAP implementation for non-Gameroom Canvas apps.
    - Fixed GooglePlay store consumable products already owned error due to network issues.
    - Fixed wrong product id when cancel a subscription product purchase.
     
    benbenmushi likes this.
  4. nicholasr

    nicholasr

    Unity Technologies

    Joined:
    Aug 15, 2015
    Posts:
    129
    Unity IAP 1.23.0 is now available. Install via the Asset Store or the Services Window.

    Note 1.22.1 is also incorporated into 1.23.0.

    ## [1.23.0] - 2019-10-16
    ### Added
    - UDP - Upgrade to version 1.2.0: new installer to manage previously-installed versions in Project; new UI for UDP Settings window; injection of SDK version information into app manifest; premium game support; user permissions aligned between Unity editor and UDP console; improved security around the transmission of telemetry data (the data you see in your reporting dashboard) between the repacked games and the UDP backend.

    ### Changed
    - UnityChannel / Xiaomi - Please use Unity Distributation Platform (UDP) for Xiaomi functionality. Removed UnityChannel.unitypackage from installer. Disabled and deprecated related APIs: `UnityEngine.Store`, `IUnityChannelExtensions`, `IUnityChannelConfiguration`.
    - Tizen - NOTICE Tizen Store support will be removed in an upcoming release.

    ### Fixed
    - Improved installer compatibility with Unity 2018.4 and 2019.x

    ## [1.22.1] - 2019-08-13
    ### Fixed
    - GooglePlay - SubscriptionInfo.getSubscriptionInfo() KeyNotFoundException when parsing receipts which omit expected fields.
    - GooglePlay - IStoreListener.OnInitializeFailed / IStoreCallback.OnSetupFailed should return InitializationFailureReason.AppNotKnown error when user changes password off-device - user must login. Previously erroneously generated infinite error 6 codes when fetching purchase history after password change.
    - OverflowException when initializing if device locale used the comma (“,”) character as decimal separator.

    Sample for manual installer GUI dialog, seen in most Unity versions (excepting 5.6 .. 2018.3):
     
    Last edited: Oct 17, 2019
    Egil-Sandfeld likes this.
  5. nicholasr

    nicholasr

    Unity Technologies

    Joined:
    Aug 15, 2015
    Posts:
    129
    Unity IAP 1.23.1 is now available. Install via the Asset Store or the Services Window.

    Note, this reverts a Google Play change impacting offline purchases and consumption.

    ## [1.23.1] - 2019-11-18
    ### Added
    - UWP - Additional logging during initialization to diagnose developer portal misconfigurations. See https://docs.microsoft.com/en-us/wi...w-to-use-product-ids-for-add-ons-in-your-code for a broad discussion of Windows.ApplicationModel.Store configuration.

    ### Fixed
    - GooglePlay - Fix offline purchases inconsistently generating OnPurchaseFailed callbacks. Changes 1.22.0 "Fixed GooglePlay store consumable products already owned error due to network issues." - developers may choose to handle the `PurchaseFailureReason.DuplicateTransaction` for a ProductType.Consumable by rewarding the user with the product, and presuming that Unity IAP will automatically complete the transaction.
    - Improved compatibility with Unity 5.3 and 5.4.
     
  6. nicholasr

    nicholasr

    Unity Technologies

    Joined:
    Aug 15, 2015
    Posts:
    129
    Unity IAP 1.23.2 is now available. Install via the Asset Store or the Services Window.

    This improves Google Play stability around purchase-flow interruptions - e.g network, or closing the app while purchasing.

    COMPATIBILITY

    The 1.23.x series is the last version of the IAP SDK to be compatible with the 5.x Unity Editor.

    Also, IAP SDK will be removing the direct integration for the following app stores:
    CHANGES

    ## [1.23.2] - 2020-06-17
    ### Added
    - GooglePlay - Improves the chance of successfully purchasing a Consumable or NonConsumable when the _purchase flow_ is interrupted. Also addresses the dialog, "Your order is still being processed".
    - Unity IAP will now detect this _purchasing_ failure. It will call the `IStoreListener.OnPurchaseFailed` API, initially. Then it will query Google Play for purchase success during the current app session until network is restored, and it will continue querying in the next app session, after a restart. It will finally call the `IStoreListener.ProcessPurchase` API if it finds a successful, unaccounted purchase.
    - Addresses the case where (1) a consumable or nonconsumable purchase flow is started and (2) a network disruption occurs, or the app is sent to the background and the purchasing Activity is canceled, or the app is terminated.
    - GooglePlay - Improves the chance of successfully repurchasing a Consumable whose successful transaction failed however to be _completed_ during the current app session.
    - Unity IAP will now detect this _consumption_ failure. It will automatically retry completing the purchase until it succeeds. Note that `DuplicateTransaction` may still be reported while the retry is ongoing, until the user's product is repurchasable again. See below for new APIs to monitor the consumption flow.
    - Addresses the case where (1) a Consumable purchase calls `IStoreListener.ProcessPurchase`, then (2) the transaction is completed by returning `ProcessPurchaseResult.Complete` from `IStoreListener.ProcessPurchase` or by directly calling `IStoreController.ConfirmPendingPurchase` [internally this always records the transaction identifier to the TransactionLog], and finally (3) an interruption (network or exit) aborts the transaction consumption. Only restarting the app or refunding the purchase would reliably resolve this case.
    - GooglePlay - Adds an `"isOwned" : <boolean>` sub-entry to the `Product.receipt`'s `"Payload"` JSON entry in order to help developers understand this product's current ownership state.
    - Contains `true` if the product is owned by the user. And please note that `true` may also indicate that Unity IAP is actively retrying consumption. Its boolean value will be `false` if the product is available for repurchase, or if we do not yet know Google Play's current status for this product. To clarify the receipt structure, `"isOwned"` is located in the Google Play-specific escaped-JSON sub-document. Sample `Product.receipt`, abbreviated: `{"Payload":"{\"json\": ..., \"signature\": ..., \"isOwned\":true}}"`. See the Google Play section of the [Unity IAP Receipt receipt documentation](https://docs.unity3d.com/Manual/UnityIAPPurchaseReceipts.html) for more on the receipt JSON structure.
    - GooglePlay - Adds `boolean IGooglePlayStoreExtensions.IsOwned(Product)` API to conveniently extract the new ownership state, above, from the Google Play JSON receipt.
    - Returns `true` if the product is still owned by the user. Returns `false` if the product is available for repurchase. Example:
    ```extensionProvider.GetExtension<IGooglePlayStoreExtensions>()```
    ```.IsOwned(storeController.products.WithID("100.gold.coins"));```.
    - GooglePlay - Adds `void IGooglePlayStoreExtensions.SetLogLevel(int level)` API to reduce logging.
    - `level` defaults to the legacy value of `0` and configures the Google Play Java store integration to emit debug, info, warning, and error logs. Setting `1` will restrict logging to emit only warnings and errors. Example: `extensionProvider.GetExtension<IGooglePlayStoreExtensions>().SetLogLevel(1)`.

    ### Fixed
    - GooglePlay - After the purchasing dialog, "You already own this product" from Google Play is shown, the `IStoreListener.OnPurchaseFailed` API is calls with an error of `PurchaseFailureReason.DuplicateTransaction`.
    - Unity IAP now treats "You already own this product" as a successful purchase, and _also_ calls `IStoreListener.ProcessPurchase`. Note: This amends the related behavior introduced in 1.23.1.
    - Addresses the scenario where (1) a Consumable is purchased, and during purchasing (2) the Google Play store is interrupted by e.g. a network disruption. (3) Unity IAP correctly calls `IStoreListener.OnPurchaseFailed`, reporting the interruption as a purchase failure. (4) The user restores the network, attempts to re-purchase, Google Play shows "You already own this product", and Unity IAP reports the message as an error, calling `IStoreListener.OnPurchaseFailed` again. (4.1) Repeated re-purchase attempts fail, also potentially failing even after restarting the app.
     
  7. nicholasr

    nicholasr

    Unity Technologies

    Joined:
    Aug 15, 2015
    Posts:
    129
    Unity IAP 1.23.3 is now available. Install via the Asset Store or the Services Window.

    Some of 1.23.2's Google Play changes are now off by default; they are now opt-in. Developers who have access to a post-purchase transaction de-duplication game server may choose to reenable and opt-in to the historical purchase query reconciliation change.

    COMPATIBILITY (repeat)

    The 1.23.x series is the last version of the IAP SDK to be compatible with the 5.x Unity Editor.

    Also, IAP SDK will be removing the direct integration for the following app stores:
    CHANGES

    ## [1.23.3] - 2020-06-28
    ### Changed
    - GooglePlay - Default the failed-purchase recovery behavior to be disabled, which was introduced in `1.23.2`, to address players deleting their game's TransactionLog and receiving multiple products for a single purchase. Opt-in to the `1.23.2` behavior with `bool IGooglePlayConfiguration.aggressivelyRecoverLostPurchases = true;`, when also using a game server capable of validating each transaction and deduplicate based upon `Product.transactionID`, to reward players one time for a single purchase and support quickly recovering from interrupted-purchases.
    - When a Google Play purchase is made the transaction can become out of synchronization with the Google Play server, appearing to be both failed on the game, and contradictorily successful on the Google Play store — an email message indicating purchase success may be received by the player. This desynchronization occurs when a purchase is interrupted while the native purchasing dialog is displayed to the player. Enable this feature to more aggressively detect these lost purchases.
    - NOTICE: It is strongly recommended this feature be used with an off-device transaction de-duplication mechanism to avoid double-rewarding the player. An example is a game server which records Product.transactionID for each successful purchase and reports to the game whether a new transaction has already been processed for this player during a previous gameplay session. The scenario this occurs is when a player purchases a product, uninstalls and reinstalls their game — erasing Unity IAP’s on-device TransactionLog de-duplication database — and then the player attempts and aborts a re-purchase by cancelling it. The purchase cancellation is one trigger for this recovery feature which may result in recovering and notifying a duplicate success to the game for only the initial purchase. The game could then deny rewarding the player for this detected duplicate purchase.
    - KNOWN-ISSUE: CrossPlatformValidator may show these historically-restored transactions as invalid.
     
  8. nicholasr

    nicholasr

    Unity Technologies

    Joined:
    Aug 15, 2015
    Posts:
    129
    Unity IAP 1.23.4 is now available. Install via the Asset Store or the Services Window.

    COMPATIBILITY (repeat)

    The 1.23.x series is the last version of the IAP SDK to be compatible with the 5.x Unity Editor.

    Also, IAP SDK will be removing the direct integration for the following app stores:
    CHANGES

    ## [1.23.4] - 2020-07-13
    ### Added
    - Security - Supports receipts from GooglePlay which omit `packageName`. These as are seen from v1.23.2's purchase-recovery features.
    - The purchasing receipt's `packageName` is omitted by a GooglePlay historical purchase query APIs used by v1.23.2. When the RSASSA-PKCS1-v1_5 signature is valid and the receipt's `packageName` is not included, the `appBundleId` / `googleBundleId` input into `UnityEngine.Purchasing.Security.CrossPlatformValidator` is ignored. To avoid replay attacks we encourage developers continue heuristically scrutinizing the returned `purchaseTime` and `productId` values found in decoded receipts.

    ### Removed
    - Analytics - For publication to Kids Category on Google Play and Apple App Store, removed `SystemInfo.deviceUniqueIdentifier` collection and sharing with `ecommerce.iap.unity3d.com` server.
     
  9. nicholasr

    nicholasr

    Unity Technologies

    Joined:
    Aug 15, 2015
    Posts:
    129
    Unity IAP 1.23.5 is now available. Install via the Asset Store or the Services Window.

    COMPATIBILITY (repeat)

    The 1.23.x series is the last version of the IAP SDK to be compatible with the 5.x Unity Editor.

    Also, IAP SDK will be removing the direct integration for the following app stores:
    CHANGES

    ## [1.23.5] - 2020-08-12
    ### Fixed
    - GooglePlay - Fixed `IGooglePlayConfiguration.aggressivelyRecoverLostPurchases == false` (default) to reward players for currently in-flight purchases only, and not historical purchases, when the player cleans their device's TransactionLog, starts and cancels a purchase, and restarts the app.
     
  10. nicholasr

    nicholasr

    Unity Technologies

    Joined:
    Aug 15, 2015
    Posts:
    129
    Unity IAP 2.0.0 is now available. Install via the Asset Store or the Services Window.

    This release removes supporting APIs and implementations for the built-in copy of the Unity Distribution Platform (UDP) app store abstraction layer — now available as a separate Unity Package, and also the custom Tizen, CloudMoolah, and Xiaomi app stores.

    CHANGES

    ## [2.0.0] - 2020-07-15
    ### Removed
    - UnityChannel / Xiaomi - Completed deprecation, removing related APIs: `UnityEngine.Store`, `IUnityChannelExtensions`, `IUnityChannelConfiguration`.
    - CloudMoolah - Removed.
    - Tizen - Removed.
    - UDP package is no longer installed as a prerequisite

    ### Added
    - UWP - Additional logging during initialization to diagnose developer portal misconfigurations. See https://docs.microsoft.com/en-us/wi...w-to-use-product-ids-for-add-ons-in-your-code for a broad discussion of Windows.ApplicationModel.Store configuration.
    - UDP - if not installed or up-to-date, a menu will prompt you to install or update it upon selecting UDP support features. (See below)

    ### Fixed
    - Reduced logging during initialization and purchasing
    - Amazon - Removed KeyNotFoundException after purchase failure
    - UDP - Removed one NullPointerException vulnerability
    - GooglePlay developerPayload spurious JSON parsing exception in log

    ### Changed
    - IAP Updater "Updater Settings..." button now reads "More Information..." to be more accurate
    - UDP store implementation is still available, but must be installed in a separate module, available in either Asset Store or Package manager. The UDP module will need to be updated manually. (See above)
    - Visibility of INativeStores is now public, mainly to support the new UDP package's needs
    - Resource files - The Product Catalog, Android Target Billing Mode, and Receipt Obfuscator Tangle files will be moved out of the plugins folder.

    ### Important upgrade note
    - **Upgrading from prior Unity IAP?** - Unity may generate a _bad Android build_ once, immediately after installing the upgrade to this version of Unity IAP. Unity will be misconfigured to incorrectly include multiple Andriod app store Java implementations. So **if a dialog appears asking permission to update e.g. the "SamsungApps.aar" file's metadata, during the first build after the upgrade to this version of Unity IAP,** then click Yes, cancel the build, and rebuild. This dialog undesirably defeats Unity IAP's system for including one Android app store (Window > Unity IAP > Android > Target {app store}), resulting in the inclusion of Android Java code for two app stores. Android app stores such as Google Play and Samsung Apps may block publication of an APK which is detected to include Java code for two app store. Restarting Unity after upgrading will also avoid this dialog.
     
Thread Status:
Not open for further replies.
unityunity