Search Unity

Simple In-App Purchase System (SIS) - Shop solution

Discussion in 'Assets and Asset Store' started by Baroni, Aug 8, 2013.

?

Which billing plugin are you using in combination with Simple IAP System?

  1. Unity IAP

    173 vote(s)
    86.5%
  2. Voxel Busters

    10 vote(s)
    5.0%
  3. Stans Assets

    13 vote(s)
    6.5%
  4. Prime31

    4 vote(s)
    2.0%
  1. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,023
    I updated from 5.2.0

    From Tools tab every run before and after initialization:
    "no data / only visible at runtime"

    And In the console I have this message after the error:
    "Couldn't get funds, no currency specified or empty inventory"
     
  2. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Thank you @makaka-org, I spent 2 hours trying to reproduce this and was able to do so. The bug is caused by the encryption logic trying to decrypt an empty string and was introduced in version 5.2.6. Adding this to the DBManager Decrypt method right at the beginning will fix it:
    Code (csharp):
    1. if (string.IsNullOrEmpty(toDecrypt)) return string.Empty;
    The fix will be available on GitHub tomorrow and probably early next week on the Unity Asset Store.
     
    makaka-org likes this.
  3. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,023
    Thanks, Works in Editor.
    Why can I see decrypted data in the Tools tab upon encryption enabled?
     
  4. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    It is decrypted automatically for you for debugging purposes. If you want to see the (original) encrypted string you would look into the Windows Registry as described here.
     
    makaka-org likes this.
  5. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    5.3.0
    • added loading window to UIShopFeedback that is displayed during native purchase dialog interaction. Especially useful on IOS where the popup takes long to load. This window is being closed automatically and cannot be closed by the user. If you do not want to use it, keep it unassigned on the UIShopFeedback component
    • added the loading window prefab and reference to all example scenes
    • fixed possibility for ReceiptValidatorServer sending a validation request for the same product multiple times
    • fixed order of feedback windows so that with PayPal, an error message is not hidden by the confirmation window
    • fixed changing encryption states resulting in a NullReferenceException while trying to decrypt an empty string
    • fixed error message in feedback window on Android not displaying an exact reason text for the purchase error
    • fixed UnityWebRequest deprecation messages for PayPalStore class in Unity 2022.2+

    Available on GitHub now and on the Unity Asset Store next week.
     
    makaka-org likes this.
  6. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,023
    In Unity 2022.3.15 I can see this message every time when I am building the app, add/remove packages in UPM, open Unity project. I click "No" every time.
     

    Attached Files:

  7. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    @makaka-org this is fixed in the upcoming version (see changelog above). If you click "No", the warning will show every time because nothing is changed. If you click one of the "Yes" options, Unity updates the code automatically, as the popup tells.
     
    makaka-org likes this.
  8. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,023
    Hi, I test your validator with subscription: the only iAP in my app.
    I have a free plan in validator. I wanted to get 10140 error as planned.

    In the 1st run when I bought the subscription in Sandbox Environment, I didn't see it as well as any other log entries from the validator because this was Non-Dev mode. No error happened. Subscription was purchased.

    In the next 2nd run without deleting the build from device (Dev Mode = on), I got the next log:

    Code (CSharp):
    1. Server Validation: Product purchase 'my.iap.test.name' failed. Code:-1,
    2. SIS.<RequestPurchaseRoutine>d__25:MoveNext()
    3. UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    4. UnityIAP: Finishing transaction 12346777
    5. IAPManager reports: PurchaseFailed. Error: Your Purchase: Subscription — Monthly
    6. Your transaction failed validation.
    7. HandleFailedPurchase
    8. Your transaction failed validation.
    9. UnityIAP: UpdatedTransactions
    10. ...
    11. NSLocalizedDescription=The network connection was lost., NSErrorFailingURLStringKey=https://flobuk.com/validator/v1/receipt/...},
    12. ..
    13. Uploading Crash Report
    14. NullReferenceException: Object reference not set to an instance of an object.
    15.   at SIS.ReceiptValidatorServer+<RequestPurchaseRoutine>d__25.MoveNext () [0x00000] in <00000000000000000000000000000000>:0
    16.   at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00000] in <00000000000000000000000000000000>:0
    There was no error code from your table .

    At the same time, I have no email as well as no validator dashboard notification about trying to verify subscription in the free plan.

    I guess you need to add Catching this error case in ReceiptValidatorServer script to avoid null reference and add a new error code for this case in your table and system.

    P.S. Yes, I set a unique User ID before initializing of IAP manager. This is my 1st testing of your validator.
     
    Last edited: Dec 25, 2023
  9. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,023
    Just tested with Dev Mode on the 1st run and trying to buy a subscription.
    Buying was successful. Got this log, I didn't receive 10140 error code, just -1:

    Code (CSharp):
    1. Server Validation: Product purchase 'my.iap.test' failed. Code:-1,
    2. SIS.<RequestPurchaseRoutine>d__25:MoveNext()
    3. UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    4.  
    5. UnityIAP: Finishing transaction 323536
    6. IAPManager reports: PurchaseFailed. Error: Your Purchase: Subscription — Monthly
    7.  
    8. Your transaction failed validation.
    9. SIS.IAPManager:OnPurchaseFailed(String)
    10. SIS.<RequestPurchaseRoutine>d__25:MoveNext()
    11. UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    12.  
    13. HandleFailedPurchase
    14.  
    15. Your Purchase: Subscription — Monthly
    16.  
    17. Your transaction failed validation.
    No info in the dashboard.
    ---

    After 10 minutes in the same run, I tried to buy again and got this:

    Code (CSharp):
    1. onPurchaseFailedEvent(productId:...message:Duplicate transaction occurred storeSpecificErrorCode: )
    2. UnityEngine.Purchasing.PurchasingManager:OnPurchaseFailed(PurchaseFailureDescription)
    3. UnityEngine.Purchasing.Extension.UnityUtil:Update()
    4.  
    5. IAPManager reports: PurchaseFailed. Error: DuplicateTransaction
    6. SIS.IAPManager:OnPurchaseFailed(Product, PurchaseFailureDescription)
    7. UnityEngine.Purchasing.PurchasingManager:OnPurchaseFailed(PurchaseFailureDescription)
    8. UnityEngine.Purchasing.Extension.UnityUtil:Update()
    9.  
    10. HandleFailedPurchase
    11.  
    12. DuplicateTransaction Duplicate transaction occurred storeSpecificErrorCode:
    So as I know, the subscription was still active because we have this timing from Apple:
    1. Subscribed (5 min)
    2. 5 auto-renew (5 min) = 25 min
    3. Automatically Canceled after 30 min

    ----

    So the app can't operate normally with the Free Validator plan and purchasing Apple subscription.
     
    Last edited: Dec 25, 2023
  10. BehzadShahid319

    BehzadShahid319

    Joined:
    Jan 25, 2021
    Posts:
    6
    Hello, before purchasing the Simple IAP System I've a question.
    Does this system handle restoring of purchases like subscriptions or remove ads etc. If the player has purchased the item once, can it be restored on reinstalling of app or installing the app on a different device with same accounts?
     
  11. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Hi @makaka-org, thanks for the report. I will start testing a subscription purchase with the Free plan and report back tomorrow - today is still public holiday where I live. In theory, you should see the 10140 error but the purchase should be successful anyway, just with the validation skipped.
    The reason for subscriptions not being supported in the Free plan is because it does include storage. However subscription definitely need to be stored to check their expiration date and overwrite it with current transactions received by the App Stores via their notification service. Since storage is expensive in the cloud world, this cannot be part of the Free plan.

    Hi, restoring transactions is fully supported. Regarding restoring subscriptions, please note that the App Stores sometimes do not send current information to the app, i.e. whether a subscription is already cancelled or expired recently. Without server validation of subscriptions you will eventually get a cached state of the subscription, for example still purchased, where in reality it expired a day before. It will get removed when the app receives an inventory update from the App Store, usually within 2 days.
     
  12. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,023
    I understand and I have no complaints about it. I just showed you an error which can happen if the validator user forgot to put money on his bank card to pay for the validator, didn't see an email notification for any reason and so on. So, resolving this issue and implementing additional notification from your service about 10140 error in dashboard or by email will be cool.

    P.S. but in my report case, I have no bank card in your validator dashboard.
     
  13. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Thank you, I did not think you are complaining, I have just provided a bit more background information. I have just tested this and looked over the backend code to find that error 10140 (subscriptions not supported in Free plan) will only be thrown in the production environment. When testing in sandbox (with a sandbox user), subscription validations will also be validated and succeed normally, so their initial purchase can be tested as well. Additionally, when the app stays open, Unity IAP will update the transaction every 3-5 minutes (depending on your sandbox user renewal duration) and the updated subscription transaction will be validated too.

    In my tests, all validations and the renewals were successfull. I could not reproduce error "-1" like you, so I think there might be something else going on, unrelated to error 10140. However, I got the DuplicateTransaction error once, but this was thrown by Unity IAP, not SIS or the validator. I will see if I can reproduce that reliably somehow and report it to Unity.

    Regarding the -1 error, could you please add Debug.Log(postData) at line 285 of the ReceiptValidatorServer.cs, and send me the result? Please open a ticket on the validator dashboard (bottom left) for this, since support for SIS and the ReceiptValidator is separate. Thanks!
     
    makaka-org likes this.
  14. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,023
    done. ticket notification fell into spam, for your information.
     
  15. datlonpls

    datlonpls

    Joined:
    Aug 27, 2016
    Posts:
    1
    Hello, Im a big fan of the asset, but wanted to see if it was anyway possible if I could upgrade from the old depreciated version Simple IAP System 1 to this newer version.

    I have bought it before and im trying to figure out how to reset all purchases but since its out of support I probably wouldn't be able to get much assistance for it.

    Im really only using it for in game purchasing not actual transactions, I just cannot seem to clear all data or wipe the playerprefs, and when I clear the database it works for playing in the editor but still retains previous amounts stored when I build it (if that makes sense)

    If its anyway possible for me to upgrade to the latest and greatest it would mean a lot to me, I was hoping not to have to purchase it again if that is at all possible. Please let me know what you recommend.

    Thanks again for the amazing asset.


     
  16. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Hi @datlonpls, thanks for using SIS over the years!

    Unfortunately there is no "easy" way to upgrade v1 to the latest. The initial version has been in development for about 6 months, introducing major changes to its structure, files and workflow. For upgrade instructions, please see the changelog and notes there:
    https://flobuk.gitlab.io/assets/docs/unity/sis/versions#500-simple-iap-system-2

    If you decide to upgrade, I would recommend trying out that version in a new project to get familiar with the changed workflow. Then, you can export & import your JSON config from the old into the new version.

    The upgrade was free for one year. After that, the asset price was even lowered due to other income sources. Currently it is on sale too, so you would not get it cheaper than that. I hope you understand that I am not able to provide further support for a now nearly 2,5 year old version. I can only tell you that if you uninstall the app from your device, Unity usually clears all local storage with it too (or call PlayerPrefs.Clear() manually).
     
  17. Stonegolemstudio

    Stonegolemstudio

    Joined:
    Feb 26, 2022
    Posts:
    13
    Having an issue.
    The purchases go through when using the unity editor.
    But when testing on a device I get "Billing is not available"
    I made sure it's initializing.
    Any help?
    A FAQ or troubleshooting would link would work as well.
     
  18. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Hi / good morning @Stonegolemstudio,

    thanks for posting here. From the email you sent I understood you are using PayPal. What is the device you are trying to test on? If you are building a standalone (desktop) app, PayPal will initialize just fine, like in the editor. However if you are e.g. trying to build an Android app, it will first try to initialize Google Play - even if you do not use it yet - because that's the native solution, and then PayPal.
     
  19. Stonegolemstudio

    Stonegolemstudio

    Joined:
    Feb 26, 2022
    Posts:
    13
    Thanks for the reply @Baroni

    I'm testing on an Android Device. I assume I need to disable Google Play to make paypal the default?
     
  20. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Well, are you planning to distribute your app outside Google Play? Because if you are not, then Google does not allow using PayPal only - you are being "forced" to initialize billing with Google Play. That's also the reason there is currently no easy way to "disable Google Play" on Android in Simple IAP System. However we can figure something out if you are distributing outside Google Play, please follow up in that case.
     
  21. Stonegolemstudio

    Stonegolemstudio

    Joined:
    Feb 26, 2022
    Posts:
    13
    Yes I am planning to release outside Google Play.
    I assume I can make a quick bool toggle for it to check if not being released there I just need to know which script and line.
     
  22. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Could you try the following? If you have only IAP categories with the customBilling = PayPal override enabled, or otherwise all products with the customBilling = PayPal override enabled, then Google Play should not initialize. Meaning, you should not have any products for real money, without the PayPal override. Then it should work.

    Alternatively, remove the "if(IsFakeStoreOnly())" check at line 196 of IAPManager.cs, so it sets that always to true.
     
  23. FSFixer33

    FSFixer33

    Joined:
    May 14, 2018
    Posts:
    15
    @Baroni, hey.
    Bought your asset and it does not seem to work. On initializationFail event i get null ref message from block try-catch in your script. I am making ios app.
    I've tried looking in example scenes and all of them show me that billing is not set. I did everything by docs.
    I am attaching screen of code. I have prefab IAPManager on scene
     

    Attached Files:

  24. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Hello @FSFixer33, could you please post the exact error message? If you have placed the IAPManager in the same scene, it is not initialized in Awake yet. You should subscribe to the events in Start() then.
     
  25. FSFixer33

    FSFixer33

    Joined:
    May 14, 2018
    Posts:
    15
    Sure. Here is console output from the code I shared previously upload_2024-1-15_11-39-40.png

    Note: My project is linked to Unity Services. And initializing UnityServices goes without exceptions if do it myself. Probably error is connected to settings your script is building.
     
  26. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    @FSFixer33 did you try moving the event subscription in your script from Awake() to Start() as I wrote previously?
     
  27. FSFixer33

    FSFixer33

    Joined:
    May 14, 2018
    Posts:
    15
    Yes. In that case there are no callbacks coming
     
  28. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    If you are testing in the editor, Unity IAP initializes in the same millisecond that Awake() is called - with a fake store. So subscribing to the event in Start() will be too late. In reality, when testing on a physical device, this does not happen. Unity IAP will need at least 1 second to initialize and therefore your event in Start() will be fired. I would recommend testing on a real device.

    If you are concerned about this behavior or really need to make this work in the editor, you can disable "Auto Initialize" on the IAPManager inspector. Then, subscribe to the events in Start() as you are doing now, and call IAPManager.Initialize() afterwards. This will make sure that you have subscribed to the events before the IAPManager even tries initializing.
     
  29. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    Hello, I'm facing a serious, blocking issue related to in app purchases on both iOS and Android platforms.
    Essentially, after a currency purchase, if I close and reopen the the app for some unknown reason purchase process is fired again. This happen on both iOS and Android platforms. I attached the log from an iPad showing the process purchase done at startup without any intervention.
    Im using simple IAP version 5.0.2 and unity IAP version 4.10.0

    1705331964039.jpg
     
  30. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
  31. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    @Baroni can you please let us know? This is a blocking issue and we are ready to publish our app
     
  32. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Hi @newlife, did you really mean SIS 5.0.2? Not 5.2.0? There have been numerous fixes since 5.0.2 which was released in August 2021.

    According to the release notes the ReceiptValidatorClient script received bug fixes in 5.0.3 and 5.0.4. You will really want to update, or at least check what changed in these old versions using GitHub access.

    I am not able to provide further support on this based on the screenshot. I can only tell you that generally, if this happens then the ProcessPurchase callback (or the ReceiptValidatorClient in that case) probably does not return PurchaseProcessingResult.Complete so the transaction stays pending and is processed again and again.
     
    Last edited: Jan 16, 2024
  33. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    Yes 5.0.2. Can you tell me where I can check this in your code? Which version should I update to? I'm not very happy to update an important asset few days before the release of our app anyway
     
  34. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    @newlife I understand. I'm wondering why you are not running into any other issues on Google Play during testing, since pending purchases were introduced in a later version as well :rolleyes:

    As per version naming, minor version upgrades do not have any breaking changes. So from 5.0.2 you will want to update to 5.0.7 first. GitHub access is sold on my website since the Asset Store does not provide any way to upload older versions. You will specifically want to look at changes done to the IAPManager ProcessPurchase method and the ReceiptValidatorClient script.
     
  35. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    I have to pay to access the code that I already paid for? That's weird
     
  36. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    You don't have to... if you would download and maintain all versions yourself. I'm failing to see why as an asset developer I should provide everything for free, including support for a 3 year old version, and with what I would pay my bills then.
     
  37. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    I'm not asking for support, just being able to download that version
     
  38. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    So, to summarize - you do not want to use a service I am offering outside of the Unity Asset Store, which only costs a coffee, as a personal decision where no one forced me to, for exactly this use case. But instead, because you have bought that version 3 years ago, assume that I (and other asset developers) maintain a library of previous asset versions forever and send it to you via PM or email?

    I think you are not aware of this, or do not want to - I am doing this because the Unity Asset Store does not support hosting previous versions. Most other developers, especially those from less popular assets, do not offer older versions at all, because they do not have to. I guess if you do not want to use my service you'll have to open a ticket with the Unity Asset Store and wait 3 months for a reply to see what they say.

    Or, download the latest version and try to fix it yourself, of course.
     
  39. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    Listen. I have been an asset developer my self (I'm the author of UnityCar) and I never charged my customers when they asked me an older (or newer) version of my asset, even after I discontinued it.
    Keep in mind that your asset (version 5.0.2 so not exactly a beta version) has a serious, BLOCKING issue that is causing EVERY IAP to be called over and over at every app launch.
    I think that you are not aware, or do not want to accept, that your asset manages the most important part of an app, it managed the purchase process, so EVERYTHING must work flawless in order to keep our business alive.

    I'll handle this by myself
     
  40. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    That's why it received 5 more updates without any breaking changes. I would be very surprised if you find one other developer using that version trying to publish a new app.
    That's a wise decision. I already wrote the method and script you have to take a look at. Much success! Also with your app release.
     
  41. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    I didn't realize that the version we are using was so old frankly. Now I'm considering upgrading to the last version but I'm a bit afraid of the braking changes.

    That's a wise decision. I already wrote the method and script you have to take a look at. Much success! Also with your app release.[/QUOTE]
    Thanks, I appreciate it
     
  42. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    Hello @Baroni , I successfully upgraded simple IAP to the latest version but I'm facing a strange issue in the editor, after a purchase. When I restart I always got this error:

    Code (CSharp):
    1. ArgumentException: An item with the same key has already been added. Key: coins_small
    2. System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) (at <307f99c6ca41457e88f875b482781fa7>:0)
    3. System.Collections.Generic.Dictionary`2[TKey,TValue].Add (TKey key, TValue value) (at <307f99c6ca41457e88f875b482781fa7>:0)
    4. SIS.IAPContainer.CreateShopItems () (at Assets/SimpleIAPSystem/Scripts/IAPContainer.cs:88)
    5. SIS.IAPContainer.Start () (at Assets/SimpleIAPSystem/Scripts/IAPContainer.cs:45)
    I even tried to overwrite IAPListener and IAPSettings with the files in the package but to no avail.
    Can you please advice?
     
    Last edited: Jan 17, 2024
  43. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Hi again, that error does not originate from the IAPListener or IAPSettings on a first glance. The IAPContainer, responsible for instantiating your IAP prefabs in the scene, throws that error because the item is already present in the scene. So either you have two IAPContainers with the same category assigned in the scene, or maybe placed one item manually in addition to an IAPContainer component.
     
  44. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    I luckily found the culprit of this weird behaviour, that was also affecting another asset that we are using for cloud load /save.
    It was a project setting in the editor tab, "enter play mode options" with both read domain and reload scene unchecked. I unchecked those options to speed up enter play mode but in this way unity was not reloading the scene so the static data was kept in memory.
     
  45. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    Thank you for reporting back! I did not think of that. For reference and other users: Unity Documentation.
     
  46. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    You welcome. Btw, are IAPListener and UIShopFeedback both necessary? Im using only IAPListener to manage all events related to IAPs, and it seems that UIShopFeedback just manages events like IAPListener
     
  47. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    The IAPListener subscribes to events fired by the IAPManager and offers the option to customize the messages displayed on purchase, or for doing more internal work (granting other products or changing something in the UI).

    The UIShopFeedback component is responsible for everything UI related in the purchase process. Such as displaying the message invoked by the IAPListener, showing a loading screen while initiating a purchase with the App Store, or presenting other feedback to the user. Please see this documentation page for an overview of all windows.

    So, in theory, neither the IAPListener nor the UIShopFeedback components are necessary, if you do not do any custom work (IAPListener) or do not want to show any UI windows or handle them yourself (UIShopFeedback).
     
  48. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080
    @Baroni this is getting really annoying. The issue is STILL present even on version 5.3.0 and is due to something wrong in ReceiptValidatorClient. After removing it everything works as expected.

    So WHY ReceiptValidatorClient doesn't return PurchaseProcessingResult.Complete?? Have you ever tried ReceiptValidatorClient on an actual device? I followed your guide to enable Client-Side Receipt Verification (Receipt Validation Obfuscator, adding ReceiptValidatorClient to IAPManager, adding RECEIPT_VALIDATION in scripting define symbols).
    Please advice.
     
  49. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,260
    @newlife Please do not fall back to assumptions again stating I do not test my own code. Instead, please add what type of product you are trying to purchase (non/consumable/subscription), device and OS version.
     
  50. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,080