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

Introducing Unibill - the cross platform In App purchase plugin!

Discussion in 'Assets and Asset Store' started by Banderous, Jan 16, 2013.

  1. NateJC

    NateJC

    Joined:
    Apr 10, 2012
    Posts:
    58
    I imported the Unibill project into Unity 5 and tried to run the unibillDemo scene. I was getting "!tag.empty()" errors, but these were fixed by changing the Tags on Camera and Unibill from undefined to "Untagged" (in-case anyone else has this issue). Other then that, it appears it is working so far.
     
  2. FIllbiker

    FIllbiker

    Joined:
    Jun 9, 2010
    Posts:
    118
    I have purchased Unibill ca year ago from outlinegames.com directly and don't know how to update the plugin now. In Unity asset store is missing in purchases offcourse. Can you tell me where can I get the latest version? I can't build Xcode project with Unity 5 because of issues in Unibill, I'm sure it is because of an old version of this plugin in my project.
     
  3. ababab5

    ababab5

    Joined:
    Apr 15, 2014
    Posts:
    508
    Hi,

    I just received this message from Amazon :

    Thank you for your recent submission of qq (package: fr.appadvisory.qq). It requires your immediate attention due to the following reason(s):

    We have received your application that uses our In-App Purchasing API; however we are unable to commence testing until your app calls the notifyFulfillment() method to track the fulfillment of a purchase. One new feature of IAP v2.0 is the addition of a new method notifyFulfillment() to track the fulfillment of a purchase. This method check the status of purchase receipts and notify Amazon about the status of an item's fulfillment.

    For additional clarification, please refer to the In-App Purchasing API documentation in the Distribution Portal at https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs-v2/migrate-iapv1-apps-to-iapv2

    Please refer to the documentation in the Distribution Portal to see how to correctly implement notifyFulfillment() at https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs-v2/implement-consumables-entitlements-and-subscriptions-in-iap-2.0

    Please complete the submission of your IAP items at your earliest convenience.



    What is the solution ?

    Thanks !
     
  4. NickSergeev

    NickSergeev

    Joined:
    Dec 19, 2012
    Posts:
    15
    Hello Banderous, we're happy to use your great plugin.
    I have a question regarding Apple Hosted Content feature - we're now have a requirement to use this for our downloadable content, so the question is: according to Apple docs we should be able to access additional properties, methods and handle additional states on SKPaymentQueue, let's say that we would like to continue to use your plugin but add this functionality - do you have any suggestion on how this can be done? Thanks!
     
  5. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    As a reminder to all, support@outlinegames.com is the primary channel for Unibill support.

    @NickSergeev We offer Unicontent as a cross platform DLC solution. Unibill doesn't support Apple hosted content, you would need to modify Unibill yourself.
     
  6. loayB

    loayB

    Joined:
    Feb 17, 2015
    Posts:
    1
    Does unibill only support games or it could work with a service across the various platforms?
    Also, does it work on a website?
     
  7. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @loayB Unibill could be used to build non games in the same way Unity can. Web payments are not supported.
     
  8. KamiKaze425

    KamiKaze425

    Joined:
    Nov 20, 2012
    Posts:
    207
    Any plans to update Unibill for 64-bit iOS? Just getting warnings that says:
    Implicit conversion loses integer precision: 'NSUInteger' (aka 'unsigned long') to 'int'
     
  9. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @KamiKaze425 Unibill should work fine in a 64 bit build, that warning should not have any behavioural effect.
     
  10. KamiKaze425

    KamiKaze425

    Joined:
    Nov 20, 2012
    Posts:
    207
    Oh ok. Just my warning log on XCode is realllly long from all of those (not just from your plugin)
     
  11. Kobutapapa

    Kobutapapa

    Joined:
    Feb 25, 2015
    Posts:
    7
    We've been testing development builds of our app using Unibill against the sandbox without trouble for some time. Yesterday one of our developers performed an archive build which he tested on an iOS8 device and we're experiencing a problem. Unibill appears to initialise as expected. But when an item is clicked for purchase we receive the following in the error log immediately:

    Unibill: No App Receipt found!

    Any tips as to what we may be doing wrong? Or if there is anything special we need to be doing to test an archive build?
     
  12. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Kobutapapa Does the purchase proceed as expected? That message is not necessarily indicative of a problem and should no longer be seen once a purchase has been completed.
     
  13. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @KamiKaze425 Those warnings will be fixed in future releases.
     
    KamiKaze425 likes this.
  14. Kobutapapa

    Kobutapapa

    Joined:
    Feb 25, 2015
    Posts:
    7
    @Banderous Sorry I may have gone off half cocked. It seems our devs may have been experiencing an unrelated problem and were eager to point the finger at the only thing in the logs they didn't fully understand.

    Am I right in understanding that on first run of an archive build no app receipt exists, but this is not a problem as one will be created upon the completion of a successful purchase?

    Thanks for your hard work, and tireless support.
     
  15. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Kobutapapa You're welcome! You are correct, the app receipt is generated and signed by apple so it is not present until a purchase is made or transactions are restored for reinstalls.
     
  16. ivantro

    ivantro

    Joined:
    May 3, 2014
    Posts:
    9
    @Banderous Hi, is there a way that I can get a list of the contents of the inventory from the json file through Unibill's API? I'm trying to read AllPurchasableItems when the device is offline but I'm getting a NullReferenceException. Thanks
     
  17. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @ivantro You should be able to read AllPurchasableItems so long as you have first initialised unibill, even if the init is still in progress.

    On another note to all who may be concerned, there is an updated version available that fixes Windows Phone crashes in more recent Unity versions. This will shortly be included in a Unity 5 release.
     
  18. NoseKills

    NoseKills

    Joined:
    Jun 4, 2013
    Posts:
    25
    About Initialising Unibill successfully, then putting on iOS IAP restrictions
    Old posts

    Seems like this one hasn't yet been addressed. Currently we are using a hack that turns the native call private -> public so we can check the status just before initiatePurchase()
    Code (csharp):
    1.  
    2. StoreKitPluginImpl
    3. {
    4.      [DllImport("__Internal")]
    5.      public static extern bool _storeKitPaymentsAvailable();
    6.  
    Would be sweet to get an official way to do this
     
  19. giorgos_gs

    giorgos_gs

    Joined:
    Apr 23, 2014
    Posts:
    623
    Today I tried the new Unity 5 and there is a build error in Windows Store Apps and WP8.
    In Editor it plays ok but when I try to build the App I get this error:

    WINDOWS STORE:
    Plugin 'unibill.dll' is used from several locations: Assets/Plugins/unibill.dll would be copied to <PluginPath>/unibill.dll Assets/Plugins/Metro/unibill.dll would be copied to <PluginPath>/unibill.dllPlease fix plugin settings and try again.UnityEditor.Modules.DefaultPluginImporterExtension:CheckFileCollisions(String)UnityEditorInternal.PluginsHelper:CheckFileCollisions(BuildTarget) (at C:/buildslave/unity/build/Editor/Mono/Plugins/PluginsHelper.cs:25)UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()Plugins colliding with each other.

    WP8:
    Plugin 'unibill.dll' is used from several locations: Assets/Plugins/unibill.dll would be copied to <PluginPath>/unibill.dll Assets/Plugins/WP8/unibill.dll would be copied to <PluginPath>/unibill.dll
    Please fix plugin settings and try again.UnityEditor.Modules.DefaultPluginImporterExtension:CheckFileCollisions(String)UnityEditorInternal.PluginsHelper:CheckFileCollisions(BuildTarget) (at C:/buildslave/unity/build/Editor/Mono/Plugins/PluginsHelper.cs:25)UnityEditor.HostView:OnGUI()Plugins colliding with each other.
     
  20. giorgos_gs

    giorgos_gs

    Joined:
    Apr 23, 2014
    Posts:
    623
    I use Unity 5 Windows 64bit
     
  21. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @giorgos_gs dealt with via email. As previously stated people should contact support for a pre release unity package.
     
  22. giorgos_gs

    giorgos_gs

    Joined:
    Apr 23, 2014
    Posts:
    623
    I used the pre release package for Unity 5 but it cannot be build for Windows Store Apps, it has this error:

    ArgumentException: Assets\Plugins\unibillosx.bundle is a directory
    System.IO.File.Copy (System.String sourceFileName, System.String destFileName, Boolean overwrite) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.IO/File.cs:109)
    UnityEditor.FileUtil.UnityFileCopy (System.String from, System.String to, Boolean overwrite) (at C:/buildslave/unity/build/Editor/Mono/FileUtil.cs:207)
    UnityEditor.FileUtil.UnityFileCopy (System.String from, System.String to) (at C:/buildslave/unity/build/Editor/Mono/FileUtil.cs:239)
    MetroPlugin.InstallPlugins (System.String stagingArea, WSASDK wsaSDK, .LibraryCollection libraryCollection) (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/MetroPlugin.cs:97)
    PostProcessMetroPlayer.PostProcessSDKSpecific (WSASDK targetSDK, BuildTarget target, BuildOptions options, System.String playerPackage, System.String stagingArea, .ProjectImages images, .LibraryCollection libraryCollection) (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/PostProcessMetroPlayer.cs:804)
    PostProcessMetroPlayer.PostProcess (BuildTarget target, BuildOptions options, System.String installPath, System.String stagingAreaData, System.String stagingArea, System.String playerPackage) (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/PostProcessMetroPlayer.cs:597)
    UnityEditor.Metro.BuildPostprocessor.PostProcess (BuildPostProcessArgs args) (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/ExtensionModule.cs:84)
    UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316)
    UnityEditor.HostView:OnGUI()


    I told Alex about this to his email but still didnt get a respond.

    Thanks
     
  23. BuckeyeStudios

    BuckeyeStudios

    Joined:
    Oct 24, 2013
    Posts:
    104
    is there a way to just charge a certain amount (that varies).
    ie. I have a store that they can buy stuff from and at the end it give them a total. The total can vary and i need to just charge them that amount....
     
  24. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @giorgos_gs Again emailed.
    @dustinwloring1988 In App Purchases are not the same as a generalised online payments system. Each purchase corresponds to a specific item with a specific price, there is no way to charge an arbitrary amount.
     
  25. Cypras

    Cypras

    Joined:
    Oct 25, 2013
    Posts:
    64
    How do you validate receipts to prevent IAP hacking? And is spending virtual currency for IAP now supported?

    Thanks
     
    Last edited: Mar 11, 2015
  26. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Cypras You would need to consult each billing platforms documentation for receipt structure and validation algorithms. You cannot spend virtual currencies to 'unlock' real IAPs, the billing systems don't allow it.
     
  27. Green-Sauce-Games

    Green-Sauce-Games

    Joined:
    Mar 27, 2014
    Posts:
    71
    Last edited: Mar 17, 2015
  28. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Green Sauce Games there's a picture of visual studio 2013 at that link, what part of yours is different?
     
  29. Green-Sauce-Games

    Green-Sauce-Games

    Joined:
    Mar 27, 2014
    Posts:
    71
  30. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Last edited: Mar 18, 2015
  31. sevensails

    sevensails

    Joined:
    Aug 22, 2013
    Posts:
    483
    I followed the wizard instructions, but I still got!

    First-chance exception at 0x76E8210B in Template.exe: Microsoft C++ exception: EETypeLoadException at memory location 0x0363DA64.
    UnibillBiller: UnibillWin8:Exception loading listing information:Exception from HRESULT: 0x805A0194

    UnibillBiller: Unable to retrieve product listings. Unibill will automatically retry...

    My application were approved but it seems to still not works. Please any advice?
     
  32. sevensails

    sevensails

    Joined:
    Aug 22, 2013
    Posts:
    483
    I found a solution!

    I had to Right Click "Package.appxmanifest" and then "View Code".

    I need to change the PhoneProductId to the APP ID found on my APP Properties page on Dev Center.
     
  33. sevensails

    sevensails

    Joined:
    Aug 22, 2013
    Posts:
    483
    Hi! Now I have a problem with Amazon App Store. I'm testing it on AmazonSandox.

    Unibill seems to initialize fine :

    03-21 01:41:33.206: I/Unity(20154): Unibill.RemoteConfigManager: Not using cached inventory, using bundled.
    03-21 01:41:33.663: D/d(20154): In App Purchasing SDK - Sandbox Mode: PurchasingListener registered: com.outlinegames.unibillAmazon.Unibill@ce7c454
    03-21 01:41:37.565: I/Unity(20154): UnibillBiller: onSetupComplete(True)
    03-21 01:41:37.565: I/Unity(20154): AmazonAppStoreCallbackMonoBehaviour:eek:nPurchaseUpdateSuccess(String) (at D:\games\unity\games\Match3\TalesOfTheOrient\Assets\Plugins\unibill\src\AmazonAppStore\AmazonAppStoreCallbackMonoBehaviour.cs:52)

    But When I Try to Purchase Something I got :

    03-21 01:42:16.535: E/Unity(20154): UnibillBiller: The Biller is initialising. If, and only if, Biller.Ready may you call any other Biller methods..
    03-21 01:51:25.323: E/Unity(20154): Unibill.Biller:purchase(PurchasableItem, String) (at D:\games\unity\games\Match3\TalesOfTheOrient\Assets\Plugins\unibill\src\impl\Biller.cs:116)

    Any idea? This makes no sense!
     
    Last edited: Mar 21, 2015
  34. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Wagenheimer Have you installed the Amazon app tester from the Amazon App store?
     
  35. Deleted User

    Deleted User

    Guest

    i compiled with unity 5 and Xcode
    i have a this bug

    2015-03-25 11:51:03 +0000 [MT] [OPTIONAL] Didn't find embedded provisioning profile for <DVTFilePath:0x7faca644f100:'/Users/bitween/Library/Developer/Xcode/Archives/2015-03-25/Unity-iPhone 25-03-15 12.47.xcarchive/Products/Applications/lritalian.app/unibillosx.bundle'>: Error Domain=NSCocoaErrorDomain Code=4 "No file at <DVTFilePath:0x7faca665dbc0:'/Users/bitween/Library/Developer/Xcode/Archives/2015-03-25/Unity-iPhone 25-03-15
     
  36. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Andrea Monzini Unity is not preserving the right import settings for unibillosx.bundle, for which I have raised a bug.

    Please follow these settings.
     
  37. nitroSS

    nitroSS

    Joined:
    Aug 28, 2014
    Posts:
    19
    Hey

    I implemented UniBill in my application, but i am just worried about the security of in app purchase, i have tried Freedom latest beta version and it didn't work and i couldnt make any fake purchases. is it that Unibill blocking Freedom some how ?
    we are targeting Android and iOS.
     
    Last edited: Apr 1, 2015
  38. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @nitroSS Unibill features additional validation on Google Play, though not iOS currently.

    Depending on your game you might add additional validation and obfuscation. Online games should perform validation on the server.
     
  39. Yash987654321

    Yash987654321

    Joined:
    Oct 22, 2014
    Posts:
    729
    do Unibill supports standalone PC platform or it only supports other platforms
     
  40. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Yash987654321 Unibill supports the Mac App store and Windows 8.1
     
  41. Yash987654321

    Yash987654321

    Joined:
    Oct 22, 2014
    Posts:
    729
    i meant that will this support other that windows 8.1/8 through other payment options like PayPal.
     
  42. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
  43. Yash987654321

    Yash987654321

    Joined:
    Oct 22, 2014
    Posts:
    729
    :( thanks for your time anyway. I don't own widows 8.1 so i cant even switch platform
     
  44. ivantro

    ivantro

    Joined:
    May 3, 2014
    Posts:
    9
    Hi!,
    Is there a way to mark an item as purchased in the internal Unibiller database? In my app I would like to give the users sometimes items for free, so I was wondering if it's possible to add a +1 to the PurchaseCount of specific items.
    Thanks
     
  45. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @ivantro Yes, although it won't be marked as such on the underlying billing system. You can modify Unibiller.cs and Biller.cs to add the appropriate method, to ultimately call TransactionDatabase.recordPurchase();
     
  46. richardzzzarnold

    richardzzzarnold

    Joined:
    Aug 2, 2012
    Posts:
    140
    Hi I used UniBill in 2014 with no problems, but I am trying to import it into a new game and am getting the following errors on import:


    Assets/Plugins/Uniject/impl/UnityUtil.cs(13,14): error CS0738: `UnityUtil' does not implement interface member `Uniject.IUtil.InitiateCoroutine(System.Collections.IEnumerator)' and the best implementing candidate `UnityUtil.getAnyComponentsOfType<T>()' return type `T[]' does not match interface member return type `object'
    Assets/Plugins/Uniject/impl/UnityUtil.cs(13,14): error CS0738: `UnityUtil' does not implement interface member `Uniject.IUtil.getWaitForSeconds(int)' and the best implementing candidate `UnityUtil.loadedLevelName()' return type `string' does not match interface member return type `object'
    Assets/Plugins/Uniject/impl/UnityUtil.cs(13,14): error CS0535: `UnityUtil' does not implement interface member `Uniject.IUtil.InitiateCoroutine(System.Collections.IEnumerator, int)'
    Assets/Plugins/Uniject/impl/UnityUtil.cs(13,14): error CS0535: `UnityUtil' does not implement interface member `Uniject.IUtil.RunOnThreadPool(System.Action)'
    Assets/Plugins/Uniject/impl/UnityUtil.cs(13,14): error CS0535: `UnityUtil' does not implement interface member `Uniject.IUtil.RunOnMainThread(System.Action)'
    publicclassUnityUtil : Uniject.IUtil {
    Assets/Plugins/Uniject/impl/UnityUtil.cs(13,14): error CS0535: `UnityUtil' does not implement interface member `Uniject.IUtil.DeviceModel.get'
    Assets/Plugins/Uniject/impl/UnityUtil.cs(13,14): error CS0738: `UnityUtil' does not implement interface member `Uniject.IUtil.DeviceName.get' and the best implementing candidate `UnityUtil.Platform' return type `UnityEngine.RuntimePlatform' does not match interface member return type `string'
    Assets/Plugins/Uniject/impl/UnityUtil.cs(13,14): error CS0535: `UnityUtil' does not implement interface member `Uniject.IUtil.DeviceType.get'
    Assets/Plugins/Uniject/impl/UnityUtil.cs(13,14): error CS0738: `UnityUtil' does not implement interface member `Uniject.IUtil.OperatingSystem.get' and the best implementing candidate `UnityUtil.persistentDataPath' return type `string' does not match interface member return type `string'


    What to do ?
     
  47. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @richardzzzarnold It sounds like you're mixing source files from different unibill versions. Try importing Unibill into a new project.
     
  48. richardzzzarnold

    richardzzzarnold

    Joined:
    Aug 2, 2012
    Posts:
    140
    -Quite right......i had a previous version of it already in the project.
     
  49. richardzzzarnold

    richardzzzarnold

    Joined:
    Aug 2, 2012
    Posts:
    140
    is there a good way to delete all the old unibill stuff so I can reimport the updated version?
    I am getting some problems by trying to delete all unibill files.
     
  50. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    No, unfortunately not. Unibill upgrades are designed to work automatically, but there's no way to remove a plugin from a project - hopefully Unity will make a package manager one day.