Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Official Unity IAP package 4.11.0 is now available

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

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

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP - Purchasing SDK Updates

    Unity Services Window: Users can install and update in the Cloud Services window, under In-App Purchasing, by pressing the 'Import' or 'Update' button.

    Asset Store: Unity IAP is now also available on the Asset Store at http://u3d.as/xM1.

    Changes (Changelog.md in the Assets/Plugins/UnityPurchasing folder):

    See the last post on this thread for the latest fixes and features to Unity IAP.
     
    Last edited: May 23, 2018
    makaka-org and eppz like this.
  2. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP package 1.6.1 is now available

    ## [1.7.0] - 2016-08-07
    ### Added
    - Samsung Galaxy store support. Preliminary documentation is available [here](https://docs.google.com/document/d/1kUq-AHKyJftUA68xr44mrp7gs_MNxNiQ693s0b7qDdM).
    - Google Play - failed purchases - the [Google Play server response code](https://developer.android.com/google/play/billing/billing_reference.html#billing-codes) is now supplied as the [PurchaseFailedEventArgs.message](https://docs.unity3d.com/ScriptReference/Purchasing.PurchaseFailedEventArgs-message.html) property for failed purchases.
    - Android - it is now possible to choose the store implementation to use at runtime.
    - Make a build containing all store implementations by choosing Window > Unity IAP > Android > "Select store at runtime"

    Code (CSharp):
    1. // Pass the desired store to the module, e.g. Amazon Apps.
    2. var module = StandardPurchasingModule.Instance(AndroidStore.AmazonAppStore);
    ### Fixed
    - Google Play - PurchaseFailureReason.ItemUnavailable and PurchaseFailureReason.BillingUnavailable being reported as 'Unknown' errors.

    ## [1.6.1] - 2016-07-18
    ### Fixed
    - Google Play - fixed non fatal 'IllegalArgumentException: Receiver not registered' warning appearing in crashlogs.
     
    Last edited: Mar 29, 2018
  3. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Released 1.8 with Samsung's Tizen Store now supported, and a couple of bugfixes:

    ## [1.8.0] - 2016-08-23
    ### Added
    - Tizen Store support. Preliminary documentation is available [here](https://docs.google.com/document/d/1A2TidgeV4lY16IcjdU7lX4EIvx6NNfONaph12iT8KyY).

    ### Fixed
    - Google Play - Promo code redemptions not being detected whilst the App is running.
    - Google Play - Guard against spurious SecurityException (additional details [here](https://github.com/googlesamples/android-play-billing/issues/26).)
     
    MrEsquire likes this.
  4. JayR

    JayR

    Joined:
    Aug 2, 2016
    Posts:
    84
    Unity IAP 1.8.1 is now available

    [1.8.1] - 2016-08-30
    Fixed
    • Windows Store - Windows App Compatibility Kit Supported API failure with exposure of Tizen API.
    • Tizen Store - Added sample products and GroupId to IAPDemo.cs
     
  5. achimeno

    achimeno

    Joined:
    Nov 13, 2014
    Posts:
    16
    Tizen Store problem:
    I/Unity ( 3565): Couldn't open /opt/usr/apps/com.luabingo.luabingo/lib/libTizenStore.so, error: /opt/usr/apps/com.luabingo.luabingo/lib/libTizenStore.so: cannot open shared object file: No such file or directory

    I/Unity ( 3565):

    I/Unity ( 3565): (Filename: Line: 192)

    I/Unity ( 3565):

    I/Unity ( 3565): Couldn't open /opt/usr/apps/com.luabingo.luabingo/lib/libTizenStore.so, error: /opt/usr/apps/com.luabingo.luabingo/lib/libTizenStore.so: cannot open shared object file: No such file or directory

    I/Unity ( 3565):

    I/Unity ( 3565): (Filename: Line: 192)

    I/Unity ( 3565):

    I/Unity ( 3565): DllNotFoundException: /opt/usr/apps/com.luabingo.luabingo/lib/libTizenStore.so

    I/Unity ( 3565): at (wrapper managed-to-native) UnityEngine.Purchasing.TizenStoreBindings:setUnityPurchasingCallback (UnityEngine.Purchasing.UnityNativePurchasingCallback)

    I/Unity ( 3565): at UnityEngine.Purchasing.TizenStoreBindings.SetUnityPurchasingCallback (UnityEngine.Purchasing.UnityNativePurchasingCallback AsyncCallback) [0x00000] in <filename unknown>:0

    I/Unity ( 3565): at UnityEngine.Purchasing.TizenStoreImpl.SetNativeStore (INativeTizenStore tizen) [0x00000] in <filename unknown>:0

    I/Unity ( 3565): at UnityEngine.Purchasing.StandardPurchasingModule.InstantiateTizen () [0x00000] in <filename unknown>:0

    I/Unity ( 3565): at UnityEngine.Purchasing.StandardPurchasingModule.InstantiateStore () [0x00000] in <filename unknown>:0

    I/Unity ( 3565): at UnityEngine.Purchasing.StandardPurchasingModule.Configure () [0x00000] in <filename unknown>:0

    I/Unity ( 3565): at UnityEngine.Purchasing.Extension.AbstractPurchasingModule.Configure (IPurchasingBinder binder) [0x00000] in <filename unknown>:0

    I/Unity ( 3565): at UnityEngine.Purchasing.Purchasing
     
  6. ap-unity

    ap-unity

    Unity Technologies

    Joined:
    Aug 3, 2016
    Posts:
    1,519
    Hi @achimeno,

    What device or OS are you currently running this app on?

    Can you confirm what version of the plugin you are using and how the plugin was installed? Are you seeing the "missing" plugin (libTizenStore) in the Plugins/UnityPurchasing/Bin/Tizen folder?
     
    erika_d likes this.
  7. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.8.2 is now available

    ## [1.8.2] - 2016-09-23
    ### Fixed
    - Tizen Store - Product list not delivered to new app or new user
     
  8. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    Can you expain abit more about this problem was it internal TIzen issue or Unity side?
     
  9. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.8.3 is now available

    ## [1.8.3] - 2016-10-13
    ### Fixed
    - iOS crash when calling PurchasingManager.ConfirmPendingPurchase with a product that does not have a transaction ID
    - Ensure tvOS build uses correct correct stub DLL
     
  10. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    @MrEsquire 1.8.2's Tizen change was Unity IAP-side, a logic error in our callback handling.
     
  11. Wadjey

    Wadjey

    Joined:
    Feb 4, 2015
    Posts:
    244
    Hi,
    Why do you removed the "select store at runtime"?! It was very useful feature for me and helped me to save time and avoid submitting my app with the wrong Target Store selected!
    Please restore this feature in the coming update.
     
  12. 00christian00

    00christian00

    Joined:
    Jul 22, 2012
    Posts:
    1,035
    What is CloudMoolah? There is no info on the website.
     
  13. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Hi @00christian00! CloudMoolah is a content and IAP payment aggregator, and partner of Unity's, recently founded to help developers more easily access the complicated Asian market, focusing on Southeast Asia initially.

    They maintain a digital wallet for users fillable by users through a range of payment providers active in Asia, such as MOL. The diverse range of payment providers matches how that market spends money through mobile.

    Their team has joined us this week at Unite LA to talk about their new company in a Session (November 1, Breakout 2, site) and on the showroom floor.

    This app store and IAP solution is currently targeting Android games.
     
  14. 00christian00

    00christian00

    Joined:
    Jul 22, 2012
    Posts:
    1,035
    I understand the wallet thing, but what mean content aggregator? Are they offering an alternative store?
    Because I don't think you can have alternative payment methods on Google Play store.
     
  15. Wadjey

    Wadjey

    Joined:
    Feb 4, 2015
    Posts:
    244
    What's about the removed "select store at runtime" feature?
     
  16. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @Wajdik It's just the menu item that's gone; nothing changed in code. You can still select your Android store at runtime by passing the desired AndroidStore over to the StandardPurchasingModule.Instance at initialization.
     
    nicholasr and Wadjey like this.
  17. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Sorry for being unclear - yes all of that is correct. Cloud Moolah supports distributing applications, and collects payments from several third party payment providers into a Cloud Moolah digital wallet.
     
  18. sevensails

    sevensails

    Joined:
    Aug 22, 2013
    Posts:
    483
    I also have the libTizenStore.so error, I'm testing it on Emulator and I checked the file is inside the tpk file on lib folder :

    Code (csharp):
    1.  
    2. 11-16 18:51:26.416 : INFO / Unity ( 3595 : 3595 ) : DllNotFoundException: /opt/usr/apps/com.sevensails.queensgarden/lib/libTizenStore.so
    3. 11-16 18:51:26.416 : INFO / Unity ( 3595 : 3595 ) :   at (wrapper managed-to-native) UnityEngine.Purchasing.TizenStoreBindings:setUnityPurchasingCallback (UnityEngine.Purchasing.UnityNativePurchasingCallback)
    4. 11-16 18:51:26.416 : INFO / Unity ( 3595 : 3595 ) :   at UnityEngine.Purchasing.TizenStoreBindings.SetUnityPurchasingCallback (UnityEngine.Purchasing.UnityNativePurchasingCallback AsyncCallback) [0x00000] in <filename unknown>:0
    5. 11-16 18:51:26.416 : INFO / Unity ( 3595 : 3595 ) :   at UnityEngine.Purchasing.TizenStoreImpl.SetNativeStore (INativeTizenStore tizen) [0x00000] in <filename unknown>:0
    6. 11-16 18:51:26.416 : INFO / Unity ( 3595 : 3595 ) :   at UnityEngine.Purchasing.StandardPurchasingModule.InstantiateTizen () [0x00000] in <filename unknown>:0
    7. 11-16 18:51:26.416 : INFO / Unity ( 3595 : 3595 ) :   at UnityEngine.Purchasing.StandardPurchasingModule.InstantiateStore () [0x00000] in <filename unknown>:0
    8. 11-16 18:51:26.416 : INFO / Unity ( 3595 : 3595 ) :   at UnityEngine.Purchasing.StandardPurchasingModule.Configure () [0x00000] in <filename unknown>:0
    9. 11-16 18:51:26.416 : INFO / Unity ( 3595 : 3595 ) :   at UnityEngine.Purchasing.Extension.AbstractPurchasingModule.Configure (IPurchasingBinder binder) [0x00000] in <filename unknown>:0
    10.  
    Any advice?
     
  19. codeisresistance

    codeisresistance

    Joined:
    Mar 6, 2015
    Posts:
    8
    IAP library automatically adding READ_PHONE_STATE permission for android.

    Repro:
    - create empty unity project
    - enabled services
    - import IAP library from services tab

    Verification:
    - build to android project
    - look in ProjectFolder/ProjectName/AndroidManifest.xml

    you will note the permission does not exist before adding the library, but is automatically included afterward.

    This did not happen with the previous IAP library (we updated recently to fix the google IAP sandbox bug).

    Any chance anyone can confirm this? I've tested my code paths for sandbox, but will probably revert to old IAP library to fix this and the outstanding moolah issue with WebViewClient.onReceivedSslError

    Edit: Unity Version 5.3.5p6
     
    Last edited: Nov 16, 2016
    MrEsquire likes this.
  20. JayR

    JayR

    Joined:
    Aug 2, 2016
    Posts:
    84
    Most plugins that use native libraries will not work correctly in the Emulator and IAP falls into that category. With respect to "next steps" here it depends on how you were planning to use the Emulator. You can manually swap-out the Tizen store DLL for the "stubbed" version which will eliminate this dependency, but any code that attempts to actually use IAP will then throw an exception.
     
  21. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.9.1 is available.

    Known Issues:
    * On Android an additional READ_PHONE_STATE permission is included. This will be removed in 1.9.2. For more: https://forum.unity3d.com/threads/read_phone_state-permission-on-android.441636/



    ## [1.9.1] - 2016-11-17
    ### Added
    - [Beta] Codeless IAP — UI fields show title, price, and description downloaded from the platform store

    ### Fixed
    - IAPButton component now updates product ID list as the IAP Catalog is being edited
    - IAP Catalog now includes a store ID field for the Cloud Moolah store
    - Fixed a problem with opening a project containing the Unity IAP plugin while IAP was disabled in the Services window
    - IAPButton inspector field for Product ID now works correctly with Undo
    - Set GooglePlay as default Android store AAR fileset. Excludes other store's assets (Java, resource XML, localization), saving ~196kb in default APK. Creates Assets/Plugins/UnityPurchasing/Resources/BillingMode.json in Project. Configure manually with Window > Unity IAP > Android menu, or UnityPurchasingEditor.TargetAndroidStore(AndroidStore).
    - CloudMoolah - update Window > Unity IAP > Android menu checkmarks when CloudMoolah selected

    ## [1.9.0] - 2016-10-31
    ### Added
    - CloudMoolah support. CloudMoolah website [here](http://www.cloudmoolah.com). Preliminary store guide available [here](https://docs.google.com/document/d/1T9CEZe6eNCwgWkq7lLwrEw7rpSbu3_EjcUVgJJL6xA0/edit). Preliminary configuration document available [here](https://docs.google.com/document/d/1dpc3zqsyROeFUVBy9W9pc0sskCPyfhcRnsGxtyITmyQ/edit).
    - [Beta] Codeless IAP tools. Implement IAP by adding IAP Buttons to your project (Window > Unity IAP > Create IAP Button) and configure your catalog of IAP products without writing a line of code (Window > Unity IAP > IAP Catalog). Preliminary documentation is available [here](https://docs.google.com/document/d/1597oxEI1UkZ1164j1lR7s-2YIrJyidbrfNwTfSI1Ksc/edit).
    - [Beta] Google Play - Support for Daydream VR. Requires Unity 5.4+ "GVR" Technical Preview, enabling VR, and including the Daydream SDK. Additional details [here](https://unity3d.com/partners/google/daydream).
    - Samsung Galaxy Store - Added support for receiving auto-recurring subscriptions
    - Highlights chosen Android store in menu Window > Unity IAP > Android

    ### Fixed
    - Remove the menu item to select Android store at runtime
    - Fix an exception that occurred when parsing prices while culture was set to use commas as a decimal separator
     
    Last edited: Mar 29, 2018
    codeisresistance likes this.
  22. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.9.2 is available.

    ## [1.9.2] - 2016-11-29
    ### Fixed
    - GooglePlay - addresses warning about usage of WebViewClient.onReceivedSslError if CloudMoolah.aar is included
    - CloudMoolah - simplify Login API and rename LoginError enum to LoginResultState
    - Android - remove READ_PHONE_STATE permission from AndroidManifest.xml simplifying logic around CloudMoolah Register and Login by removing automatic SystemInfo.deviceUniqueIdentifier calls. Developers may now choose to include this permission using this API to collect a user identifer, or provide an alternate long-lived user identifier, in a CloudMoolah supporting game for the Register and Login API password parameter.
     
  23. spav

    spav

    Joined:
    May 31, 2013
    Posts:
    4
    @nicholasr Unity 5.5.0f3, latest Unity IAP, OSX Sierra
    After updating unity and IAP package (via services panel) selecting "Unity IAP -> Android -> Target Google Play" seems to do nothing and keeps unchecking after android Build & Run. Permission com.sec.android.iap.permission.BILLING is now removed from build and I keep getting error "the item you requested is not available for purchase" in Google Play popup :(
     
  24. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Hi @spav - I believe the first two of these behaviors, while unexpected, are not problematic. I hope these explanations help overall:

    Expect 'Target Android' to: (1) update Assets/Plugins/UnityPurchasing/Resources/BillingMode.json, (2) impact the contents / size of a built APK, and (3) permit interaction with the chosen store (default GooglePlay) when ran on the appropriate device. Please see attached screenshot for reference.

    Expect removal of com.sec.android.iap.permission.BILLING and more store-specific permissions on IAP 1.9.1+ since Samsung IAP and other non-selected Android stores are more aggressively excluded from builds, especially when building after restarting without first using the Unity IAP > Target Android menu. Edit BillingMode.json with value AndroidStore.NotSpecified to restore that advanced and now unsupported old multi-store behavior.

    I speculate "not available for purchase" could indicate the test-device or test-account has a consumable transaction which has not been consumed with GooglePlay - a networking error or crash interrupted the last transaction, which in the best case is fixable by a relaunch of the app. This might also occur when non-consumable products are marked 'PurchaseProcessingResult.Pending' in the ProcessPurchase implementation and a purchase is retried. A stackoverflow contributor provided more avenues to explore here: http://stackoverflow.com/a/35132936/915990 and I feel this checklist is also worth viewing.
     

    Attached Files:

  25. spav

    spav

    Joined:
    May 31, 2013
    Posts:
    4
    Thank you for clarifying things. My issue seems to caused by CloudMoolah security issue. After publishing in Google Play everything work as intended again.
     
    nicholasr likes this.
  26. tigerss

    tigerss

    Joined:
    Oct 11, 2015
    Posts:
    20
    Hello,

    I keep getting this error (Unity 5.5.0xf3 Linux, Ubuntu 14.04)

    DirectoryNotFoundException: Could not find a part of the path ".../Assets/Plugins/UnityPurchasing/resources/BillingMode.json"

    I don't know why it's looking for a folder "resources" because the right folder would be "Resources" and there is no BillingMode.json

    Any advice on this please?
     
    nicholasr and Seraphim-Whiteless like this.
  27. Seraphim-Whiteless

    Seraphim-Whiteless

    Joined:
    Jun 23, 2014
    Posts:
    197
    have same problem at win64 and linux versions
    Code (CSharp):
    1. DirectoryNotFoundException: Could not find a part of the path "/media/disk2/work/prg/Assets/Plugins/UnityPurchasing/resources/BillingMode.json".
    2. System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/FileStream.cs:292)
    3. System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share)
    4. (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
    5. System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/StreamWriter.cs:124)
    6. System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding)
    7. (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string,bool,System.Text.Encoding)
    8. System.IO.File.WriteAllText (System.String path, System.String contents, System.Text.Encoding encoding) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/File.cs:626)
    9. System.IO.File.WriteAllText (System.String path, System.String contents) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/File.cs:621)
    10. UnityEngine.Purchasing.UnityPurchasingEditor.SaveAndroidStoreTarget (AndroidStore enabled)
    11. UnityEngine.Purchasing.UnityPurchasingEditor.TargetAndroidStore (AndroidStore target)
    12. UnityEngine.Purchasing.UnityPurchasingEditor.TargetGooglePlay ()
     
    nicholasr and tigerss like this.
  28. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    @tigres810 and @Seraphim-Whiteless thank you very much for reporting this string-casing issue. A fix is in QA scheduled for release with the next build of Unity IAP.

    An untested workaround might be to symlink resources -> Resources. On linux from the project root dir: ln -s Resources Assets/Plugins/UnityPurchasing/resources
     
    tigerss likes this.
  29. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Closing this thread from general posts, to encourage usage of new threads per-issue.
     
  30. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.9.3 is available.

    ## [1.9.3] - 2017-01-03
    ### Added
    - Windows Store - support for UWP apps running while logged-out of Windows Store. Now fetches app's product metadata if logged out, and requests user sign in to make purchase or to fetch user's purchase history.
    - Editor - diagnostic log at build-time when IAP Service disabled: "Unity IAP plugin is installed, but Unity IAP is not enabled. Please enable Unity IAP in the Services window." Fewer redundant errors.

    ### Fixed
    - Editor - checkmarks refresh for Targeted Android Store after Editor Play/Stop
    - Editor - hides spurious Component MenuItems
    - Linux Editor - BillingMode.json path case-sensitivity
    - IAP Catalog - clearer text for Export button: "App Store Export"
     
  31. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.10.0 is available

    Known Issue:
    * Unity 5.6.0b3 (beta release) iOS Store - Receipt data not forwarded to Analytics for verification. This will be fixed in a future Unity version.
    * Unity 5.6 - Displays multiple times the "Do you want to install Unity IAP" dialog. Subsequent dialogs can be safely cancelled; will not corrupt installation.

    ## [1.10.0] - 2017-01-23
    ### Added
    - Samsung Galaxy Apps - In-App Purchase SDK v4. Simplifies flow for first-time payment users. See [Samsung Developer IAP Documentation](http://developer.samsung.com/iap) for more.
    - Tizen Store - Add support for subscriptions
    - StandardPurchasingModule - Add `bool useFakeStoreAlways` property to override native stores with the local debug FakeStore for rapid prototyping. Will not connect to any App Store when enabled.

    Code (CSharp):
    1. // Enable the FakeStore for all IAP activity
    2. var module = StandardPurchasingModule.Instance();
    3. module.useFakeStoreAlways = true;
    * Editor Updater - Notify the developer when updates to Unity IAP are available with an actionable dialog. Periodically check the Asset Store version and prompt with an upgrade dialog capable of downloading the latest plugin.
    * Editor Installer - Simplify integration of Unity IAP into a Project, avoiding unexpected breakage of the scripting build environment after package installation. Detect and warn if Unity IAP Core Service is "Off" during installation.

    ### Removed
    - Samsung Galaxy Apps - remove In-App Purchase SDK v3 and replaced with v4, above.

    ### Fixed
    - GooglePlay - Fix a problem that occurred when suspending the application during a successful transaction. Previously a consumable product could get stuck in a state where it could not be purchased again until the Google Play cache was cleared.
     
    Last edited by a moderator: Jun 21, 2017
  32. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
  33. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.10.1 is now available.

    ## [1.10.1] - 2017-03-29
    ### Fixed
    - GooglePlay - Suspending and resuming from app-icon while purchase dialog displayed no longer generates both OnPurchaseFailed then ProcessPurchase messages, only whichever callback is correct.
    - Remove cloud JSON exporter that was erroneously showing in the IAP Catalog export list
    - Fixed a bug when parsing localized prices when the device's localization does not match the number format rules for the currency
    - Resolved DLL name conflict by renaming Assets/Plugins/UnityPurchasing/Bin/Common.dll to Purchasing.Common.dll
    - Installer - Suppressed multiple redundant dialogs
     
  34. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.11.0 is now available.

    ## [1.11.0] - 2017-05-01
    ### Added
    - FacebookStore - Facebook Gameroom Payments Lite support. Available on Unity 5.6+ when building for Facebook Platform on Gameroom (Windows) and WebGL. Preliminary documentation is available [here](https://docs.google.com/document/d/1FaYwKvdnMHxkh47YVuXx9dMbc6ZtLX53mtgyAIn6WfU/)
    - Apple platforms - Added experimental support for setting "simulatesAskToBuyInSandbox". Please let us know how this impacts ask-to-buy testability for you.

    Code (CSharp):
    1. extensions.GetExtension<IAppleExtensions>().simulateAskToBuy = true;
    - Apple platforms - Added support for setting "applicationUsername" field which will be added to every payment request to help the store detect fraud.

    Code (CSharp):
    1. // Set the applicationUsername to help Apple detect fraud
    2. extensions.GetExtension<IAppleExtensions>().SetApplicationUsername(hashedUsername);
    ### Requirement
    - GooglePlay - "Android SDK API Level 24 (7.0)" (or higher) must now be installed. To upgrade, either perform the one-time step of setting the project's "Android Player Settings > Other Settings > Minimum API Level" to 24, building an APK, then resetting to the project's previous value. Or, run the `android` Android SDK Manager tool manually and install "Android 7.0 (API 24)". Addresses build error messages: "Unable to merge android manifests." and "Main manifest has \<uses-sdk android:targetSdkVersion='23'> but library uses targetSdkVersion='24'". Note the Minimum API Level support is unchanged; merely the installation of API 24 SDK is now required for Daydream VR.

    ### Fixed
    - GooglePlay Daydream VR - Uses decoration-free Activity for purchasing
    - GooglePlay - Avoids sporadic price serialization exception
    - Apple App Stores - Improve handling of the situation where an attempt to finish a transaction fails (if the user is signed out of the store and cancels the sign in dialog, for example). The Apple store implementation will now remember that the transaction should be finished, and attempt to call finishTransaction again if the transaction is retrieved from the queue again. When this happens, the store will call OnPurchaseFailed with the reason "DuplicateTransaction"—this prevents a situation where a call to InitiatePurchase could result in no call to ProcessPurchase or OnPurchaseFailed.
    - Amazon - Fix for a crash when loading product metadata for subscription parent products
     
    Last edited by a moderator: Jun 21, 2017
    ap-unity likes this.
  35. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.11.1 is now available.

    ## [1.11.1] - 2017-05-23
    ### Fixed
    - GooglePlay - Fix regression seen during purchasing where GooglePlay Activity forces screen orientation to portrait and turns background black. Restores neutral orientation and transparent background behavior.
     
  36. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.11.2 is now available.

    ## [1.11.2] - 2017-05-30
    ### Added
    - Apple platforms - Parse the app receipt when retrieving product information and attempt to set receipt fields on Product. With this change the hasReceipt field on Apple platforms will work more like it does on non-Apple platforms.

    ### Fixed
    - FacebookStore - Better error handling for cases where store configuration changes after purchases have already been made.
    - General - Better momentary memory performance for local receipt validation and other JSON parsing situations.
    - Editor menus - Targeted Android store menu checkmark are set and valid more often.
    - Installer - Fix error seen during install, `ReflectionTypeLoadException[...]UnityEditor.Purchasing.UnityIAPInstaller.<k_Purchasing>`.
     
  37. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.11.3 is now available.

    ## [1.11.3] - 2017-06-20
    ### Fixed
    - Amazon - Purchase attempts for owned non-consumable products are now treated as successful purchases.

    KNOWN ISSUES

    - Apple platforms - a blocking bug exists when building from Unity 5.3.

    Fix will be in 1.11.4.
     
    MrEsquire likes this.
  38. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.11.4 is now available.

    ## [1.11.4] - 2017-06-21
    ### Fixed
    - Apple platforms - Fix a blocking bug when building from Unity 5.3.
     
    MihaPro_CarX likes this.
  39. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.12.0 is now available.

    ## [1.12.0] - 2017-07-25
    ### Added
    - XiaomiMiPay - Add Xiaomi Mi Game Pay app store purchasing for Android devices in China. Add the "Unity Channel" support library and service. Unity Channel helps non-China developers access the Unity-supported Chinese app store market by featuring app store user login and payment management. Use Unity Channel directly for login to Xiaomi. Unity IAP internally uses Unity Channel for Xiaomi payment. Preliminary documentation is available. See also Xiaomi's portal and Unity's partner guide.

    ### Fixed
    - FacebookStore - Fix login and initialization corner-case abnormally calling RetrieveProducts internally
    - Tizen Store - Fix purchasing regression introduced after 1.11.1
    - Mac App Store - Fixes "libmono.0.dylib not found" errors at launch if built via Unity 2017.1. See also Known Issues, below.

    ### Known Issues
    - Mac App Store - Incompatible with Unity 2017.1.0f3: exception will be thrown during purchasing. Fixed in Unity 2017.1.0p1.
     
  40. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.13.0 is now available.

    ## [1.13.0] - 2017-07-31
    ### Added
    - iOS and tvOS - Added support for purchases initiated from the App Store using the new API in iOS 11 and tvOS 11. For more information about this feature, watch the "What's New in StoreKit" video from WWDC 2017. If you intend to support this feature in your app, it is important that you initialize Unity Purchasing and be prepared to handle purchases as soon as possible when your app is launched.
    - Apple platforms - The IAP Catalog tool will now export translations when exporting to the Apple Application Loader format.
    - Apple platforms - Add support for controlling promoted items in the App Store through IAppleExtensions. This feature is available on iOS and tvOS 11. Set the order of promoted items in the App Store with IAppleExtensions.SetStorePromotionOrder, or control visiblility with IAppleExtensions.SetStorePromotionVisibility.

    Code (CSharp):
    1. public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
    2. {
    3.    // Set the order of the promoted items
    4.    var appleExtensions = extensions.GetExtension<IAppleExtensions>();
    5.    appleExtensions.SetStorePromotionOrder(new List<Product>{
    6.        controller.products.WithID("sword"),
    7.        controller.products.WithID("subscription")
    8.    });
    9. }
    Code (CSharp):
    1. public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
    2. {
    3.    // Set the visibility of promoted items
    4.    var appleExtensions = extensions.GetExtension<IAppleExtensions>();
    5.    appleExtensions.SetStorePromotionVisibility(controller.products.WithID("subscription"), AppleStorePromotionVisibility.Hide);
    6.    appleExtensions.SetStorePromotionVisibility(controller.products.WithID("100.gold.coins"), AppleStorePromotionVisibility.Default);
    7. }
    8.  
    ### Changed
    - AndroidStore enum - Obsoleted by superset AppStore enum. Cleans up logging mentioning Android on non-Android platforms.
    - Codeless IAP - IAP Button notifies just one purchase button for purchase failure, logging additional detail.

    ### Fixed
    - Apple platforms - Catch NullReferenceException thrown during initialization when the app receipt cannot be correctly parsed.
    - IAP Catalog - Fix GUI slowdown when typing details for large number of products on Windows.
    - Fix internal MiniJSON namespace exposure, regression introduced in 1.11.2.
     
  41. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.13.1 is now available.

    ## [1.13.1] - 2017-08-18
    ### Fixed
    - Android platforms - Fix Unity crash by stack-overflow when using the `UnityPurchasingEditor.TargetAndroidStore(AndroidStore store)` method or the Window > Unity IAP > Android > Xiaomi Mi Game Pay targeting menu.
     
    Last edited: Sep 15, 2017
  42. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.13.3 is now available. 1.13.2 release was skipped and is contained in 1.13.3.

    ## [1.13.3] - 2017-09-14
    ### Fixed
    - Fixed a bug that caused some iOS 11 promoted in-app purchase attempts to fail when the app was not already running in the background

    ## [1.13.2] - 2017-09-07
    ### Added
    - Android Gradle - Optional Proguard configuration file to support Gradle release builds on Unity 2017.1+: "Assets/Plugins/Android/proguard-user.txt.OPTIONAL.txt". See contents of file for more detail.
    - Installer - Compatibility with Unity 2017.2's Build Settings > Android > Xiaomi Mi Game Center SDK package add button, avoiding duplicate class definitions if previously added to `Packages/manifest.json` (new Package Manager).

    ### Fixed
    - Windows (UWP) Store - Updates error handling for failed purchases to correctly call `OnPurchaseFailed()` with an informative `PurchaseFailureReason`
    - Fixed prices that were incorrectly parsed when the device's culture specified a number format using a comma for the decimal separator.
    - XiaomiMiPay - Limit product identifier length to 40 characters in IAP Catalog, matching store requirements.
    - Receipt Validation - Address aggressive class stripping NullReferenceException when validating receipt with preservation in Assets/Plugins/UnityPurchasing/scripts/link.xml.
     
    ap-unity likes this.
  43. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.14.0 is now available.

    ## [1.14.0] - 2017-09-18
    ### Added
    - Codeless IAP - Added an IAPListener Component to extend Codeless IAP functionality. Normally with Codeless IAP, purchase events are dispatched to an IAPButton UI Component that is associated with a particular product. The IAPListener does not show any UI. It will receive purchase events that do not correspond to any active IAPButton.
    - The active IAPListener is a fallback—it will receive any successful or failed purchase events (calls to ProcessPurchase or OnPurchaseFailed) that are _not_ handled by an active Codeless IAPButton Component.
    - When using the IAPListener, you should create it early in the lifecycle of your app, and not destroy it. By default, it will set its GameObject to not be destroyed when a new scene is loaded, by calling DontDestroyOnLoad. This behavior can be changed by setting the dontDestroyOnLoad field in the Inspector.
    - If you use an IAPListener, it should be ready to handle purchase events at any time, for any product. Promo codes, interrupted purchases, and slow store behavior are only a few of the reasons why you might receive a purchase event when you are not showing a corresponding IAPButton to handle the event.
    - Example use: If a purchase is completed successfully with the platform's app store but the user quits the app before the purchase is processed by Unity, Unity IAP will call ProcessPurchase the next time it is initialized—typically the next time the app is run. If your app creates an IAPListener, the IAPListener will be available to receive this ProcessPurchase callback, even if you are not yet ready to create and show an IAPButton in your UI.
    - Xiaomi - IAP Catalog emitted at build-time to APK when Xiaomi Mi Game Pay is the targeted Android store.
    - Xiaomi - Support multiple simultaneous calls to IUnityChannelExtensions.ConfirmPurchase and IUnityChannelExtensions.ValidateReceipt.

    ### Changed
    - CloudMoolah - Upgraded to 2017-07-31 SDK. Compatible with the 2017 Cloud Moolah developer portal. Add IMoolahConfiguration.notificationURL. Removed deprecated IMoolahExtensions.Login, IMoolahExtensions.FastRegister, IMoolahExtensions.RequestPayOut. Preliminary updated documentation is available.
    - Receipt Validation Obfuscator - Improved UI for collecting Google Play License Keys for receipt validation.
    - Xiaomi - Removed deprecated MiProductCatalog.prop file generation in favor of MiGameProductCatalog.prop for Xiaomi Mi Game Pay Android targets.
    - IAPDemo - Guard PurchaseFailureReason.DuplicateTransaction enum usage to be on Unity 5.6 and higher.
    - Internal - Namespace more root-level incidental classes under UnityEngine.Purchasing or UnityEditor.Purchasing as appropriate.

    ### Fixed
    - Invoke the onPurchaseFailed event on a Codeless IAP button if the button is clicked but the store was not initialized correctly
     
    John1515 likes this.
  44. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.14.1 is now available

    ## [1.14.1] - 2017-10-02
    ### Fixed
    - Apple Application Loader product catalog exporter now correctly exports tab-separated values for catalogs containing more than one product
    - JSONSerializer - Unity 5.3 build-time regression - missing "type" field on ProductDescription. Field is available in 5.4 and higher.
    - FakeStore - uses Product.storeSpecificId instead of Product.id when reporting purchase failures
     
  45. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.15.0 is now available

    NOTE In upcoming v1.15.1 the ProGuard settings will be fully integrated into the respective AAR files for automatically supporting Unity Gradle builds without the need to rename the included proguard-user.txt.OPTIONAL.txt file.

    ## [1.15.0] - 2017-11-13
    ### Added
    - IAP Updates - GUI to control plugin updates in Window > Unity IAP > IAP Updates menu. Supports viewing changelog, skipping this update, disabling automatic updates, and showing current version number. Writes preferences to Assets/Plugins/UnityPurchasing/Resources/IAPUpdaterPreferences.json.

    # Changed
    - IAP Demo - Improved UI and cleaned up code in the IAP Demo sample scene
    - Version Log - Changed logging of Unity IAP version (e.g. "1.15.0") to be only at runtime and not while in the Editor

    ### Fixed
    - Facebook - Correctly handles situations where the number of available products exceeds the Facebook server response page size
    - Updater will no longer prompt for updates when Unity is running in batch mode
    - Gradle - Include and relocate sample Proguard configuration file to Assets/Plugins/UnityPurchasing/Android/proguard-user.txt.OPTIONAL.txt; was missing from 1.13.2
    - Security - Upgrades project to autogenerate UnityChannelTangle class if missing when GooglePlayTangle obfuscated secret receipt validation support class is present.
    - UnityIAPUpdater - Fix a FormatException sensitivity for DateTime parsing
    - Xiaomi Catalog - Fix a NullReferenceException seen when exporting an empty catalog
    - Xiaomi Receipt Validation - Fix missing UnityChannelTangle class for Unity IAP projects which used receipt validation
     
    lifeisfunxyz and MrEsquire like this.
  46. laurenfr

    laurenfr

    Joined:
    Oct 19, 2017
    Posts:
    3
    Unity IAP 1.16.0 is now available

    ## [1.16.0] - 2018-01-25
    ## Changed
    - GooglePlay - Gradle builds will 'just work'. Internalized Proguard warning-suppression configurations. (Moved `proguard-user.txt.OPTIONAL.txt` into GooglePlay.aar, effectively.)
    - Replaced Apple Application Loader product catalog exporter with Apple XML Delivery product catalog exporter, because submitting IAP via Application Loader is now deprecated

    ### Added
    - Security - Adds the `IAppleExtensions.GetTransactionReceiptForProduct` method that returns the most recent iOS 6 style transaction receipt for a given product. This is used to validate Ask-to-buy purchases. [Preliminary documentation](https://docs.google.com/document/d/1YM0Nyy-kTEM2YGpOxVj20kUBtyyNKndaXWslV0RF_V8) is available.
    - Apple - Adds an optional callback, `IAppleConfiguration.SetApplePromotionalPurchaseInterceptorCallback`, that intercepts Apple Promotional purchases in iOS and tvOS. Developers who implement the callback should call `IAppleExtensions.ContinuePromotionalPurchases` to resume the purchase flow. [Preliminary documentation](https://docs.google.com/document/d/1wQDRYoQnTYoDWw4G64V-V6EZbczpkq0moRf27GKeUuY) is available.
    - Xiaomi - Add support for retrieving developer payload. [Preliminary documentation](https://docs.google.com/document/d/1V0oCuCbb7ritK8BTAMQjgMmDTrsascR2MDoUPXPAUnw) is available.

    ### Fixed
    - Removed Debug log from UnityIAP StandardPurchasingModule
    - Xiaomi - Remove unnecessary Android WRITE_EXTERNAL_STORAGE permission.
     
    ap-unity likes this.
  47. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    Unity IAP 1.17.0 is now available

    ## [1.17.0] - 2018-02-21
    ### Added
    - Unity IAP Promo - [Beta] Supports new Unity Ads feature to advertise IAPs inside advert placements.

    ### Changed
    - Codeless IAP - Allow developers to use both IAPButton and IAPListener simultaneously. Broadcasts ProcessPurchase and OnPurchaseFailed to all productId-matching IAPButtons and to all IAPListeners. Allow multiple IAPListeners to be set using the AddListener method. Note: This change may increase the chance one rewards users multiple times for the same purchase.
     
    ap-unity likes this.
  48. laurenfr

    laurenfr

    Joined:
    Oct 19, 2017
    Posts:
    3
    Unity IAP 1.18.0 is now available

    ## [1.18.0] - 2018-03-27
    ### Added
    - Unity IAP E-Commerce - [Closed Beta] Supports new "managed store" functionality. Contact <iapsupport@unity3d.com> to learn more.
     
  49. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    This new release brings you improved subscription support, extended error code for platform specific issues, and a new “automatic initialization” option for Codeless IAP users.

    Improved support for subscription:
    • This version introduced a new class SubscriptionManager that provides you with extended information about IAP subscription products (currently supports Apple Store and Google Play store, more platform support coming soon).
    • Note that on Google Play store, the extended subscription information will be available only on products purchased using this version of IAP SDK (1.19) or newer. Products purchased on older SDK versions do not have the additional meta data in the "developerPayload" that are needed to parse the subscription information.
    Extended error code for platform specific issues:
    • Added the StoreSpecificPurchaseErrorCode enum. Currently contains values for all Apple and Google Play error codes that are returned directly from the store.
    • Added the ITransactionHistoryExtensions extension. Developers can call GetLastPurchaseFailureDescription() and GetLastStoreSpecificPurchaseErrorCode() to get extended debugging/error information.
    Automatic initialization for Codeless IAP:
    • Added an automatic initialization option for projects using Codeless IAP integration to help make the purchasing system available early on after the game starts.
    • You’ll see a new checkbox inside the IAP Catalog (only visible for projects using the Codeless IAP catalog feature). Checking this option will let the IAP SDK automatically initialize the purchasing system on game start using the products contained in the catalog.
    Other changes:
    • For GooglePlay store, developerPayload is now encoded to base64 string and formatted to a JSON string with two other information of the product. When extracting developerPayload from the product receipt, firstly decode the JSON string and get the developerPayload field base64 string, secondly decode the base64 string to the original developerPayload.
     
    Last edited by a moderator: May 23, 2018
    unityjingyao likes this.
  50. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    An update is available for Unity IAP, v1.20.0.

    Additional support for subscription:

    • This version now supports upgrading / downgrading subscription tiers for Google Play store.
    • We now bring feature parity of subscription feature to Amazon store, providing extended information about IAP subscription products

    Improve developer experience:

    • Added extension function to get product skuDetails on GooglePlay
    • Added enhanced error code support for Amazon
    • Moved Product Catalog data outside of Assets/Plugins/UnityPurchasing folder to avoid accidentally deleting the IAP catalog definition when cleaning the project assets
    • Added enriched product details and receipt details for Amazon receipt

    SDK stability improvements :

    • Fixed an issue where Unknown products (including non-consumables) were consumed during initialization.
    • Fix of subscription period calculation error
    • Fixed ArgumentException error where currency was set to null string when purchase was made.
     
    Last edited: Jun 29, 2018
Thread Status:
Not open for further replies.