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

    168 vote(s)
    86.2%
  2. Voxel Busters

    10 vote(s)
    5.1%
  3. Stans Assets

    13 vote(s)
    6.7%
  4. Prime31

    4 vote(s)
    2.1%
  1. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Interested or looking for support? Ask me anything in this thread - from developer to developer :)

    Simple IAP System for Godot is in the works too!

    Simple IAP System takes the complexity out of in-app purchases (IAPs) and the billing process as a whole by providing a one-stop solution for managing IAPs, be it for real money or virtual currency. SIS handles all the different callbacks technically and visually, while the design and templates included are fully customizable. With unlockable in-game content logic, various item selection modes and a flexible database manager for storing your own app-related data on the device, it offers the full range of professional in-app purchase techniques.
    Requires Unity IAP.

    As you may know from my other products, I really put emphasis on the ease of use of assets. Basically you can start with one of the shop templates, set up the IAP Settings and tell the callback listener what to do when it receives a product id. That's it! The rest is handled by SIS.

    Optional:
    ☑️ Add server-side receipt validation to your app, the most secure validation technique without the need of running and managing your own servers! Using our Receipt Validator, you can see all validations in one dashboard. For free, or a low, flat monthly fee, this service validates IAPs and subscriptions, so you always deliver valid content and inform users about expiring or expired subscriptions.
    It is also available as a separate package here.
    ☑️ It supports third-party SDK integration with PlayFab for cloud save, player management, remote catalogs, receipt validation and more.
    ☑️ Let Anti-Cheat Toolkit encrypt the in-app purchase data saved locally to make your app more resistant to cheating and hacking attempts.

    Features:

    ✅ Sell virtual currency and items
    ✅ Sell physical products to shipping address
    ✅ Localized product descriptions
    ✅ User Inventory (local or online)
    ✅ Shop Item prefabs or manual placement
    ✅ Shop Item selection states
    ✅ Custom unlock requirements
    ✅ Shop Template scenes
    ✅ Virtual Reality purchasing
    ✅ More stores than any other IAP asset




    Documentation:
    Get it here:
     
    Last edited: Sep 24, 2023
  2. PROTOFACTOR_Inc

    PROTOFACTOR_Inc

    Joined:
    Nov 15, 2009
    Posts:
    4,044
    Interesting solution. Might consider purchasing. If I understood correctly this require the prime 31 as well?
     
  3. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Thank you for your interest. Yes, both Prime31 in app billing plugins "Google In App Billing Plugin" and "StoreKit (In App Purchasing)" are required for SIS to work cross-platform. If you own both of these plugins, you get their in app purchasing combo plugin for free. SIS is built on top of this package.

    Edit: This isn't the case anymore, there is now a wide range of billing plugins supported.
     
    Last edited: Oct 14, 2014
  4. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Hi all,

    I am proud to showcase the final design for all 6 NGUI templates in our Simple IAP System. I've updated the first post with new images.

    You can see an example scene overview, followed by the IAP Settings editor and the items configured. You can choose between vertical or horizontal designs, but I'll demonstrate all of them in a video soon. Confirmation buttons (tap two times to buy something), unselectable items (e.g. unlocking bonus level), single selection (e.g. choose a weapon) and multi selection (e.g. character customization) are supported and easy to set up. Each purchase and selection gets saved on the device, so you'll keep the latest state. Of course the billing part, as well as a feedback window for the user, are fully operational.

    Please leave any comments, suggestions or ideas here.
     
  5. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    I thought a little bit more and came to the conclusion that requiring two or more plugins for SIS to work - namely NGUI and Prime31 iOS+Android billing - probably limits its possible user pool to a small section only.

    I'll most likely replace NGUI with the new GUI system, which will be pretty similiar it seems, so there's that. Now regarding the Prime31 requirement, although I think these plugins are industry standard, I'm wondering if you would like to add support for other major cross-platform billing plugins, e.g. Unibill?
     
  6. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,293
    I have bought Ngui and the Prime31 Assets and want your asset as you presented it First.
    Also i want it more now then later because the New unity GUI will come in One of the unity 4.x Version but we do Not know in wich and i would Not wait some month more if there is a solution now and also how i like it.
    Please sell it as is and make the New GUI an Option or another Produkt then.
     
  7. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Thanks for your opinion. I actually meant that I will release it as is and replace NGUI in the future, when the new Unity GUI comes out. Sorry for not making myself clear. Good to know that you're a Prime31 customer, I have received a few emails and private messages from other people telling me the same. Our products have to pass various stages before a release happens and I'm still in the testing stage, so I can't release it now, but it will happen sooner than later.

    Other concerns, opinions?
     
  8. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Do you want to consider NeatPlug?
     
  9. dev1791

    dev1791

    Joined:
    Mar 20, 2013
    Posts:
    35
    What's the expected release date?
     
  10. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Sure, why not. Maybe I can establish some sort of cooperation with NeatPlug for one of the later versions. I am thinking about adding a cross-platform wrapper for the most popular billing plugins, but you probably can't mix e.g. Prime31 Android with NeatPlug iOS then. Thanks!

    Currently I'm still waiting for Apple to approve our developer account before I can test SIS on iOS. Additionally, I won't be in the office for the next month, therefore it will be mid October as it stands.
     
  11. Grand_A

    Grand_A

    Joined:
    Oct 16, 2012
    Posts:
    10
    Very interesting project! Would consider this as I use NGUI for most of my projects.
    One more thing, how will this support Localization? As we might need to port in different languages :)
     
  12. Jon_LAVASKULL

    Jon_LAVASKULL

    Joined:
    Jun 6, 2012
    Posts:
    6
    Very interested in this! for me the sooner it comes out the better ;)
     
  13. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Thank you for your interest and sorry for the late response, I haven't been in the office the last couple of days.

    Local localization isn't going to be in the initial version. I thought about adding it in a future version, but I'm not quite sure how to approach this subject yet. However, for real money IAPs (those in your Google/Apple developer account), you can define localized titles/descriptions along with the price and Simple IAP System will fetch them from Google/Apple when the user opens your shop. For virtual items, which only exist within your app, you will have to wait some time or roll your own solution for now (full source code provided).

    With real money IAPs and online localization I am referring to this part:
    http://developer.android.com/google/play/billing/billing_admin.html


    Thanks IceFlame! I spend nearly every free minute working on SIS.
     
  14. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Hey all,

    here's another sneak peek: The docs are now online, what means that the scripting part has been completed!

    You can find them on our site: http://www.rebound-games.com/docs/sis/

    The docs already reveal a lot of functionality - for example the new possibility for storing your own data in the database, which was added today. I won't be in the office for the next 2 weeks, but I hope this serves for an insight. I have some great news to announce when I'm back!
     
    Last edited: Oct 7, 2013
  15. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
  16. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,571
    I happen to have both products (Prime31 storekit and NGUI), although we actually may abandon NGUI in favor of 2Dtoolkit soon, we will see. What is the normal price after the 2 day sale? I will say as I've said elsewhere, that Neatplug support is a thousand times better than Prime31 (and the code more complete) so I've abandoned Prime for Facebook plugin entirely and happily. I have Unibill but never used it yet. FIne with me to use Prime31 for Storekit as that particular product seems solid to me.

    I would assume that your plugin displays the price of IAP's in the local currency? As Storekit provides that with the "formatted price" field. Does is also display the correct localized item name from iTunes connect if entered there?
     
    Last edited: Oct 16, 2013
  17. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Thanks for your feedback on plugins. Hopefully our NGUI integration will transition nicely to the new Unity GUI, as that's the plan for one of the future versions. The example scenes are built with NGUI, but SIS doesn't rely on a specific GUI asset. Neatplug support noted, thanks for the heads up.

    That's a double yes. There's an option to fetch product data from either Google or Apple and overwrite local values with localized online data. For real money purchases this works just fine.

    I haven't decided a final price on it yet, but you can calculate with 70-85% off the normal price (updated the announcement with this info).
     
  18. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,571
    Cool, I bought this, went to check it out, and am getting the following compiler errors:

    Assets/SIS/Scripts/DBManager.cs(553,9): error CS0246: The type or namespace name `AesCryptoServiceProvider' could not be found. Are you missing a using directive or an assembly reference?

    This is the newest version of Unity 4. I have the newest NGUI and Storekit iOS imported as well. Empty project otherwise. Please advise.
     
    Last edited: Oct 18, 2013
  19. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Thank you for your purchase!

    Page 3 (First Steps) of the documentation mentions: "Lastly, set the Api Compatibility Level of your project to “.Net 2.0” (not .NET 2.0 Subset) under Edit > Project Settings > Player > Other Settings. All errors should be gone."

    AesCryptoServiceProvider requires .Net 2.0.

    Please write again if you have further questions.
     
  20. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,571
    Right you are Baroni, this is the first time I've had to change that option with a plugin. I'm sure it won't be the last :)
    Thank you.
     
  21. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    @jerotas
    You are very welcome :)

    Thank you very much to those of you who participated in the early bird sale, an extra gratitude goes to those who have donated to support us!

    In the coming week, I will package it up for sale on the Unity Asset Store and on our website (once reviewed).
    Simple IAP System will be unavailable for sale during this time.
     
    Last edited: Oct 19, 2013
  22. someunityguy

    someunityguy

    Joined:
    Jun 28, 2011
    Posts:
    35
    Guess its true the early worm does get the bird
     
  23. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Haha.. well as a worm you're in serious trouble every part of the day. Would be interesting to see the opposite!
    The later birds will get their worm too, it will just take another week or two ;)
     
  24. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Version 1.0.1 has been released on our website (and will be on the Asset Store soon).

    This version bypasses app export regulations which would previously require you to apply for an encryption registration number (ERN) when submitting your app. If you haven't published an app with SIS already, please delete existing PlayerPref entries (if encrypted) and upgrade to this version. You can dowload it through the same link in your purchase confirmation mail.

    V1.0.1
    Changes
    • DBManager: Encryption mode changed to avoid app export regulations registration. Documentation contains further information on usage
    • IAPManager: Added additional platform check to indicate IAPManager won’t initialize on build targets other than iOS/Android
     
  25. DevExpert

    DevExpert

    Joined:
    Aug 18, 2013
    Posts:
    13
    Hello Baroni!

    Bug report. At the start the DBManager checks if there is a new currency, but does not check whether it was removed. Thus, gameObject [currency].Count more then IAPObject.virtualPrice.Count!

    Please see at line 278, the VerifyVirtualPurchase function, DBManager.cs.
     
  26. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Hi and thanks! Do you get an error message?

    Basically the case where your currency array is greater than your virtual price array (or the other way round) should not happen, ever: if you create a new currency, you should adjust your existing virtual items with this new currency; by default their price for the new currency is 0. Or if you remove a currency, you will need to adjust the virtual items again.

    Actually DBManager checks if a currency was removed. I also stated it in the documentation, but it's worth mentioning that you shouldn't remove currencies after publishing your app for consistency purposes. If you really want to delete obsolete currencies (and purchases!) on the user's device (what I do not recommend), set the keepLegacy variable to false.
     
    Last edited: Nov 1, 2013
  27. DevExpert

    DevExpert

    Joined:
    Aug 18, 2013
    Posts:
    13
    What was done:
    1. Copied scene "ListVerticalTabs"
    2. I opened a SIS input window (Window-> Simple IAP System -> IAP Settings)
    3. Deleted all the elements for Android
    4. Added two new elements for Android
    5. Deleted all the elements for "in Game Content"
    6. Removed currency
    7. Added new currency
    8. Added new items for "in Game Content "
    9. Started the scene, went to the "Items" section, try to buy, and got the error:
    >>> ArgumentOutOfRangeException: Argument is out of range. Parameter name: index

    Analytics.
    1. In DBManager :: InitDB, line 188. We get a list of currencies (IAPManager.GetCurrency ()). The list will contain only one currency (I deleted one old and added one new)

    2. Then in DBManager :: InitDB, line 202 add the new currency in gameData[currency]
    >>> if (string.IsNullOrEmpty (gameData [currency] [cur]))
    >>> gameData [currency] [cur]. AsInt = curs . amount;

    Before this gameData[currency] is contained one currency as this information is stored in PlayerPrefs, and after it contains two correncies. On the second step we changed data fields IAPManager :: currency, but not the data in PlayerPrefs!

    Of course at the release no one will change the currency, but during the development this can happen very often!

    I think it's not right that the gameData[currency] stores only the amount of currency as a result we can not validate what currency we have removed, all the work with currencies is based ont index in array. Perhaps we should keep at least a KeyPair of name plus number.
     
    Last edited: Nov 2, 2013
  28. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Thanks again for your detailed breakdown. I could reproduce the error and will fix this in the next update. I submitted SIS to the Asset Store nearly two weeks ago, so I would like to wait until it has been approved before submitting another package. In the meantime you can delete the PlayerPrefs file between testing stages. The DBManager (gameData) stores the name of the currency along with its amount, but you are right that it shouldn't loop over the count and access the currency directly instead.
     
  29. Toad

    Toad

    Joined:
    Aug 14, 2010
    Posts:
    298
  30. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Sure, thanks for your feedback. I'd like to add support for Unibill if there's demand for it, but my submission to the Asset Store has been declined because of external links in the description (duh...), that's why I'm busy preparing the next update first which will include local and server-side IAP receipt validation.

    So here is the current roadmap:
    • finish update 1.1 with receipt verification
    • integrate Neatplug plugins
    • More Neatplug plugins or Unibill?
     
  31. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Yes, I would like to see Unibill too. It has virtual currency system built in now.
     
  32. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    If there will be support for Unibill, would you like to use Unibill's virtual currency tools then? Correct me if I am wrong, but wouldn't this mean that the only reason to use SIS is its shop template system? I think Unibill has a cross-platform wrapper too, maybe I am missing something.
     
  33. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Yes, it has a cross platform layer, and yes, SIS will be more of a shop template.
     
  34. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Version 1.1 has been released on our web store (for early bird buyers) and submitted to the Unity Asset Store (yet again).

    This version fixes various bugs with shop templates, which had something to do with how NGUI handles multi touch input. Also, the way we handled virtual currency in IAPObjects changed. Please backup your project, you will have to re-create your IAPs in the IAP Settings Editor! A new feature is the online receipt verification request, which forwards receipts to your external server that verifies them with Google (newest API) or Apple. Minimum Unity version has changed to 4.2.1.

    v1.1

    Fixes Changes
    • ShopManager: fixed NullReferenceException when trying to overwrite an IAP Item with online data that doesn’t exist
    • ShopManager: disables multi touch to avoid pressing two buttons at once
    • IAPObject: for virtual currency, now holds a list of IAPCurrency instead of an int array, fixing null references when trying to access removed currencies
    • DBManager: keepLegacy = false removes old currency entries too
    • DBManager: does not select items automatically if their price is set to zero
    • DBManager: GetAllPurchased(), GetAllCurrencies() and GetAllSelected() return lists and dictionaries, allowing for better access to the desired item
    • ListVertical-/ListHorizontalMenu scenes: added InputBlocker gameobject to avoid animating two menus at the same time if one is active already
    • All scenes: fixed collider of the notification popup, correctly blocking inputs
    • All scenes: rebuild IAPEditor with new IAPObject structure
    Features
    • Added online receipt verification, comes with PHP scripts for your external server. Apple: implemented App Store validation. Google: implemented recently released Purchase Status API. See the docs for setup instructions
     
  35. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    I have Unibill, but I'd be interested in the shop template aspect.
     
  36. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Thanks for your feedback, I will definitely consider Unibill support. Now that I know that they will add virtual products at some point (source), this will make an integration with our shop template system much easier.
     
  37. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Hello Dan,

    the Asset Store team take their time to review Simple IAP System. I submitted it 2 times, and the total review time soon reaches 5 weeks. I don't like it either, that's for sure. Unfortunately I can't do anything to speed up the process.
     
  38. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Well then I'm sorry for the nastiness on my part.
     
  39. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Simple IAP System is now available to download!

    Get it here




    Stay tuned for the next update, which is already in the testing phase.​
     
  40. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    How customizable is this? Can I change the skin/icons to match the design/ look feel of my game?
     
  41. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    It uses NGUI as a base, so you can switch textures of widgets as you like. Every shop item is an instantiated prefab with multiple possibilities - you can create expanding descriptions with UITables or something else if you would like to... only the sky is the limit (and NGUI, of course).
     
  42. B-Ros

    B-Ros

    Joined:
    Jul 24, 2013
    Posts:
    1
    That sounds amazing! We definitely love to integrate it in our upcoming game that will be released in a few days. Anyway we're using Unibill, when do you plan to make an update compatible with Unibill?
     
  43. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Thank you for your interest. Well... it won't be ready in a few days :) Anyway, good luck with your game!

    Currently there are some hurdles in that regard. SIS implements virtual currencies and virtual products (consumable or non-consumable), but Unibill only supports virtual currencies at this time. The author said he is working on virtual products, so I would like to wait until these are out. Another even bigger hurdle are the many platforms that need to be supported and I have a plan that will make this mostly hassle free.

    I can't give real estimates right now, but it won't happen this year.
     
  44. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Hello everyone,

    newest version is now 1.2.1. Here are the release note for version 1.2 and 1.2.1. Please read the upgrade notes carefully!

    V1.2
    Fixes Changes
    • IAPManager: DontDestroyOnLoad added
    • IAPManager: debug messages removed, but ShopManager and IAPListener now have a separate “debug” variable for toggling Debug.Log console output
    • IAPListener: moved error window and label variable to the Shop Manager
    • ShopManager: added renaming scheme for items, forcing the instantiation order to match the order defined in the IAP Settings Editor
    • IAPItem: more checks for optional widgets, avoiding NullReferenceExceptions
    • IAPItem: initialization method rewritten
    • DBManager: standalone initialization option removed
    • UIPanelStretch: will now take positioning changes of UIAnchors into account
    • All scenes: updated to NGUI 3.0.6, reference fixes
    Upgrade Notes
    In your project: Import SIS 1.2. Overwrite the IAP Manager prefab with your previous instance, then remove the Shop Manager component from this prefab. Place the IAP Manager prefab in your very first scene of the game and remove all other instances. Then place the new Shop Manager prefab in your shop scene. Most of your product settings will stay intact, but you will need to reassign prefab and container references in the IAP Settings editor. Also, reassign the purchase feedback window and label (if used) to the Shop Manager component. Have a look at the example scenes for a better understanding.

    V1.2.1
    Fixes Changes
    • IAPListener: added inventory request failed handler
    • IAPListener: delegate subscription now happens in OnEnable OnDisable
    • IAPListener: added ShopManager instance checks to avoid null references
    • IAPManager: additional instance check in OnDestroy to prevent errors not showing up anymore after scene change.
    • IAPManager: additional checks for receipt verification without server url
    • IAPEditor: cleans up references of ShopManager to non-existent groups
    • ShopManager: made SetItemState() static
     
    Last edited: Dec 24, 2013
  45. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Can u add in Daikon Forge UI support? Moving away from NGUI once you tried DF.
     
  46. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Thanks for the suggestion. For the next month or two I will be working on support for NeatPlug plugins and Unibill, which should come out soon.

    I am not planning to support other GUI libraries, sorry. The reason for that is the potential complexity of this asset. Adding DF support would mean adding another package with redundant scripts, modified to work with DF. Ultimately this would lead to me fixing the same thing in six scripts (2 UI x 3 billing plugins) and spending a lot of time supporting other plugins, rather than improving our own.

    However, it is planned to switch to Unity's new GUI system once it comes out and I know that NGUI will provide an editor script for converting GUI widgets to NGUI or vice versa. It would probably be a good idea for Daikon Forge to do the same.
     
  47. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    I wouldn't hold my breath for the new GUI. Even if it's released, it would take such time to catch up to DF functionality. NGUI was the default choice because there was no better alterantives, until DF came along. I hope you make the UI modular to be replacable.
     
  48. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    I am not waiting for the new GUI, NGUI does all the things it should do regarding this asset. Unity's GUI will just remove the need of an additional asset in SIS, no more, no less. And with that, I think it should be left to the UI developers to provide a functionality for porting Unity's GUI to theirs.

    It already is :)
     
  49. Kasatik

    Kasatik

    Joined:
    Nov 18, 2011
    Posts:
    7
    Hello, Baroni
    Greate work!!! Was easy to create Google acc and make a test purches. But i dont understand Online Receipt Verification. Do i need some extra php scripts to run verification ? For example: “https://www.your-domainname.com/oauth2callback” Where i can get oauth2callback ?
    Thanks, Alexandr
     
  50. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,254
    Hi Alexandr,

    thanks, I'm glad you like it.

    There is only one php script necessary for receipt verification on iOS and Android, which is included in the scripts folder in SIS (verify.php). On the Android side, you will have to set up a few access tokens in Google Cloud for it to work. The documentation describes how to create these, on page 21 and 22. After you've configured your Google account, you can insert these tokens in the verify.php script and upload it to your server. But that's the very last step of the whole process.

    You won't need any other scripts besides verify.php. Regarding https://www.your-domainname.com/oauth2callback, "oauth2callback" is just a callback parameter Google will use to send you your tokens during this setup. Actually the name of this parameter doesn't matter at all, you could also enter https://www.your-domainname.com/callback or something different at this step.

    Hope this helps, let me know if you have further questions.