Hello @Shivaji_Games , at that part the validation already happened. It happens in line 85.
If you want to reward a user, the red area is the correct place. Also see the documentation which says: “You will then want to reward the user in case the PurchaseState is Purchased (not in case it is Failed) …”
Please also note my last reply to you above. If you are using Simple IAP System in your project, you are using the wrong SDK. For dedicated Receipt Validator support, please use the “Support” button in the Receipt Validator dashboard.
It seems like I don’t have the “sandbox” purchase option after release, requiring real money to test purchases. Is there a way to reenable it? Some users are reporting that the in-app purchases aren’t being completed. I’m investigating the situation and might report later if it’s anything in the library.
@mbast You have to log out from the App Store with your regular user, in your iOS settings. Then use a Sandbox test account you created in the Apple developer dashboard.
Sorry, I forgot to mention that it’s for Steam. I had the sandbox payment prior to release, now that the game is released I don’t have that option anymore, just the option to pay with the wallet funds.
@mbast Oh. Sorry, I received lots of different support requests lately. In Simple IAP System (or better Steamworks.NET) there is only one API for both environments, Sandbox and Production. The Steam backend then determines what environment to use, based on your logged in Steam user and your app publishing status. If the game is published, it really seems to be impossible to do sandbox testing anymore, as confirmed here: Sandbox mode not enabled for Steam microtransactions
Yeah, I saw the API endpoint and I was wondering if it could be changed using the SDK. I’ll have to do tests with 0.25$ packages for now. Thanks for the clarification though. And nice job understanding the messy Steamworks documentation, the amount of time you just saved me is worth way more than the package value or whatever I’d have to spend in microtransaction tests.
Hi @DevNoody , currently the asset uses v1 which is still used by several developers in production apps. I would not be able to support both versions, but it is planned to transition to v2 in the near future.
@mbast I appreciate kind words and also Asset Store reviews
Hi!
I have a problem:
After clicking “Buy” on Steam Purchase Overlay, it just disappears and I’m always getting items without payments.
Any Ideas? Is that default steam microtransactions behaviour for developer accounts? Which type of key / account I should have to test my iap with real money?
Hello, SIS.DBManager.IsPurchased(“product ID”) Is already returning true, before purchasing (pressing button). And If I press the purchasing button it says Item already purchased… any clue ?
Hello @Nayjest , your Steam Purchase Overlay should look like this, where it mentions “Payment Method: My Steam wallet (sandbox)”. Sandbox mode does not cost real money. If you would like to test a real money transaction, you can do so by creating or logging into another Steam account (therefore not your developer account) and do a closed or open testing phase - please see the official documentation for more details on this.
Hi @Shivaji_Games , you must have purchased the item already. Simple IAP System caches the purchase state locally and also retrieves it from the App Store. So if you would like to a new purchase test, you have to delete the cache locally (see example scene 11) and in addition, Google Play: revoke the transaction (Order management tab) or on Apple App Store: create a new sandbox tester account or delete the existing tester’s purchase history in the same tab (see “Add test accounts” section in the guide, takes up to 24 hours).
Hello, as you mentioned I deleted the cache by calling “DebugCalls.Reset”, but still SIS.DBManager.IsPurchased returning true even I created a new ProductID, still it’s returning true without clicking the purchase button. when I hit unity play it’s returning true from the beginning only
@Shivaji_Games On what platform? Did you specify a price in the IAP Settings for the product? Without a price it will be granted for free, automatically.
Hi @Jon_Wick , thanks for asking! Currently all SDKs use Unity IAP under the hood.
In theory, all IAP plugins should offer the same receipt data though, maybe in a slightly different format. So you could either try to use REST endpoint and send the receipt data using a POST request to the Receipt Validator yourself, or if you would like to use a component that does cover everything for you, I would be willing to create one for you for a subscription or small donation
Just checked ReceiptValidator, it seems it uses Unity IAP and will not work without
using UnityEngine.Purchasing;
using UnityEngine.Purchasing.Security;
Is your custom component offer includes switching from Unity IAP to android native IAP?
unfortunately Unity IAP makes my android build process more complex, so it’s better to avoid it…