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

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

    171 vote(s)
    86.4%
  2. Voxel Busters

    10 vote(s)
    5.1%
  3. Stans Assets

    13 vote(s)
    6.6%
  4. Prime31

    4 vote(s)
    2.0%
  1. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Yes. You can change the title and description in an app update, or in your App Store product settings if your product's "Fetch" option is enabled.
     
    SoerenL likes this.
  2. MaxLerner

    MaxLerner

    Joined:
    Jan 18, 2016
    Posts:
    6
    Can I remove "ship to" part with the simple IAP system?
    fetch is checked and I tried switching to virtual goods on the sandbox and it didn't work.
    Capture.JPG
     
  3. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Is this with PlayFab PayPal or the native PayPal implementation?
     
  4. MaxLerner

    MaxLerner

    Joined:
    Jan 18, 2016
    Posts:
    6
    native
     
  5. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @MaxLerner you can try adding the shipping_preference property to the application_context in PayPalStore.cs, line 245. Adding context["shipping_preference"] = "NO_SHIPPING"; should do the trick.

    However, note that this then applies to all PayPal checkouts and especially when using the native PayPal implementation with virtual goods, I hope you are using some kind of login and inventory service too, since otherwise users would loose their purchase when switching devices.
     
  6. MaxLerner

    MaxLerner

    Joined:
    Jan 18, 2016
    Posts:
    6
    Thank you it worked :)
     
  7. RandomCharacters

    RandomCharacters

    Joined:
    Nov 29, 2012
    Posts:
    262
    I'm getting this error. I have version 1 of IAP. I am pretty sure this is where it's coming from, although another plug-in may be doing it as well. Whenever I exit the game (in the editor), this error pops up 2 times. I have tried clearing the player prefs, clearing the database, changing the db manager's obfus key. Nothing. This is scene independeant. So if I have a blank bootstraper scene, it will give this error when exiting the game. So it must be a global thing. I don't have stuff that would do this except for SIAP and a obfuscator. Any ideas?



    Unexpected exception System.ArgumentException: Byte array for GUID must be exactly 16 bytes long.
    Parameter name: b
    at System.Guid..ctor (System.ReadOnlySpan`1[T] b) [0x0001a] in <47ab72e0328040438980f9c23608e1ec>:0
    at System.Guid..ctor (System.Byte[] b) [0x00016] in <47ab72e0328040438980f9c23608e1ec>:0
    at Burst.Compiler.IL.Hashing.Storage.ILHashingResultRuntime.GetHeader (System.String hashCachePath) [0x00027] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.Hashing.CacheRuntime.HashCacheLoader.CreateHashingResult (System.String assemblyFilePath) [0x0003d] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.Hashing.CacheRuntime.AssemblyState..ctor (Burst.Compiler.IL.Hashing.CacheRuntime.HashCacheAssemblyStore+LoadHashingResultDelegate loadHashingResultCallback, Burst.Compiler.IL.Hashing.CacheRuntime.HashCacheAssemblyStore+GetStringWriterDelegate getStringWriterCallback, Mono.Cecil.AssemblyNameReference assemblyName, System.String filePath, Mono.Cecil.AssemblyDefinition assemblyDefinition) [0x0000d] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.Hashing.CacheRuntime.HashCacheAssemblyStore.GetAssemblyState (System.String assemblyName, zzzUnity.Burst.CodeGen.AssemblyLoader assemblyLoader) [0x0005d] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.Hashing.CacheRuntime.LocalHashCacheAssemblyStore.GetAssemblyState (System.String assemblyName) [0x00000] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.Hashing.CacheRuntime.ILFinalHashCalculator.GetHashImpl () [0x00053] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.Hashing.CacheRuntime.ILFinalHashCalculator.GetHash (Mono.Cecil.MethodReference[] methodReferences, Burst.Compiler.IL.Hashing.CacheRuntime.HashCacheAssemblyStore assemblyStore, zzzUnity.Burst.CodeGen.AssemblyLoader assemblyLoader, Burst.Compiler.IL.NativeCompilerOptions options, System.Action`2[T1,T2] onVisitItem) [0x0000c] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.NativeCompiler.ComputeHash () [0x0004e] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.Jit.JitCompiler.CompileMethodInternal (Burst.Compiler.IL.Jit.JitResult result, System.Collections.Generic.List`1[T] methodsToCompile, Burst.Compiler.IL.Jit.JitOptions jitOptions) [0x0017e] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.Jit.JitCompiler.CompileMethods (Burst.Compiler.IL.Jit.JitMethodGroupRequest& request, Burst.Compiler.IL.Jit.JitCompilationRequestType requestType) [0x00209] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.Jit.JitCompiler.CompileMethod (Burst.Compiler.IL.Jit.MethodReferenceWithMethodRefString method, Burst.Compiler.IL.Jit.JitOptions jitOptions, Burst.Compiler.IL.Jit.JitCompilationRequestType requestType) [0x00023] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    at Burst.Compiler.IL.Jit.JitCompilerService+CompilerThreadContext.Compile (Burst.Compiler.IL.Jit.JitCompilerService+CompileJob job, Burst.Compiler.IL.Jit.JitCompilationRequestType requestType) [0x00491] in <f62f815ed0424c7fb81b25b6e07ffd18>:0
    While compiling job: System.Void UnityEditor.U2D.Animation.TriangulationUtility::TessellateBurst(Unity.Collections.Allocator,Unity.Mathematics.float2*,System.Int32,Unity.Mathematics.int2*,System.Int32,Unity.Mathematics.float2*,System.Int32*,Unity.Mathematics.int2*,System.Int32,Unity.Mathematics.int3*)
    at <empty>:line 0
     
  8. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi @RandomCharacters, I have never seen this error before, but also cannot find any relation to Simple IAP System in the log. There is no mention of any SIS script. Could it be that you are trying to compile something with Burst instead? SIS does not support DOTS or Burst jobs.

     
  9. RandomCharacters

    RandomCharacters

    Joined:
    Nov 29, 2012
    Posts:
    262
    I deleted the 2d packages stuff and reinstalled. This seems to have fixed it.
     
    Baroni likes this.
  10. MaxLerner

    MaxLerner

    Joined:
    Jan 18, 2016
    Posts:
    6
  11. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @MaxLerner As per "Supported Features" matrix shown on the Asset Store (last screenshot), PayPal subscriptions are currently not supported in Simple IAP System. You are actually the first one requesting it - I haven't had a chance to look into PayPal subscriptions yet, but will do so in the next days to see if there is a simple way to support them.

    Side note: the IAP Catalog is not used in Simple IAP System in any way, you would not need to maintain that.
     
    MaxLerner likes this.
  12. Gushmeister

    Gushmeister

    Joined:
    Apr 30, 2018
    Posts:
    50
    Hello!

    Today I had to update my Unity 2018 Version to Unity 2019 because of Plastic SCM. Some years ago I bought the "old" Simple IAP System (1). When upgraded to Unity 2019 it has shown me some errors, so I just bought the new Version to update in hope that everything will work. Now, I can't get my project running, because I have these error messages:

    Code (CSharp):
    1. Assets/Scripts/Shop/ChooseSkin.cs(20,10): error CS0246: The type or namespace name 'IAPGroup' could not be found (are you missing a using directive or an assembly reference?)
    2.  
    3. Assets/SimpleIAPSystem/Scripts/IAPItem.cs(132,26): error CS0246: The type or namespace name 'IAPObject' could not be found (are you missing a using directive or an assembly reference?)
    Is there a way to migrate from IAP 1 to IAP 2? What do I have to change to get my things running again?

    Greetings
     
  13. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi @Gushmeister,

    Simple IAP System 2 is a major upgrade to SIS1, where breaking changes were introduced as that seemed to be the right time (otherwise it would not be a paid upgrade and just an additional SIS1 version instead). You can find the upgrade notes in the release notes section, here (it says it's not backwards compatible right away).

    Basically when upgrading to SIS2 you would need to import your previous products and re-do the shop setup as some things changed in their structure. As a SIS1 user, you will understand the new concept fairly quick when looking at the example scenes. Regarding the two classes you mentioned: IAPGroup is now IAPCategory and IAPObject was renamed to IAPProduct. If you've accessed the product lists at runtime you can still do so via the IAPScriptableObject e.g. using IAPManager.GetInstance().asset.
     
  14. itaykatzav

    itaykatzav

    Joined:
    Feb 6, 2022
    Posts:
    4
    Hi!
    We invested a few days to change our checkout page to this plug, relying that it will work for subscriptions as mentioned on the plugin documentation. We wasted already a few days with Paypal support to understand why we get only regular payments and not subscriptions, as eventually we understood it's related to the plugin.
    We are losing 70% of our REVENUE now, because our users pay a regular payment and not a subscription. PLUS, we paused some of our ad campaigns because of it.
    Attached the screenshots of the documentation regarding the subscription.

    Please let us know when this issue is going to be solved that we will know how to adjust ourselves.
     

    Attached Files:

  15. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hello @itaykatzav, I'll have to intervene here, even on a Sunday. The feature matrix on the Asset Store, last screenshot, clearly shows that native PayPal subscriptions are currently not supported. I attached the snippet to this post as well. The feature matrix also shows that subscriptions are supported, for Unity IAP native stores (Apple, Google) and Xsolla. The documentation PDF does not repeat this every time when mentioning the word "subscription". It is unfortunate that you are losing revenue, however testing a full subscription cycle in your app would have been essential.

    Since the feature was not there to begin with, this issue is not really an "issue", but a feature request I am taking a look at next week. Your immediate actions could be switching to the Xsolla implementation instead, which comes with a login system and subscriptions support. If you would like to stay with PayPal, may I ask how you are ensuring that players keep their subscription access? Do you provide a login system yourself?
     

    Attached Files:

  16. itaykatzav

    itaykatzav

    Joined:
    Feb 6, 2022
    Posts:
    4
    Thanks for the quick reply.
    I understand, but please notice that this description is very confusing as it seems like an alternatives table (as one of the columns is the name of your plugin).

    And sounds good :) Regarding your question - We access our users' subscriptions via our database, and we have a system to manage our users. I hope that this answers your question.

    Thanks,
    Itay
     
  17. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi @MaxLerner @itaykatzav,

    I have finished adding support for native PayPal subscriptions and am currently wrapping up a release. The documentation page will be updated with a small section for subscriptions too. Note that similar to current non-subscription PayPal purchases, Simple IAP System cannot know about the purchase state in your or PayPal's backend. You are responsible for providing users with a login/inventory system to access their subscription content and/or update their in-game inventory when they cancel their subscription.

    I expect the update to be available later today on my website (direct purchasers) and in 1-2 weeks on the Unity Asset Store. I'll post the changelog here in a few hours.
     
    itaykatzav and MaxLerner like this.
  18. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    5.0.7
    • added support for native PayPal subscription order processing. As with non-subscription PayPal transactions, note that you have to track user inventory and subscription state yourself
    • fixed product store overrides for native PayPal payments not taking the local store product identifier entered
    • minimum required Unity version: 2020.3.0
    Available to download for direct customers now, Asset Store release in 1-2 weeks.
     
    MaxLerner likes this.
  19. QuadMan

    QuadMan

    Joined:
    Apr 9, 2014
    Posts:
    122
    Hi,
    so I've used the SIS's native steam store to implement the microtransaction, but the purchase overlay is not showing up.
    I've already checked AppID, checking the correct folder location, Steam initialize one, and Purchase() is calling. Both are working and calling, but no overlay.
    Here's my item definition

    Since the documentation only explains the playfab one, am I missing something?
     
  20. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi @QuadMan, thanks for posting here.

    Since there can be a lot going wrong with the Steam setup, it is difficult to find an exact cause for the purchase overlay not showing up. However, that alone is an indication that the connection to the Steam store is not working correctly. If you are also unable to open the game overlay (shift+tab), then this means that the connection to Steam as a whole is not working. Things to check for both cases:

    Steam game overlay not showing up:
    • App type defined in Steamworks is "Game" (Software, DLC etc. will not work)
    • AppID modified in SteamManager script (search for default AppID 480)
    • AppID added to steam_appid.txt in project root directory
    • Logged in with your Steam developer account into the Steam app
    • Added the app to Steam using "Add a Non-Steam Game"
    • Build data copied to X:\...\Steam\steamapps\common\YourAppName
    • App launched from within Steam app
    Steam purchase overlay not showing up:
    • make sure the game overlay is working first (see above)
    • build app in Development mode to see Unity IAP errors such as no products found
    • check product definition JSON uploaded to Steam for errors (see below for a sample)
    • verify that product identifiers in SIS and product definitions in Steam match (identifiers are numeric only)
    Code (CSharp):
    1. {
    2.   "appid": "YOURAPPID",
    3.   "items": [
    4.   {
    5.   "itemdefid": "100",
    6.   "type": "item",
    7.   "name": "Item 1",
    8.   "price": "1;VLV500",
    9.   "description": "My Item 1"
    10.   },
    11.   {
    12.   "itemdefid": "200",
    13.   "type": "item",
    14.   "name": "Item 2",
    15.   "price": "1;VLV1000",
    16.   "description": "My Item 2"
    17.   }
    18. ]}
    The guide on the docs pages is for both, native and PlayFab. If you are not using PlayFab you can just skip the parts mentioning it, as written in the guide. The YouTube video at the top also quickly goes over all Steamworks settings (again skip the Web API Key and PlayFab parts but enable the "Community > Inventory Service" checkbox). Looking at the item definition JSON you sent via DM I found that it is not in the correct format. I hope that the other points mentioned above also help in figuring out the issue.
     
  21. itaykatzav

    itaykatzav

    Joined:
    Feb 6, 2022
    Posts:
    4
    Thanks, we're looking forward
     
  22. m-y

    m-y

    Joined:
    Sep 22, 2013
    Posts:
    471
    Hi , How to use the plugin to make In App Purchase with a Steam ?
     
  23. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
  24. m-y

    m-y

    Joined:
    Sep 22, 2013
    Posts:
    471
    Can I test everything before publish on steam , or I have to publish to be able to see the ability to purchase ?
     
  25. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    You can and should test purchases with your developer account before going live.
     
  26. m-y

    m-y

    Joined:
    Sep 22, 2013
    Posts:
    471
    if you can do this task for me ? for a cost as a freelancing contract ?
     
  27. Recon03

    Recon03

    Joined:
    Aug 5, 2013
    Posts:
    845
    Fantastic, I used Simple IAP for years.., glad to see you guys are working on server-side receipt validation, RECEIPT VALIDATION .

    I signed up and glad to see something like this being made, and it looks like its affordable.

    Question though, I signed up for the free account, now, during beta testing once you guys release this product, is there going to be a pay as you go like system where we can beta test, with out costs, and once we release, it scale according? This is all related to your new product, I didn't see a place to post anything about it, so I hope it was fine to post here.

    Thanks!
     
  28. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Unfortunately I am not available for contract work, I am sorry. Steam integration can be a bit confusing due to the closed developer access and documentation provided by Valve, however my guide and the checklist mentioned above should get you started. Debug the integration and make sure that your app can connect with the Steam backend at all, following the Steamworks.NET instructions, before continuing with in-app purchases.
     
  29. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @Recon03 Thank you for the motivating words! I worked on the receipt validation platform for the last 1,5 years, glad it seems to be appealing.

    The free account is indeed free, forever, allowing you to check out the dashboards and backend service already with no costs for consumable + non-consumable product validations. For devs who would like to just add an additional layer of security at the time of purchase and have a low amount of validations, this could be sufficient.

    When it comes to subscriptions and storage features, the STARTER plan has a beta launch discount, but as a Simple IAP System user you will also get a month of that for free! Just send your invoice number to sales [at] flobuk [dot] com for a voucher. The plan will renew (with the beta discount), but you can cancel or upgrade it at any time. If you need more time to test the platform, we can discuss as well!

    Absolutely fine to post here, I haven't made an announcement post somewhere else yet. I am also happy to tell you that the service is very close to release, approximately within the next 2 weeks.
     
    frbrz and Recon03 like this.
  30. Recon03

    Recon03

    Joined:
    Aug 5, 2013
    Posts:
    845

    Yes, i'm very interested, and I will need more than a free account on the success of the game . So during testing, prolly best to use the free version, as I won't go over the amount, so that should take care of that part . So that was my concern, racking up costs during test phase. something, I don't want to do, as you know we have no money coming in , during development, so that was why I had asked that question.

    Anyways, I for sure, will be 100% interested as this is a common problem, with users, who buy micros, and don't have any way to prove what they paid for, and end up losing $$ , time etc. This also look affordable as well, the paid tiers that is.

    Thanks for the fast reply.

    PS: I never needed to ask for support from you, so I been impressed with Simple IAP. so, I have no doubt this one will be great too, thanks for your hard work.
     
    Baroni likes this.
  31. crazy_genius

    crazy_genius

    Joined:
    Jan 4, 2020
    Posts:
    17
    is it possible to mix between points in leaderboard i made in firebase to buy things in stores? where exactly is the currency being holded?
     
  32. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    It's stored in the DBManager. You could do a conversion from your Firebase points to the currency using the AddCurrency or SetCurrency method, for example.
     
  33. crazy_genius

    crazy_genius

    Joined:
    Jan 4, 2020
    Posts:
    17
    1.correct me if I'm wrong...the currency is local to the user's device?,meaning every user has it's own currency without relation to other users?

    2. what if i want to change between users in the same application in the device? i ask because i see you store the information in playerefs

    3. i also see "user inventory online"? where exactly?

    4. i must register to a store(google play) or something? or can i have my own store?
     
    Last edited: Mar 7, 2022
  34. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    That's correct. Simple IAP System stores currency and in-app purchase locally, optionally encrypted, if you wish to.

    This has not been in demand for as long as the asset exists, but if you see it as a critical feature, you may want to modify the name of the PlayerPref key in code, in the DBManager (in the variables section), and append your active user name to it.

    Where do you see that? I can only guess that you are referring to the Xsolla or PlayFab integrations. Both provide user login and save purchases and currency on their servers, rather than on the device.

    This is a very broad question, without knowledge on what you would like to do. If you publish your app to an App Store, you have to use the native store (i.e. Google Play) for your in-app purchases. This is mentioned in their terms. If you have your own distribution platform, you could use Xsolla or PlayFab for creating your own store and use their payment systems (credit card / PayPal) exclusively. If you only sell virtual products (for virtual currency), you do not have to use any payment provider at all.
     
    crazy_genius likes this.
  35. Shamahan

    Shamahan

    Joined:
    Oct 1, 2017
    Posts:
    5
    Greetings,

    I'm having a lot of trouble with getting the Steam Purchases working (I'm not using the server verification and the purchases will be only for a currency in game)

    What I noticed is that when I call IAPManager.Purchase the purchase always ends at the
    if (controller == null)
    check, so I investigated further and found that when the IAPManager is initializing the
    UnityPurchasing.Initialize(this, builder)
    line is called but OnInitialized never gets a callback from it, meaning that controller will always be null.


    I have defined the items in steam inventory and in SIS. App ID is correct and shows me in game while testing in Unity. While testing from Steam pressing Shift+Tab opens the overlay correctly.

    I would really appreciate any help with this.

    *EDIT*
    In IAPManager.Purchase switch for product.IsVirtual() check I had to set to always false, otherwise the steam purchase didn't get called but the player got the in game currency for free
     
    Last edited: Mar 9, 2022
  36. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi @Shamahan, unfortunately it is nearly impossible for me to remotely troubleshoot Steam integrations, as there are usually no helpful debug messages that describe the issue at all. Did you see this post above?

    With the UnityIAP controller being null, this means that the Steam purchasing initialization and connection is not successful. The display of the App ID and overlay is good, which means that the build can at least connect to your Steam application. Have you tried running the build as Development build and checking the log folder for any UnityIAP messages for more information? Then, the next step would be to insert Debug statements in the SteamStore script, to find out whether initialization completes and products are received.

    The IsVirtual check returns true if you haven't added a real money currency for your product. Or no required purchasing currency at all, what would then grant the item for free. Could you please confirm that this is the case, or describe steps on how to reproduce this?
     
  37. kygen007

    kygen007

    Joined:
    Feb 20, 2017
    Posts:
    8
    Hi @Baroni
    I'm using Simple IAP System pack to implement IAP for Steam by Playfab.
    firest, I added the store items and the exported as a JSON file...
    The problem is when I upload the JSON file to the Playfab catalog I got this error "InvalidItemProperties"

    And I need to share with me a clear tutorial to make IAP for steam clearly for the latest version of Simple IAP System Version 5.0.7

    Thanks
     
  38. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi @kygen007, thanks for posting here. Could you attach your JSON file so I can take a look?

    The guide for Steam is still valid, there is even a video on that page covering the Steamworks part. Although the Simple IAP System interface has changed since recording the video, there is really nothing else special about it - it just mentions entering your product identifiers correctly in Unity.

    However, I am planning to do a better guide separated for Steam & PlayFab or Steam Inventory (native). This post above also mentions common errors in the setup.
     
  39. alihaider3300

    alihaider3300

    Joined:
    Apr 3, 2020
    Posts:
    3
    Hi, I purchased this asset few days a go and i am trying to import it. But Everytime i get 19 errors related to IAP, Playfab scripts etc as shown in picture below. Please help me solve the errors.
    upload_2022-3-13_0-23-46.png


    upload_2022-3-13_0-24-17.png
     
  40. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi @alihaider3300, thanks for posting here. The full ReceiptValidatorService script is wrapped in a #if PLAYFAB directive. Because of this, I assume your project has a PLAYFAB platform directive (see here on where to find it), but you either did not import Unity IAP or the PlayFab SDK yet. Maybe even some other script set it, or you've added it manually.

    I would recommend removing the PLAYFAB directive from your project (and all other directives you are not using) to get a clean project and letting the scripts compile. Then, import Unity IAP if you haven't already, open the Simple IAP System project settings and do the plugin setup. If you still get errors like "Product does not contain a definition for..." this means that you've defined or imported a class named Product without having its own namespace, clashing with the Unity IAP Product class.

    On a side note, please remove your review from the Asset Store page. Reviews are not for requesting support and this is the correct place to do it - the link to this thread is in the asset description, documentation pages and in the asset's "About" window.
     
  41. kygen007

    kygen007

    Joined:
    Feb 20, 2017
    Posts:
    8
    I got 3 JSON files and I uploaded the only one called "SimpleIAPSystem_IAPSettings_PlayFab.json"

    Here is the file content:

    {
    "CatalogVersion":1,
    "Catalog":[
    {
    "CatalogVersion":1,
    "ItemId":"500_coins",
    "DisplayName":"500 Coins",
    "Description":"Get 500 Coins For 0.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":99
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "CO":500
    }
    },
    "SIS":{
    "Ref":"23d4e7bf-bb8d-47c5-9f0a-c63361a92487",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"0.99$",
    "Type":0,
    "Icon":"Assets/Icons/Coins/coin 1.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"1500_coins",
    "DisplayName":"1,500 Coins",
    "Description":"Get 1,500 Coins For 1.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":199
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "CO":1500
    }
    },
    "SIS":{
    "Ref":"5f52c77d-d3ac-4698-ac88-0c220e8c0962",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"1.99$",
    "Type":0,
    "Icon":"Assets/Icons/Coins/coin 2.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"5000_coins",
    "DisplayName":"5,000 Coins",
    "Description":"Get 5,000 Coins For 3.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":399
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "CO":5000
    }
    },
    "SIS":{
    "Ref":"93b42b3d-c37f-4683-a169-ceb48612737b",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"3.99$",
    "Type":0,
    "Icon":"Assets/Icons/Coins/coin 3.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"10000_coins",
    "DisplayName":"10,000 Coins",
    "Description":"Get 10,000 Coins For 5.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":599
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "CO":10000
    }
    },
    "SIS":{
    "Ref":"4574efe2-653c-40a6-80aa-9277da586c00",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"5.99$",
    "Type":0,
    "Icon":"Assets/Icons/Coins/coin 4.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"50000_coins",
    "DisplayName":"50,000 Coins",
    "Description":"Get 50,000 Coins For 10.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":1099
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "CO":50000
    }
    },
    "SIS":{
    "Ref":"f1bd96f0-69fd-4b8f-ae93-02eb2386690a",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"10.99$",
    "Type":0,
    "Icon":"Assets/Icons/Coins/coin 5.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"100000_coins",
    "DisplayName":"100,000 Coins",
    "Description":"Get 100,000 Coins For 15.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":1599
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "CO":100000
    }
    },
    "SIS":{
    "Ref":"1a75fccb-279f-445a-9b5d-c6bcac8906a9",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"15.99$",
    "Type":0,
    "Icon":"Assets/Icons/Coins/coin 6.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"500_gems",
    "DisplayName":"500 Gems",
    "Description":"Get 500 Gems For 1.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":199
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "GE":500
    }
    },
    "SIS":{
    "Ref":"f1ca05c1-ccd3-4ca9-8b14-6e5f70f52630",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"1.99$",
    "Type":0,
    "Icon":"Assets/Icons/Gems/Gems1.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"1500_gems",
    "DisplayName":"1,500 Gems",
    "Description":"Get 1,500 Gems For 2.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":299
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "GE":1500
    }
    },
    "SIS":{
    "Ref":"ae1182d5-021e-4fae-acd8-270d7d14a42b",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"2.99$",
    "Type":0,
    "Icon":"Assets/Icons/Gems/Gems2.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"5000_gems",
    "DisplayName":"5,000 Gems",
    "Description":"Get 5,000 Gems For 4.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":499
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "GE":5000
    }
    },
    "SIS":{
    "Ref":"9a67e292-72d9-4092-b20f-6b8e76fe5afe",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"4.99$",
    "Type":0,
    "Icon":"Assets/Icons/Gems/Gems3.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"10000_gems",
    "DisplayName":"10,000 Gems",
    "Description":"Get 10,000 Gems For 6.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":699
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "GE":10000
    }
    },
    "SIS":{
    "Ref":"e5ee3363-9ae0-4dab-bd9b-ffff6c386703",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"6.99$",
    "Type":0,
    "Icon":"Assets/Icons/Gems/Gems4.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"50000_gems",
    "DisplayName":"50,000 Gems",
    "Description":"Get 50,000 Gems For 20.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":2099
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "GE":50000
    }
    },
    "SIS":{
    "Ref":"3a77f95e-3fa0-43fd-a99a-2db4376c6155",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"20.99$",
    "Type":0,
    "Icon":"Assets/Icons/Gems/Gems5.png"
    }
    },
    {
    "CatalogVersion":1,
    "ItemId":"100000_gems",
    "DisplayName":"100,000 Gems",
    "Description":"Get 100,000 Gems For 25.99$",
    "Consumable":{
    "UsagePeriod":5
    },
    "VirtualCurrencyPrices":{
    "RM":2599
    },
    "Bundle":{
    "BundledVirtualCurrencies":{
    "GE":100000
    }
    },
    "SIS":{
    "Ref":"7884085c-d39b-47ef-8f07-a8adc126c8a5",
    "Group":{
    "Name":"IAP",
    "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    },
    "Fetch":"false",
    "Price":"25.99$",
    "Type":0,
    "Icon":"Assets/Icons/Gems/Gems6.png"
    }
    }
    ]
    }
     
  42. kygen007

    kygen007

    Joined:
    Feb 20, 2017
    Posts:
    8


    Code (CSharp):
    1. I got 3 JSON files and I uploaded the only one called "SimpleIAPSystem_IAPSettings_PlayFab.json"
    2.  
    3. Here is the file content:
    4.  
    5. {
    6. "CatalogVersion":1,
    7. "Catalog":[
    8. {
    9. "CatalogVersion":1,
    10. "ItemId":"500_coins",
    11. "DisplayName":"500 Coins",
    12. "Description":"Get 500 Coins For 0.99$",
    13. "Consumable":{
    14. "UsagePeriod":5
    15. },
    16. "VirtualCurrencyPrices":{
    17. "RM":99
    18. },
    19. "Bundle":{
    20. "BundledVirtualCurrencies":{
    21. "CO":500
    22. }
    23. },
    24. "SIS":{
    25. "Ref":"23d4e7bf-bb8d-47c5-9f0a-c63361a92487",
    26. "Group":{
    27. "Name":"IAP",
    28. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    29. },
    30. "Fetch":"false",
    31. "Price":"0.99$",
    32. "Type":0,
    33. "Icon":"Assets/Icons/Coins/coin 1.png"
    34. }
    35. },
    36. {
    37. "CatalogVersion":1,
    38. "ItemId":"1500_coins",
    39. "DisplayName":"1,500 Coins",
    40. "Description":"Get 1,500 Coins For 1.99$",
    41. "Consumable":{
    42. "UsagePeriod":5
    43. },
    44. "VirtualCurrencyPrices":{
    45. "RM":199
    46. },
    47. "Bundle":{
    48. "BundledVirtualCurrencies":{
    49. "CO":1500
    50. }
    51. },
    52. "SIS":{
    53. "Ref":"5f52c77d-d3ac-4698-ac88-0c220e8c0962",
    54. "Group":{
    55. "Name":"IAP",
    56. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    57. },
    58. "Fetch":"false",
    59. "Price":"1.99$",
    60. "Type":0,
    61. "Icon":"Assets/Icons/Coins/coin 2.png"
    62. }
    63. },
    64. {
    65. "CatalogVersion":1,
    66. "ItemId":"5000_coins",
    67. "DisplayName":"5,000 Coins",
    68. "Description":"Get 5,000 Coins For 3.99$",
    69. "Consumable":{
    70. "UsagePeriod":5
    71. },
    72. "VirtualCurrencyPrices":{
    73. "RM":399
    74. },
    75. "Bundle":{
    76. "BundledVirtualCurrencies":{
    77. "CO":5000
    78. }
    79. },
    80. "SIS":{
    81. "Ref":"93b42b3d-c37f-4683-a169-ceb48612737b",
    82. "Group":{
    83. "Name":"IAP",
    84. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    85. },
    86. "Fetch":"false",
    87. "Price":"3.99$",
    88. "Type":0,
    89. "Icon":"Assets/Icons/Coins/coin 3.png"
    90. }
    91. },
    92. {
    93. "CatalogVersion":1,
    94. "ItemId":"10000_coins",
    95. "DisplayName":"10,000 Coins",
    96. "Description":"Get 10,000 Coins For 5.99$",
    97. "Consumable":{
    98. "UsagePeriod":5
    99. },
    100. "VirtualCurrencyPrices":{
    101. "RM":599
    102. },
    103. "Bundle":{
    104. "BundledVirtualCurrencies":{
    105. "CO":10000
    106. }
    107. },
    108. "SIS":{
    109. "Ref":"4574efe2-653c-40a6-80aa-9277da586c00",
    110. "Group":{
    111. "Name":"IAP",
    112. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    113. },
    114. "Fetch":"false",
    115. "Price":"5.99$",
    116. "Type":0,
    117. "Icon":"Assets/Icons/Coins/coin 4.png"
    118. }
    119. },
    120. {
    121. "CatalogVersion":1,
    122. "ItemId":"50000_coins",
    123. "DisplayName":"50,000 Coins",
    124. "Description":"Get 50,000 Coins For 10.99$",
    125. "Consumable":{
    126. "UsagePeriod":5
    127. },
    128. "VirtualCurrencyPrices":{
    129. "RM":1099
    130. },
    131. "Bundle":{
    132. "BundledVirtualCurrencies":{
    133. "CO":50000
    134. }
    135. },
    136. "SIS":{
    137. "Ref":"f1bd96f0-69fd-4b8f-ae93-02eb2386690a",
    138. "Group":{
    139. "Name":"IAP",
    140. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    141. },
    142. "Fetch":"false",
    143. "Price":"10.99$",
    144. "Type":0,
    145. "Icon":"Assets/Icons/Coins/coin 5.png"
    146. }
    147. },
    148. {
    149. "CatalogVersion":1,
    150. "ItemId":"100000_coins",
    151. "DisplayName":"100,000 Coins",
    152. "Description":"Get 100,000 Coins For 15.99$",
    153. "Consumable":{
    154. "UsagePeriod":5
    155. },
    156. "VirtualCurrencyPrices":{
    157. "RM":1599
    158. },
    159. "Bundle":{
    160. "BundledVirtualCurrencies":{
    161. "CO":100000
    162. }
    163. },
    164. "SIS":{
    165. "Ref":"1a75fccb-279f-445a-9b5d-c6bcac8906a9",
    166. "Group":{
    167. "Name":"IAP",
    168. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    169. },
    170. "Fetch":"false",
    171. "Price":"15.99$",
    172. "Type":0,
    173. "Icon":"Assets/Icons/Coins/coin 6.png"
    174. }
    175. },
    176. {
    177. "CatalogVersion":1,
    178. "ItemId":"500_gems",
    179. "DisplayName":"500 Gems",
    180. "Description":"Get 500 Gems For 1.99$",
    181. "Consumable":{
    182. "UsagePeriod":5
    183. },
    184. "VirtualCurrencyPrices":{
    185. "RM":199
    186. },
    187. "Bundle":{
    188. "BundledVirtualCurrencies":{
    189. "GE":500
    190. }
    191. },
    192. "SIS":{
    193. "Ref":"f1ca05c1-ccd3-4ca9-8b14-6e5f70f52630",
    194. "Group":{
    195. "Name":"IAP",
    196. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    197. },
    198. "Fetch":"false",
    199. "Price":"1.99$",
    200. "Type":0,
    201. "Icon":"Assets/Icons/Gems/Gems1.png"
    202. }
    203. },
    204. {
    205. "CatalogVersion":1,
    206. "ItemId":"1500_gems",
    207. "DisplayName":"1,500 Gems",
    208. "Description":"Get 1,500 Gems For 2.99$",
    209. "Consumable":{
    210. "UsagePeriod":5
    211. },
    212. "VirtualCurrencyPrices":{
    213. "RM":299
    214. },
    215. "Bundle":{
    216. "BundledVirtualCurrencies":{
    217. "GE":1500
    218. }
    219. },
    220. "SIS":{
    221. "Ref":"ae1182d5-021e-4fae-acd8-270d7d14a42b",
    222. "Group":{
    223. "Name":"IAP",
    224. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    225. },
    226. "Fetch":"false",
    227. "Price":"2.99$",
    228. "Type":0,
    229. "Icon":"Assets/Icons/Gems/Gems2.png"
    230. }
    231. },
    232. {
    233. "CatalogVersion":1,
    234. "ItemId":"5000_gems",
    235. "DisplayName":"5,000 Gems",
    236. "Description":"Get 5,000 Gems For 4.99$",
    237. "Consumable":{
    238. "UsagePeriod":5
    239. },
    240. "VirtualCurrencyPrices":{
    241. "RM":499
    242. },
    243. "Bundle":{
    244. "BundledVirtualCurrencies":{
    245. "GE":5000
    246. }
    247. },
    248. "SIS":{
    249. "Ref":"9a67e292-72d9-4092-b20f-6b8e76fe5afe",
    250. "Group":{
    251. "Name":"IAP",
    252. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    253. },
    254. "Fetch":"false",
    255. "Price":"4.99$",
    256. "Type":0,
    257. "Icon":"Assets/Icons/Gems/Gems3.png"
    258. }
    259. },
    260. {
    261. "CatalogVersion":1,
    262. "ItemId":"10000_gems",
    263. "DisplayName":"10,000 Gems",
    264. "Description":"Get 10,000 Gems For 6.99$",
    265. "Consumable":{
    266. "UsagePeriod":5
    267. },
    268. "VirtualCurrencyPrices":{
    269. "RM":699
    270. },
    271. "Bundle":{
    272. "BundledVirtualCurrencies":{
    273. "GE":10000
    274. }
    275. },
    276. "SIS":{
    277. "Ref":"e5ee3363-9ae0-4dab-bd9b-ffff6c386703",
    278. "Group":{
    279. "Name":"IAP",
    280. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    281. },
    282. "Fetch":"false",
    283. "Price":"6.99$",
    284. "Type":0,
    285. "Icon":"Assets/Icons/Gems/Gems4.png"
    286. }
    287. },
    288. {
    289. "CatalogVersion":1,
    290. "ItemId":"50000_gems",
    291. "DisplayName":"50,000 Gems",
    292. "Description":"Get 50,000 Gems For 20.99$",
    293. "Consumable":{
    294. "UsagePeriod":5
    295. },
    296. "VirtualCurrencyPrices":{
    297. "RM":2099
    298. },
    299. "Bundle":{
    300. "BundledVirtualCurrencies":{
    301. "GE":50000
    302. }
    303. },
    304. "SIS":{
    305. "Ref":"3a77f95e-3fa0-43fd-a99a-2db4376c6155",
    306. "Group":{
    307. "Name":"IAP",
    308. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    309. },
    310. "Fetch":"false",
    311. "Price":"20.99$",
    312. "Type":0,
    313. "Icon":"Assets/Icons/Gems/Gems5.png"
    314. }
    315. },
    316. {
    317. "CatalogVersion":1,
    318. "ItemId":"100000_gems",
    319. "DisplayName":"100,000 Gems",
    320. "Description":"Get 100,000 Gems For 25.99$",
    321. "Consumable":{
    322. "UsagePeriod":5
    323. },
    324. "VirtualCurrencyPrices":{
    325. "RM":2599
    326. },
    327. "Bundle":{
    328. "BundledVirtualCurrencies":{
    329. "GE":100000
    330. }
    331. },
    332. "SIS":{
    333. "Ref":"7884085c-d39b-47ef-8f07-a8adc126c8a5",
    334. "Group":{
    335. "Name":"IAP",
    336. "Ref":"3097ec21-dab5-4a80-82d4-1cfe4b4c54e7"
    337. },
    338. "Fetch":"false",
    339. "Price":"25.99$",
    340. "Type":0,
    341. "Icon":"Assets/Icons/Gems/Gems6.png"
    342. }
    343. }
    344. ]
    345. }
     
  43. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    That's the issue :) Your products have a "coins" and "gems" currency. It seems that in PlayFab you only defined coins (CO). You have to define gems (GE) as well, either manually in the Currency tab or by uploading the "SimpleIAPSystem_Currencies.json" file in PlayFab's Currency tab. Afterwards you can try uploading your products json again.
     
    kygen007 likes this.
  44. kygen007

    kygen007

    Joined:
    Feb 20, 2017
    Posts:
    8
    Thanks Dear,
    Now I can Upload The JSON file in Playfab perfectly.
    But right now, I see new issue Msg "Billing is not available." and I see in the unity log this Msg "Unity IAP is not initialized correctly! Please check your billing settings".
    What should I do to fix pls?
     
  45. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Unfortunately I am not able to provide detailed instructions to solve this since I do not know your billing settings. This message is a general information that your app cannot establish a connection to the backend, be it PlayFab or an App Store.

    If you are using PlayFab, make sure to follow the instructions in the guide, for example starting from the UserLogin scene, having an PlayfabManager prefab in there and logging in. Unity IAP is automatically initialized afterwards, after the PlayfabManager successfully connected and received product data from the PlayFab servers.
     
  46. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Announcement @all

    The Receipt Validator service is now in public beta! Add server-side receipt validation to your app, without running and managing your own servers. Simple IAP System users get one paid month for free! Just send me a PM with your invoice number and I will send you a voucher. Jump straight to the website or deep dive into the documentation:

    Website: https://flobuk.com/validator
    Documentation: https://flobuk.gitlab.io/validator/docs/

    Highlighted features:
    • Most secure in-app purchase validation technique: prevent fake receipts for wrong products or different bundle identifiers, duplicate purchase attempts when sending a receipt twice, tampering with device time to extend subscriptions
    • Validate all types of IAPs: consumables, non-consumables and subscriptions
    • Subscription states are updated from the App Stores automatically, so you do not deliver content for expired or paused subscriptions
    • Inform users in-game about billing issues or expiring subscriptions to improve retention rates and keep your customers subscribed
    • Predictable monthly fee with different starter plans. Upgrade or downgrade based on your app success
    • Sandbox purchases are free, regardless of the plan
    If you have any questions, issues or would like to discuss custom plans, please feel free to contact me! Thank you very much for your interest :)
     
  47. alihaider3300

    alihaider3300

    Joined:
    Apr 3, 2020
    Posts:
    3
    Ok i have sorted that out and also removed my comment/review from assetstore. But now I am trying to implement purchase of Virtual Currency Product through PayPal override. But it gives this error.
    upload_2022-3-16_20-9-11.png

    Can you tell me how i can implement my own button for purchase which redirects to paypal purchase. and also a call back function where i can add the currency through my own game logic and implement custom ui messages. Thank you.
     
  48. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @alihaider3300 "SignatureInvalid" means that the credentials you entered in the PayPal config (Project Settings > Simple IAP System > Plugin Setup) are not valid. If your Development Build setting is unchecked, the production PayPal credentials are being used. The sandbox credentials are used if Development Build is enabled. Make sure to use the correct setting.

    That's answered here on the FAQ: "Can I create my own button to purchase products and not use item prefabs?"

    I do not quite understand your requirement, however the IAPManager and DBManager fire various events based on what happend with a purchase or product. I would recommend checking the Scripting Reference for what you need.
     
  49. itaykatzav

    itaykatzav

    Joined:
    Feb 6, 2022
    Posts:
    4
    Hi! Do you support also PayPal Pro? (it's not the same like Paypal)
     
  50. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi @itaykatzav, how is PayPal Payments Pro different from the current approach? As they both run on a browser (and there is no way around this because of security), I do not really see a difference. Is there something you are missing currently?