Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by unity_FTkQNH7B8I7LiA · May 16, 2018 at 01:13 PM · iosin app purchaseofflinevalidationreceipt

Offline iOS receipt validation,Offline validation of apple receipt

I have an app with an in app purchase. Once the user enters the the app, the app checks if the full version was bought. For this check I've created a method, which should check the state of the local receipts (So that I also works offline). But after looking though various forums, I keep struggling to get It to work.

Code Examples of what it tried include:

1)

 ConfigurationBuilder builder =
 ConfigurationBuilder.Instance (StandardPurchasingModule.Instance ());
 IAppleConfiguration appleConfig = builder.Configure<IAppleConfiguration> ();
 Product fullVersion = storeController.products.WithID (MyBundleID);
 
 try {
     var receiptData = System.Convert.FromBase64String (appleConfig.appReceipt);
     AppleReceipt receipt = new AppleValidator (AppleTangle.Data ()).Validate (receiptData);
     foreach (AppleInAppPurchaseReceipt productReceipt in receipt.inAppPurchaseReceipts) {
         if (productReceipt.productID.Equals (PRODUCT_FullVersion)) {
             return true;
         }
     }
 } catch (Exception e) {
 }
 return false

2)

 Product fullVersion =
 storeController.products.WithID (MyBundleID);
 
 if(storeController != null && IsInitialized()){
     if (fullVersion != null && fullVersion.hasReceipt) {
         return true;
     }
 }
 return false;

3) I also tried it with the ProcessPurchase method of the StoreListener Class, but from what I understood, this will be called after a purchase. As I want to validate it right at the beginning, I didn't got far with it.

I know there a already many post about this problem, but after a long period searching, nothing got me quit the right understanding of the topic. As there are many out there who have a good knowledge about IAPs, I hoped that someone will be able to help me.

Thanks for all your efforts.

,I have an app with an in app purchase. Once the user enters the the app, the app checks if the full version was bought. For this check I've created a method, which should check the state of the local receipts (So that I also works offline). But after looking though various forums, I keep struggling to get It to work.

Code Examples of what it tried include:

1)

 ConfigurationBuilder builder =
 ConfigurationBuilder.Instance (StandardPurchasingModule.Instance ());
 IAppleConfiguration appleConfig = builder.Configure<IAppleConfiguration> ();
 Product fullVersion = storeController.products.WithID (MyBundleID);
 
 try {
     var receiptData = System.Convert.FromBase64String (appleConfig.appReceipt);
     AppleReceipt receipt = new AppleValidator (AppleTangle.Data ()).Validate (receiptData);
     foreach (AppleInAppPurchaseReceipt productReceipt in receipt.inAppPurchaseReceipts) {
         if (productReceipt.productID.Equals (PRODUCT_FullVersion)) {
             return true;
         }
     }
 } catch (Exception e) {
 }
 return false

2)

 Product fullVersion =
 storeController.products.WithID (MyBundleID);
 
 if(storeController != null && IsInitialized()){
     if (fullVersion != null && fullVersion.hasReceipt) {
         return true;
     }
 }
 return false;

3) I also tried it with the ProcessPurchase method of the StoreListener Class, but from what I understood, this will be called after a purchase. As I want to validate it right at the beginning, I didn't got far with it.

I know there a already many post about this problem, but after a long period searching, nothing got me quit the right understanding of the topic. As there are many out there who have a good knowledge about IAPs, I hoped that someone will be able to help me.

Thanks for all your efforts.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

114 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

[Help!] Fighting with Receipt Validation (iOS) 0 Answers

Validating a restore receipt with Unity IAPs 1 Answer

Google Play - IAP Purchase Server side receipt validation 0 Answers

In App Purchase - Soomla - iOS 1 Answer

Simple In App Purchase on iOS 9 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges