Search Unity

Introducing Unibill - the cross platform In App purchase plugin!

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

  1. Karsnen_2

    Karsnen_2

    Joined:
    Nov 28, 2011
    Posts:
    89
    Well, UniBill is so good and very comfortable. On the other hand, I read all sort of new regarding piracy - so I wanted to know how far is Unibill secure. I am not a security expert but if UniBill advises certain protocols to be followed, I will have to make sure that those are followed. On the other hand, I just wanted to know whether there is any history with UniBill that has caused piracy problems.


    Thanks.
     
  2. Kay20000

    Kay20000

    Joined:
    May 8, 2013
    Posts:
    13
    Hello.

    I need to use Unibill with prime31's plugin on both android and iOS.
    Any problem with these plugin?

    For Android,I have an AndroidManifest.xml which prime31 automatically generated.
    Could it be removed when Unibill generate AndroidManifest?

    Thank you,
     
  3. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Currently, the asset store version of Unibill incorrectly contains an AndroidManifest.xml file which will overwrite your existing manifest, but only when you import Unibill for the first time. The version on the Unibill site is not affected by this.

    Unibill is designed to modify your existing AndroidManifest and not to overwrite it, adding and removing the parts it needs depending on your target platform. So long as your other plugins do the same you should be fine.
     
    Last edited: Sep 30, 2013
  4. Game-Whiz

    Game-Whiz

    Joined:
    Nov 10, 2011
    Posts:
    122
    Hi,

    Will Unibill work with Facebook's oficial plugin in Android (which overrides Unity's main activity)?

    Cheers,
    Alex
     
  5. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Unibill does not override the main Android activity, so if you were to use it in conjunction with another plugin that did, this shouldn't cause a problem.
     
  6. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Unibill 1.2.0 is now available, featuring Windows Phone 8 support!

    Existing Unibill users should be able to publish to Windows Phone 8 without writing another line of code!

    Highlights include full support for the Microsoft mock In App Purchase Library, so you can test your purchase flow on device without having to publish your app, just the tick of a checkbox in the inventory editor.

    This brings to 5 the number of platforms supported by Unibill, which is available direct from the Unibill website. The Asset store update will follow shortly.

    From the changelog:

    * Windows Phone 8 support!
    * Google Play - fixed black screen when trying to purchase an already owned non consumable.
    * Editor - fixed potential error on import.
     
  7. tripknotix

    tripknotix

    Joined:
    Apr 21, 2011
    Posts:
    744
    is there any support for Amazon Coins by any chance? im guessing these are actually 2 separate things, but im not sure how trying to create support for Amazon Coins would work. does the amazon api have to be imported seperately..ect can i access the coin api... do you need to expose the coin api...ect do you need to add an option to allow the purchase of amazon coins..ect im just curious. obviously if its a no go, its no big deal, its just an added bonus since they are doing some promo for use with them https://developer.amazon.com/post/T...Amazon-Appstore-Developer-Select-Program.html
     
  8. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    I've just taken a look and it appears Amazon coins will work fine with Unibill; coins are just a different way to pay for stuff at the actual payment layer, ie instead of using a credit card to buy something a player can use their coin balance.

    There's no specific coin related API, it should just work.
     
  9. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Unibill 1.2.1 is now available.

    This release brings automatic virtual currencies; simply tell Unibill what your currency is called and how much users should be credited when one or more consumable in app purchases are bought.

    Unibill takes care of the rest, keeping track of the user's balance for each currency and providing methods to query the balance, credit and debit it.

    Currencies are created and edited in the inventory editor, as shown:

    $Screen Shot 2013-10-14 at 20.22.44.png

    Also fixed:

    -All platforms - fixed subscribing to Unibill's purchase events post initialisation
     
  10. bombapps

    bombapps

    Joined:
    Jul 11, 2013
    Posts:
    5
    First off, Unibiller is awesome, I just have one issue..

    I have a Unibiller setup that is confirmed to be working on all my test devices except one. It just spams the following message in logcat:

    Failed to query inventory. Unibill will automatically retry in 5 seconds...

    What are the potential causes of this message? The device is connected to the internet via Wifi and I confirmed that IAP works in other games from the Play store. It seems odd since it works perfectly on all my other devices (6 in total).

    Its an HTC Desire HD running Android 2.3.5

    Any help would be appreciated!
     
  11. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Last edited: Sep 4, 2014
  12. WarbladerToo

    WarbladerToo

    Joined:
    Nov 2, 2009
    Posts:
    96
    Got an errror with latest version and Unity 4.2.2 :

    Assets/Editor/unibill/src/UnityInjector.cs(26,203): error CS1729: The type `Unibill.Impl.UnibillConfiguration' does not contain a constructor that takes `4' arguments
     
  13. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Please delete the old unityinjector.cs file. Unfortunately there's no way to delete files in an update
     
  14. WarbladerToo

    WarbladerToo

    Joined:
    Nov 2, 2009
    Posts:
    96
    Fixed it! Thanks!!
     
  15. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    Is the Ouya support getting close?
     
  16. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    I plan to add support for other app stores, is there a doc on how I should proceed?
     
  17. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    OUYA has dropped down the list, the Windows 8 store will be next.

    There's no official documentation on it, I can't provide support for it. If you take a look through the code it should be pretty clear how it all hangs together. You'll want to implement the IBillingService interface for your new billing service implementation, take a look, for example, at how the GooglePlayBillingService, AppleAppStoreBillingService work.
     
  18. MythicalCity

    MythicalCity

    Joined:
    Feb 10, 2011
    Posts:
    420
    I've been having trouble getting Unibill to work after a scene change. So if I initialize in my game's first scene (main menu) and then load another scene with the gameplay, then go back to the main menu, Unibill will no longer send a message that the transaction is complete/failed/cancelled. It still works as in the transaction takes place (the IAP native dialog shows up and transaction completes) but I just get:

    SendMessage: object AppleAppStoreCallbackMonoBehaviour not found!

    and as I never get that message the player doesn't receive what they paid for. Which is pretty much the worst thing that could happen with IAP.

    This happens on both iOS and Android builds.

    Anyone else notice this?
     
  19. TwisterK

    TwisterK

    Joined:
    Oct 26, 2010
    Posts:
    110
    I'm trying to get the country region of the player's apple id so that I can change the currency symbol for different country dynamically in iOS, but I can't find a way to retrieve it via Unibill, is there any method that allowed me to do so in Unibill? I've look through the code over and over again, can't find this particular function. Please help?

    --TwisterK
     
  20. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    I'm still investigating this. I think it may be related to the latest version of Unity, it seems Unity is no longer preserving Unibill's listeners between scenes despite explicit instruction to do so.
     
  21. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    The region is not currently exposed as a separate variable. Localised prices are already formatted using the currency symbol, however.
     
  22. TwisterK

    TwisterK

    Joined:
    Oct 26, 2010
    Posts:
    110
    I though it is only work in Android play store, but not in iTunes store? At least for my case, it just return decimel without the symbol, that why I trying to do it manually.
     
  23. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    It used to be that way on iOS, but now prices are formatted with currency symbols on iOS too, for consistency with other platforms. Please update to the latest version.
     
  24. MythicalCity

    MythicalCity

    Joined:
    Feb 10, 2011
    Posts:
    420
    Would some sort of re-initialization at the start of every scene work as a workaround for now? ie: destroying the unibill initialization when a scene is ended and re-init when a new scene is loaded? Instead of persisting the listeners?
     
  25. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Unibill as a whole does not support reinitialisation. However one could recreate the specific listener concerned. I'll have a solution shortly.
     
  26. HailfireGames

    HailfireGames

    Joined:
    Sep 27, 2012
    Posts:
    10
    Hey Banderous,

    I am working on updating our app with the recent pacakge, and recieved this error:

    Code (csharp):
    1. 10-23 09:12:56.210: E/Unity( 4928 ): UnibillBiller: You have attempted to purchase a Non-Consumable product that is already owned by the player. If it is intended that the product be purchasable multiple times, make it Consumable in the inventory editor. Otherwise you should check whether the product is already owned and, if so, prevent the user purchasing it..
    2.  
    3. 10-23 09:12:56.210: E/Unity( 4928 ): See [url]http://www.outlinegames.com/unibillerrors#UNIBILL_ATTEMPTING_TO_PURCHASE_ALREADY_OWNED_NON_CONSUMABLE[/url]
    I tried to go to suggested link, but the page is unavailable. How would I go about fixing this issue?
     
  27. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Are you attempting to purchase a non consumable item that your already own? To do so is an error, which is what Unibill is stating.
     
  28. HailfireGames

    HailfireGames

    Joined:
    Sep 27, 2012
    Posts:
    10
    Yes, we had reinstalled the app which re-locks our non-consumables. When you try to purchase it again, it seems that no call to cancel or fail is made. I'm trying to look through my ADB logs now to make sure of this, but so far I am not seeing any message after the initial purchase call.
     
  29. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    It should fire the failed method, but you should not allow people to attempt to repurchase content they already own.
     
  30. HailfireGames

    HailfireGames

    Joined:
    Sep 27, 2012
    Posts:
    10
    Fixed the issue on my side. Never mind. Thanks Banderous.
     
  31. WarbladerToo

    WarbladerToo

    Joined:
    Nov 2, 2009
    Posts:
    96
    Found another bug.

    if I have the item ID set in the Mac Store setting with override checked it will report this error:

    UnibillBiller: Trying to purchase null PurchasableItem

    If I uncheck the override and fill the items ID into the normal ID input box (ios app store) then its ok.
     
  32. WarbladerToo

    WarbladerToo

    Joined:
    Nov 2, 2009
    Posts:
    96
    Also.... Suddenly the localized prices is only showing a number 7 instead of NOK 7 Kr or 0.99 instead of $0.99

    Very strange!
     
  33. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Is this for the Mac App store or iOS?
     
  34. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    What platform is this on? Was it following an upgrade?
     
  35. WarbladerToo

    WarbladerToo

    Joined:
    Nov 2, 2009
    Posts:
    96
    Mac App Store. All is done on the Mac. And I'm not sure uf I just had updated to v29 or I did that after the problems occurd

    but this : UnibillBiller: Trying to purchase null PurchasableItem must be a bug
     
  36. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    I cannot reproduce this on my side. Would you mind emailing a repro UnibillInventory.xml to support@outlinegames.com?
     
    Last edited: Sep 4, 2014
  37. concave

    concave

    Joined:
    Aug 28, 2012
    Posts:
    49
    did someone else experience a longer loading time (splash screen time) after using unibill? if so is there an explanation - some native inits or something?
     
  38. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    What platform is this on? Unibill doesn't initialise until you tell it to, which would be post loading screen.
     
  39. concave

    concave

    Joined:
    Aug 28, 2012
    Posts:
    49
    in this case iam on android. ah ok post loading screen ...
    hmm... i am just wondering because when i load an empty scene i have about 11sec loading time and theres nothing in streaming assets and resources are limited to a small atlas so i thought it might be some JNI native java related init problem - so what i tried next is bulding for IOS but here i get following Error when building:


    Undefined symbols for architecture armv7:
    "__storeKitRestoreTransactions", referenced from:
    RegisterMonoModules() in RegisterMonoModules.o
    "__storeKitRequestProductData", referenced from:
    RegisterMonoModules() in RegisterMonoModules.o
    "__storeKitPurchaseProduct", referenced from:
    RegisterMonoModules() in RegisterMonoModules.o
    "__storeKitPaymentsAvailable", referenced from:
    RegisterMonoModules() in RegisterMonoModules.o
    ld: symbol(s) not found for architecture armv7
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    the storekit is linked per default - do you have any clue why that linking probem accours?
     
  40. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @concave it appears Unity has not added Unibill's objective c files to your xcode project. I suggest you try exporting a new xcode project from unity.
     
  41. concave

    concave

    Joined:
    Aug 28, 2012
    Posts:
    49
    i tried but as expected - just retrying the same doesn't help. why doesn'T unity add unibills objective c files?
     
  42. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Last edited: Sep 4, 2014
  43. TheLorax

    TheLorax

    Joined:
    Mar 25, 2007
    Posts:
    86
    With the Asset Store Birthday Sale I'm going to jump on the Unibill wagon. My big interest right now is in the possible OUYA support. Any idea if this might be implemented by the end of the year?

    Thanks,
    TheLorax
     
  44. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Unfortunately not, Windows Store is next!
     
  45. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    When updating Unibill in an oldish project of mine, from 1.12 or thereabouts to the current version, I got en error about not being able to use reflection on a module. I renamed unibillosx.bundle to ._bundle and the error went away.

    I'm not using OSX billing stuff, but this could be an issue?

    Edit: The message, from after the name was changed back:
    Code (csharp):
    1. Internal compiler error. See the console log for more information. output was:
    2. Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
    3.   at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
    4.   at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0
    5.   at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0
    6.   at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0
    7.   at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0
    8.   at Mono.CSharp.Driver.LoadReferences () [0x00000] in <filename unknown>:0
    9.   at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0
    10.   at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0
    Edit 2: Actually, it seems that no one dll/bundle is the issue. Randomly including and excluding them (from this and a P31 plugin I'm using) makes the project compile.
     
    Last edited: Nov 2, 2013
  46. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    The windows phone 8 DLL will cause this if you're on a pre wp8 version of unity. Delete the wp8 DLL in the wp8 directory.
     
  47. jonkuze

    jonkuze

    Joined:
    Aug 19, 2012
    Posts:
    1,709
    Hello, I know your UniBill Asset does that say it Supports Webplayer or Desktop, but is there
    anyway to make it work? where funds are deposited into Paypal from UniBill?
     
  48. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Unibill supports the Mac app store. There's no PayPal support. You could extend unibill if you so chose, though I couldn't support you.
     
  49. jonkuze

    jonkuze

    Joined:
    Aug 19, 2012
    Posts:
    1,709
    booo! ok no worries lol! totally understandable. thanks for response.
     
  50. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    When I save a prefab (not unibill), I get a lot of these in the log (about 90)

    !GetApplication().MayUpdate()
    UnityEditor.AssetDatabase:CopyAsset(String, String)
    InventoryPostProcessor:CreateInventoryIfNecessary() (at Assets/External/Unibill/Editor/unibill/src/InventoryPostProcessor.cs:32)
    InventoryPostProcessor:OnPostprocessAllAssets(String[], String[], String[], String[]) (at Assets/External/Unibill/Editor/unibill/src/InventoryPostProcessor.cs:19)
    UnityEditor.DockArea:OnGUI()