Search Unity

Introducing Unibill - the cross platform In App purchase plugin!

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

  1. Alima-Studios

    Alima-Studios

    Joined:
    Nov 12, 2014
    Posts:
    78
    this error could be from dirty files from previous unibill release
     
  2. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Alima Studios please provide details of the errors.

    @Maulwurfmann Please remove the legacy unibillSamsung.jar from more recent versions which have an aar file.
     
    Maulwurfmann likes this.
  3. Alima-Studios

    Alima-Studios

    Joined:
    Nov 12, 2014
    Posts:
    78
    @Banderius

    Unibill Version: 71 (Jun 15, 2015) Size: 643.0 kB

    I had to roll back to previous version , so I have no log to show you , on the next version of unibill I will upgrade and record the log if the problem still exists

    maybe could be due conflict with others plugins...

    I use everyplay , rewired , unity ads...
     
  4. Flarup

    Flarup

    Joined:
    Jan 7, 2010
    Posts:
    164
    Hello @Banderous,

    First of all. Thank you VERY much for a great plugin - it's definitely worth every dollar. We're currently using it to purchase auto-renewable subscriptions for iOS and Android. I have only tested iOS so far, but will be looking into Android in the near future. My question is the following:

    How do I check if a subscription have expired or not?

    I don't see any platform-independent code for this in your API, so I'm guessing I have to look into the receipt. But the receipt is encrypted on iOS as far as I can tell, and I don't see any helper-functions in your API to easily decrypt them.

    Thank you VERY much in advance for all your help.

    Kind regards,
    Uffe Flarup
     
  5. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Flarup iOS receipts are described here along with validation approaches, either local or probably remote on your server if you are dealing with subscriptions.

    PS - thanks!
     
  6. Flarup

    Flarup

    Joined:
    Jan 7, 2010
    Posts:
    164
    Thanks a lot for your quick reply. I have been looking into decoding the base64 encoded receipts found in the PurchaseEvent.Receipt property after a successful purchase, and I am unfortunately unable to decode most of the characters in the receipt - even when using one of the numerous base64 decoders/encoders found on the internet. Here's the first few lines of a sample receipt I get:

    MIJD9QYJKoZIhvcNAQcCoIJD5jCCQ+ICAQExCzAJBgUrDgMCGgUAMIIzpgYJKoZIhvcNAQcBoIIzlwSCM5MxgjOPMAoCAQgCAQEEAhYAMAoCARQCAQEEAgwAMAsCAQECAQEEAwIBADALAgELAgEBBAMCAQAwCwIBDgIBAQQDAgFKMAsCAQ8CAQEEAwIBADALAgEQAgEBBAMCAQAwCwIBGQIBAQQDAgEDMAwCAQoCAQEEBBYCNCswDQIBAwIBAQQFDAMxLjAwDQIBDQIBAQQFAgMBOawwDQIBEwIBAQQFDAMxLjAwDgIBCQIBAQQGAgRQMjM0MBgCAQQCAQIEEBFwNKmjEq0ADiHXPY8Pt9IwGwIBAAIBAQQTDBFQcm9kdWN0aW9uU2FuZGJveDAcAgEFAgEBBBTSGbSGA187uokbkpoPoV7BZW9yIzAeAgEMAgEBBBYWFDIwMTUtMDYtMThUMTA6Mzc6MzlaMB4CARICAQEEFhYUMjAxMy0wOC0wMVQwNzow

    When I decode this using some online base64 decoder I get the following:

    0�C� *�H��
    ��C�0�C�10 +0�3� *�H��
    ��3��3�1�3�0
    0
    000J0000
    4+0
    1.00
    9�0
    1.00 P2340p4���!�=���0ProductionSandbox0���_;�����^�eor#02015-06-18T10:37:39Z02013-08-01T07:0

    As you can see, there are fractions of text in here which looks like a real apple receipt, but most of the text is garbage.

    This leads me to the following two questions:

    1) What's missing in order to properly base64 decode the receipts from apple?

    2) I noticed in an older post in this forum that there should be a Unibiller.GetAllPurchaseReceipts API call, but it doesn't seem to be present in the latest API. Have this API call been removed?
     
  7. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Flarup Receipts are base 64 encoded binary containers. You will need to follow Apple's documentation to validate them. GetAllPurchaseReceipts is gone indeed.
     
  8. Flarup

    Flarup

    Joined:
    Jan 7, 2010
    Posts:
    164
    My questions was not about validating the receipts, but was about DECODING the receipts to get the json formatted receipt.

    As written in my previous post, I'm unable to DECODE the receipt I get - I have tried both using my own code in Unity, and I have tried using various online tools to do it. Decoding base64 should be pretty straight-forward normally, so I'm suspecting that the receipt I get from the Unibill library is corrupted for some reason.

    If you don't think the bug is due to malformed/corrupted receipt in your library, can you please supply a snippet of C# code to use in Unity, which you normally use to DECODE the receipts?

    Thanks a lot for all your help.
     
  9. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Flarup The Unibill docs were incorrect here; receipts are not JSON on all platforms.

    The receipt you are getting is base 64 encoded binary, not JSON. Specifically it is a PKCS #7 container, so it's going to look like garbage if you just paste it into a base 64 decoder.

    Unibill does not perform any receipt parsing or validation on Apple platforms so I have no code to share, but you should be able to use something like the bouncy castle library to parse the receipt.
     
  10. Zilk

    Zilk

    Joined:
    May 10, 2014
    Posts:
    333
    I updated to the latest version of Unibill to get unity analytics working but I can't get any monetization events to register. The basic integration and custom events is working from the editor but not monetization.
     
  11. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Zilk (and any others so affected), to fix integration with the analytics inbuilt to Unity 5.1 please update line 20 of UnityAnalytics.cs from -

    "UnityEngine.Analytics.Analytics"

    To

    "UnityEngine.Analytics.Analytics, UnityEngine.Analytics"

    The fixed unity package will be available shortly but this is the only change.

    Also note that on iOS you will need to consider this stripping related issue, due to be fixed in an upcoming Unity patch release.
     
  12. mdrotar

    mdrotar

    Joined:
    Aug 26, 2013
    Posts:
    377
  13. KeepTrying

    KeepTrying

    Joined:
    Feb 23, 2011
    Posts:
    119
    @Banderous any way to buy only the Samsung Apps .JAR ?
     
  14. Zilk

    Zilk

    Joined:
    May 10, 2014
    Posts:
    333
    Thanks, now it's working perfectly!
     
  15. neo-valtrain

    neo-valtrain

    Joined:
    Jun 12, 2013
    Posts:
    4
    I'm trying to use a subscription on Android, but my app is crashing on startup if I have the subscription product ID added to Unibill. Here's the output right before it crashes, does anyone have any ideas on what might be wrong?



    D/UnibillAmazonPlugin(11937): onPurchaseUpdatesResponse
    D/lifetime_subscription(11937): false
    D/hopsubscriptiontest(11937): false
    D/hopsubscription(11937): false

    F/libc (11937): Fatal signal 11 (SIGSEGV) at 0x00000014 (code=1), thread 11937 (i.HP)

    I/DEBUG ( 268): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

    I/DEBUG ( 268): Build fingerprint: 'Amazon/apollo/apollo:4.4.3/KTU84M/14.4.5.4_user_454006120:user/release-keys'

    I/DEBUG ( 268): Revision: '0'

    I/DEBUG ( 268): pid: 11937, tid: 11937, name: i.HP>>> com.BYT.HP <<<

    I/DEBUG ( 268): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000014

    W/Sensors ( 395): DSPS file:com/src/sns_dd_als_max44009.c(1593):ALSPRX: debug message param1: 4410 param2: 110

    W/Sensors ( 395): DSPS file:com/src/sns_dd_als_max44009.c(1594):ALSPRX: debug message param1: 4411 param2: 56

    W/Sensors ( 395): DSPS file:com/src/sns_dd_als_max44009.c(1595):ALSPRX: debug message param1: 4412 param2: 206

    W/Sensors ( 395): DSPS file:com/src/sns_dd_als_max44009.c(1596):ALSPRX: debug message param1: 4413 param2: 230

    I/DEBUG ( 268): r0 00000000 r1 00000000 r2 4152d338 r3 415f2c20

    I/DEBUG ( 268): r4 00000000 r5 5a69087c r6 f2f0001d r7 400a3394

    I/DEBUG ( 268): r8 00000000 r9 00000000 sl 00000000 fp 634f6050

    I/DEBUG ( 268): ip 4152da08 sp be8ecfc8 lr 4157f8a5 pc 4158a0e8 cpsr 60000030

    I/DEBUG ( 268): d0 0000000000000000 d1 0000000000000000

    I/DEBUG ( 268): d2 0000000000000000 d3 0000000000000000

    I/DEBUG ( 268): d4 42077fd84208d240 d5 42073e9842077f98

    I/DEBUG ( 268): d6 3f000000420673a0 d7 000000000000007f

    I/DEBUG ( 268): d8 0000000000000000 d9 0000000000000000

    I/DEBUG ( 268): d10 0000000000000000 d11 0000000000000000

    I/DEBUG ( 268): d12 0000000000000000 d13 0000000000000000

    I/DEBUG ( 268): d14 0000000000000000 d15 0000000000000000

    I/DEBUG ( 268): d16 5ad39c205c5b7058 d17 5ae1f6e45ad3a12c

    I/DEBUG ( 268): d18 41c73e8841c74410 d19 41c728b841c732f0

    I/DEBUG ( 268): d20 41c69a0041c6b3e0 d21 41c65c8841c65e90

    I/DEBUG ( 268): d22 41bb663841be0a68 d23 41b981d841b9be70

    I/DEBUG ( 268): d24 0000000000000000 d25 0000000000000000

    I/DEBUG ( 268): d26 0000000000000000 d27 0000000000000000

    I/DEBUG ( 268): d28 0100010001000100 d29 0100010001000100

    I/DEBUG ( 268): d30 0000000000000000 d31 4000000000000000

    I/DEBUG ( 268): scr 60000010

    I/DEBUG ( 268):

    I/DEBUG ( 268): backtrace:

    I/DEBUG ( 268): #00 pc 0005a0e8 /system/lib/libdvm.so (StringObject::utfLength() const+17)

    I/DEBUG ( 268): #01 pc 0004f8a1 /system/lib/libdvm.so

    I/DEBUG ( 268): #02 pc 00017951 /system/lib/libjavacore.so

    I/DEBUG ( 268): #03 pc 00017af7 /system/lib/libjavacore.so

    I/DEBUG ( 268): #04 pc 0002068c /system/lib/libdvm.so (dvmPlatformInvoke+112)

    I/DEBUG ( 268): #05 pc 000524d1 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+412)

    I/DEBUG ( 268): #06 pc 00029b20 /system/lib/libdvm.so

    I/DEBUG ( 268): #07 pc 00030fb8 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)

    I/DEBUG ( 268): #08 pc 0002e5fc /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)

    I/DEBUG ( 268): #09 pc 00065c91 /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+392)

    I/DEBUG ( 268): #10 pc 0006e21d /system/lib/libdvm.so

    I/DEBUG ( 268): #11 pc 00029b20 /system/lib/libdvm.so

    I/DEBUG ( 268): #12 pc 00030fb8 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)

    I/DEBUG ( 268): #13 pc 0002e5fc /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)

    I/DEBUG ( 268): #14 pc 00065999 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)

    I/DEBUG ( 268): #15 pc 0004df67 /system/lib/libdvm.so

    I/DEBUG ( 268): #16 pc 00052143 /system/lib/libandroid_runtime.so

    I/DEBUG ( 268): #17 pc 00052ff7 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+370)

    I/DEBUG ( 268): #18 pc 00001063 /system/bin/app_process

    I/DEBUG ( 268): #19 pc 0000e4db /system/lib/libc.so (__libc_init+50)

    I/DEBUG ( 268): #20 pc 00000d7c /system/bin/app_process

    I/DEBUG ( 268):
     
  16. Colocarts

    Colocarts

    Joined:
    Nov 15, 2012
    Posts:
    4
    when i build for IOS : i got this error message when i submit to apps store : CodeDesign: unable to extract archive , the problem is the mac Ox bundle of your plugin is compiled to IOS platform :(
    the bug can be reproduced :
    1/ new project and add Unibill
    2/ ios target / IL2CPP compiling and stripping BYTE CODE
    3/ built your project
    4/ xcode editor on mac -> archive and submit
     
  17. rosevelt

    rosevelt

    Joined:
    Oct 23, 2012
    Posts:
    47
    Hello,
    I guess that UniBill does not support Sign-In to GameCenter or Google Play Services.
    If my project uses other plugins for the above, will the player be force to go through another Sign-In for the purchase?

    Thanks
     
  18. bakno

    bakno

    Joined:
    Mar 18, 2007
    Posts:
    604
    @Flarup Where you able to decode the binary receipt?

    We consider receipt validation to be fundamental for IAP.

    Has anybody been able to successfully get AppStore receipts from Unibill that can be validated against Apple?
     
  19. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,263
    Yes. Our php script in Simple IAP System (for Unibill) supports that. PM me for more information and I'll try to give out code snippets as best as possible.
     
  20. Kenner-Stross

    Kenner-Stross

    Joined:
    Sep 7, 2012
    Posts:
    11
    For a small percentage of our users, we get errors during the initialization of Unibiller. Our logging shows that the error is GOOGLEPLAY_BILLING_UNAVAILABLE, and according to the Unibill documentation, that error indicates that "The Google Play billing service indicated that In App purchasing is disabled. In App purchasing must be enabled in the device’s settings."

    But I don't see anything (via Google search) indicating that it is possible to disable purchasing on a device. (Yes, you can password protect it, but you can't disable it, as far as I can tell.)

    Is this message coming up for other reasons, perhaps? Connectivity problems, maybe? Something else? Has anyone else run into this sort of initialization error?

    Thanks,
    Kenner
     
  21. bakno

    bakno

    Joined:
    Mar 18, 2007
    Posts:
    604
    We want to verify the Purchase Receipt after an IAP on MacAppStore.

    Supposedly, an app with IAP should receive this Purchase Receipt after each purchase is confirmed, but Unibill returns the App Receipt.

    Even when you try to get the PurchasableItem.receipt, Unibill returns the same App Receipt, not the Purchase Receipt.

    How can we convert this binary receipt into a text based JSON receipt?
     
    Last edited: Jun 25, 2015
  22. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @mdrotar I didn't miss your comment, it's on the request list.
    @KeepTrying Unibill is not sold per platform.
    @Colocarts See these instructions http://www.outlinegames.com/documen...5-incorrect-unibillosx-bundle-import-settings
    @rosevelt Gamecenter services are separate to IAP as far as I know.
    @Kenner Stross That error may occur in territories google does not support, the docs are misleading there.
    @bakno Transaction receipts are deprecated. The App receipt is the official apple item you need for validation. You can post it to apple's verification API from your server and get json back, but if performing local verification you should use crypto libraries to verify it yourself.
     
  23. bakno

    bakno

    Joined:
    Mar 18, 2007
    Posts:
    604
    Thank you Alex

    We are performing local verification. But we have a question about server verification: Do you know if Apple compares the receipt information against their purchases database? Or is it just the same validation that we can do locally?
     
  24. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    I don't know how Apple have implemented it but all the information they return is already in the purchase receipt.
     
  25. jerome-lacoste

    jerome-lacoste

    Joined:
    Jan 7, 2012
    Posts:
    206
    Hello,

    Thanks for the plugin :)

    A little feature question/request: is there a simple way to configure the unibill tool to behave more like on the device inside the Editor? For example I would like to:
    * slow/fail the initialization process
    * purchases or restore to fail (maybe the purchase and restore operations should display a fake popup that allows one to make the operation succeed or fail)

    Right now to be able to simulate stuff, I do things like:

    - internal PurchaseFailedEvent(PurchasableItem purchasedItem, PurchaseFailureReason reason, string message) {
    +#if UNITY_EDITOR
    + public
    +#else
    + internal
    +#endif
    + PurchaseFailedEvent(PurchasableItem purchasedItem, PurchaseFailureReason reason, string message) {

    and create my own events. But then I still lack the GUI to be able to quickly test things.
     
  26. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @jerome.lacoste That's a great idea, it's been on the todo list for a while. You can tweak the FakeBillingService in the meantime.
     
  27. kenfalco

    kenfalco

    Joined:
    Jul 18, 2012
    Posts:
    27
    We are reviewing the receipts for an online game that offers subscriptions.
    We are experiencing a very odd behaviour with Unibill.
    If we check the receipts that are sent from the client to the server and saved there,
    we see that many receipts (both IOS and Android) are duplicate.
    Perfectly the same, with same data.
    We asked for clarification to our users and they say they can do the payment,
    but money is not withdrawn by the store, they do not receive an email from GooglePlay so we can't ask for it to validate the payment.
    A receipt seems to be generated anyway by Unibill and sent to us.
    Is it possible that a receipt is stored locally on Unibill and sent again?
    Any idea? Thanks in advance.
     
    Last edited: Jul 2, 2015
  28. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @kenfalco Unibill never generates receipts, it merely forwards what is provided by the underlying billing system. The same exact receipt can be sent to your app on a reinstall, for example. A billing provided should never generate a receipt for a purchase that didn't complete.
     
  29. Alima-Studios

    Alima-Studios

    Joined:
    Nov 12, 2014
    Posts:
    78
    Last version of unibill works again as usual
     
  30. sevensails

    sevensails

    Joined:
    Aug 22, 2013
    Posts:
    483
    I'm getting this error when trying to publish to Mac App Store. Any ideas?

    ERROR ITMS-90511: "CFBundleIdentifier Collision. The Info.plist CFBundleIdentifier value 'com.outlinegames.unibillosx' of 'Tales of the Orient - The Rising Sun.app/Contents/Plugins/unibillosx.bundle' is already in use by another application."

    I checked Unibill docs and Import Settings is correct.
     
  31. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @Wagenheimer You need to change the bundle id in the info.plist file at the location it specified in your app bundle, to match your bundle id.
     
  32. bakno

    bakno

    Joined:
    Mar 18, 2007
    Posts:
    604
    Hi all,

    When testing IAP on GooglePlay, Unibill is calling the onPurchaseCompleteEvent when not expected. This is how...

    An item was purchased and validated. The app is re-installed and Unibill is firing this event right when starting up, generating a double purchase of the same item.

    We filtered this event at startup, but now, when reinstalling and selecting to Restore purchases, the same event is fired along with the restore one, and the purchased item is duplicated again.

    Are we doing something wrong? Please help.
     
  33. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @bakno This is by design. Unibill will automatically restore purchases on all platforms where it is able to do so. This is part of the process of ensuring that any transactions that complete whilst the user is offline are granted.

    Given that these are non consumables I'm not sure how they can be duplicated.
     
  34. bakno

    bakno

    Joined:
    Mar 18, 2007
    Posts:
    604
    The item is a subscription but defined as a managed item at Google (following Unibill's documentation suggestion), and a repeated purchase will incorrectly increase the expiration date. We have filtered this call as well.
     
  35. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @bakno Sorry it seems the docs misled you. Subscriptions should most definitely be created as subscriptions on Google Play. I'll update the docs.
     
  36. bakno

    bakno

    Joined:
    Mar 18, 2007
    Posts:
    604
    Since this morning Unibill is not initializing in our Android device (Samsung Galaxy Note4).

    This is pretty weird. After restarting all devices, reinstalling Unibill and even rebuilding from the same project that worked yesterday (pulled out from Time Machine), the problem persists.

    The only change out of Unity/Unibill/Mac/Mobile scope is an extra product added to Goggle Play IAP items.

    Could this be generated by an Android system update?
     
  37. bakno

    bakno

    Joined:
    Mar 18, 2007
    Posts:
    604
    In fact, when running the same app on a different Android device it works. WTH???

    Does anybody know of an Android setting that must be preventing the plugin from running?
     
  38. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @bakno Check the device log using adb. Clear the google play app's cache too.
     
  39. bakno

    bakno

    Joined:
    Mar 18, 2007
    Posts:
    604
    @Banderous. The log does not show an error message, that is the weirdest part. The typical "onBillerReady:SUCCESS" message is not there.

    Clearing the cache or de-installing and re-installing does not solve the problem.

    The only message shown is "Unibill.RemoteConfigManager: Not using cached inventory, using bundled."

    Please help. Is there a way to validate when the Android plugin is working?
     
  40. bakno

    bakno

    Joined:
    Mar 18, 2007
    Posts:
    604
    @Banderous. After removing the google account from the android device the plugin started to return something...

    UnibillBiller: onSetupComplete(False)
    onBillerReady: CRITICAL_ERROR
    UnibillState CRITICAL_ERROR

    But when adding back the account, the problem is back again. Unibill does not show any log message.

    So it is something related to this particular account that disables the plugin. A bug on your Android plugin most likely.

    Please let me know if you want me to keep the account as is so I can help you debug the problem?
     
  41. DonTito

    DonTito

    Joined:
    Jul 21, 2015
    Posts:
    2
    Hello @Banderous when i try to buy a Non Consumable item i get this error
    'KeyNotFoundException: The given key was not present in the dictionary." the first time i try to buy it,and the second time the plug in tells me that i already purchase that item......any idea why this is happening?
     
  42. wkwan

    wkwan

    Joined:
    Sep 14, 2014
    Posts:
    27
    Hi @Banderous,

    I just bought the plugin and I'm starting off by just implementing a simple "no ads" purchase for google play. I've checked the "override" option for Google Play and filled in the id I specified in the Developer's Console. However, I still get:

    E/Unity (31279): UnibillBiller: Product: 1159484098 is reported as unavailable for purchase by the billing system. Ensure your product IDs are set correctly in your unibill configuration and registered with the billing provider..

    E/Unity (31279): See http://www.outlinegames.com/unibillerrors#UNIBILL_MISSING_PRODUCT

    The status of the Game Service in my console is "Ready to publish", my email is added as a tester, the in-app product is "active" and my app is currently a "draft". Do you know what could be going on? Edit: The app is now published in Alpha but it still doesn't work.

    Also I'd like to know why I need to fill out "Price in your local currency" and "Default locale". Isn't that stored on the Google servers? And I'm not sure what to fill in there either, as my local currency is Canadian but that's not an option for the Default locale?
     
    Last edited: Jul 22, 2015
  43. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @DonTito Please send a stack trace to support@outlinegames.com

    @wkwan it can take 24 hours for products to start working. Those details are used to generate the bulk upload files, you don't have to fill them in if you don't use bulk upload.
     
  44. hellobard

    hellobard

    Joined:
    Sep 26, 2012
    Posts:
    140
    Hi,
    I just updated to the latest version and I am getting this issue too.
    Two other plugins (UnityAds and Vungle) have a file named MiniJSON.cs and it seems that the difference between your MiniJSON and theirs is that they're from 2013 whilst yours is from 2012. These two plugins work without conflict, so could this be an issue of you having an older version in your plugin?

    Is there a way to fix this for me without deleting these (very popular and common) plugins?

    EDIT: I have narrowed it down to being a conflict with the Vungle-plugin specifically.
     
    Last edited: Jul 31, 2015
  45. djfrail

    djfrail

    Joined:
    Jan 16, 2014
    Posts:
    124
    I'm not sure what the right thing to do is...hoping the author has some guidance?
     
  46. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    @Banderous

    Android res folder seems to back in the latest version 73 (1.10.4) and 1.9.9 section missing from the included release notes. Just wanted to verify if that was intentional or a packaging error... :)
     
  47. silviobadseed

    silviobadseed

    Joined:
    Nov 28, 2013
    Posts:
    32
    I didn't switch platform on inventory editor for at least 5-6 months, always updated Unibill even to this latest 73 version. Now I needed to switch from GooglePlay to AmazonAppstore and I got an error on MiniJSON:

    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2.   at Unibill.Impl.MiniJsonExtensions.getString (System.Collections.Generic.Dictionary`2 dic, System.String key, System.String defaultValue) [0x00000] in D:\BadSeed\CircleDefense\Branches\dev\Assets\Plugins\unibill\src\impl\MiniJSON.cs:757
    3.  
    4.   at Unibill.Impl.UnibillConfiguration..ctor (System.String json, RuntimePlatform runtimePlatform, ILogger logger, System.Collections.Generic.List`1 runtimeProducts) [0x0002f] in D:\BadSeed\CircleDefense\Branches\dev\Assets\Plugins\unibill\src\impl\UnibillConfiguration.cs:61
    5.  
    6.   at UnibillInjector.GetConfig () [0x00000] in D:\BadSeed\CircleDefense\Branches\dev\Assets\Editor\unibill\src\Injector.cs:16
    7.  
    8.   at UnibillInjector.GetStorekitGenerator () [0x00000] in D:\BadSeed\CircleDefense\Branches\dev\Assets\Editor\unibill\src\Injector.cs:44
    9.  
    10.   at InventoryEditor.serialise () [0x0004a] in D:\BadSeed\CircleDefense\Branches\dev\Assets\Editor\unibill\src\InventoryEditor.cs:203
    11.  
    12.   at InventoryEditor.OnGUI () [0x0004c] in D:\BadSeed\CircleDefense\Branches\dev\Assets\Editor\unibill\src\InventoryEditor.cs:120
    13.  
    14.   at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
    15.  
    16.   at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000d0] in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222
    I found a workaround switching it by modifying the inventory json manually and so setting AmazonAppstore as Android billing platform. Anyway everytime I press Save on Inventory editor I get the same error.

    Has anyone ever had a similar issue? How can I solve it?
     
  48. morius

    morius

    Joined:
    May 3, 2013
    Posts:
    8
    @Banderous

    We were using a different inapp plugin and then decided to buy Unibill. Now we're having some issues with our in app purchase.

    We are trying to make an in app purchase named "no_ads", it's already set up on the google developer console and with our previous plugin we had managed to get it to work.

    It seems that unibill is getting the correct information since we get this message in the log:

    That's the description and price we put on google play, so it should work.

    But later we get this:

    And also this:
    The problem is obviously not the way it's set up on Google Play, since we tried our apk that used the previous plugin and it works. So, what do you think could be the problem?
     
  49. CG_Echtzeitschmiede

    CG_Echtzeitschmiede

    Joined:
    Feb 19, 2015
    Posts:
    93
    I have a general question: how are local currencies normally handled by in-game stores? I have set up my items and prices in the Google Developer Console, and the various currencies all have different prices and a different currency symbol.

    How can I ensure that the price displayed in my in-game store matches what the user will eventually have to pay? Can Unibill provide this information, or how do I query it?
     
  50. bakno

    bakno

    Joined:
    Mar 18, 2007
    Posts:
    604
    We are now unable to restore purchases on iOS and OSX. On iOS it does not return the previous purchase and no purchase receipt either. On OSX it throws the following message "onTransactionsRestoredFail(Unknown Error.)"

    We have checked everything, and we have created new testing accounts with the same results. What can be wrong?
     
    Last edited: Aug 15, 2015