Purchase failed because Purchasing was not initialized correctly. (killing me)

What’s Happening?

please help me i cant figure this little piece of thing for almost 4 hell of an days… I have gave all Logcat, Images & Codes + Pictures going to sleep not feeling good.

Explained:

There are my catalog + Play console images. The product id are okey. when i install my game in phone (realme c11) & as soon as this opens it shows unity iap is initialized in game view(i put) & IN THE LOGCAT WETHER THE INTERNET is ON or OFF (Look the logs closely) how? i feel like my iap is not like connecting to the internet but this isnt possible because in the same premium purchase window IT has to load offer time from an web(which it does if internet is on). But iap? No matter what the iap is… it says “Purchasing was not initialized correctly” + another very weird thing… on mobile when i display the purchase fail panel It enables it, But never ever touch’s the failed text… so its always the default i put. please jeffDUnity help me.

My Thought:

  • Have Used IAP in my other project but never ever encountered this.

  • everything works fine in the editor.

  • leave alone the admob error(will fix it later)

  • umm the fps? well kinda poor optimized + have some bugs that i will not fix until i fix iap(ak top left)…

  • i dont no what the hell is there an null in the logcat… in editor nothing…

  • Have put to an internal+closed testing then tested.

  • First time posting(always looked at post never thought have to write…).

  • please *watch the “Logcat” & “Logcat-No Internet”.

  • watch this “see the code(tell me if i did anything wrong) + why it syas initialized with no internet”

  • almost died (still active threat).

Environment:

  • Unity 2021 LTS.
  • IAP 4.12.2
  • no iap sample.

Everything You need:

  • Here Are the 2 Log cat
  • Here Are The Code(Piece of Crap, me+chatGPT)
  • Here Are Some Picture “please look at the id in code & play console(same)”

Logcat.txt (5.0 KB)
Logcat-No Internet.txt (4.7 KB)
Full IAP Code(very bad).txt (16.3 KB)




hmm, cant sleep…

bump bump. i cant sleep for this… any one?

I moved this to the Unity-In-App-Purchases tag, since might be more related to the issue you are experiencing.

no one helps me :…(

no one… bro im dead

Hey @sad_dev_1st sorry to hear about all the frustration!

We are taking a look more closely at your code to better understand how we can help.

One thing we noticed right away though (and may help explain why you get a successful initialization initially) is you seem to be using both codeless and coded strategies.

Given you have added the coded logic you can simply uncheck the checkbox for “Automatically initialize UnityPurchasing (recommended)” to no longer initialize IAP twice.

Thank You So Much For Replying(i losted hope)! Let Me go ahead and try + check if it does anything will let you know soon…

Hi @jacobbev , i unchecked the "Automatically initialize UnityPurchasing (recommended)” and well started getting this: “Unity In-App Purchasing requires Unity Gaming Services to have been initialized before use” and when i clicked on “purchase” button well it started saying memory has leaked. so had to reopen unity…

then followed This thank you for that. then it got fixed, the “Unity In-App Purchasing requires Unity Gaming Services…blah…blah…”

and my problem donts end here. when i clicked on “purchase” then it started leaking all over the place had to reopen, change code, close, reopen… and realized that when i clicked on the purchase “It requsted so many time over 400 - 500” and well… died… here is how it looks:


What i did:
i got and idea to limit it so if i click purchase, than wait(stop purchasing) until it fails or success, then make it purchasable again! how? well… its bool… XD public bool isPurchasing = false;

and well have fixed this issue! (tasting required on android)

Importent NOTE:
i have changed the script to this: Improved IAP.txt (9.9 Kb), i believe that its 10x easier to hopefully understand rather then the top kinda junky… but this script main concept are maybe same… just top one has A VERY BIG SKIN PURCHASING system… and this is only premium…

Oh and i havent tested it on device yet! hopefully it works… its (2:46am) im dead… have to wake up, build(35m), see, and then come here and say… IT WORKED or “Bruh im dead…” hopefully the first one… thanks for replying tho!

Edit:
hiyaaaaa…
the code that worked at 3:00am… donts work at morning… why? idk…

Problem: When clicked on purchase the ‘Fake Store’ donts appear. so when clicked the public bool isPurchasing is always set to public bool isPurchasing = true; so cant purchase cant get rewards…

took me over an hour… modified script to This: Improved-IAP v2.txt (12.0 KB)

added this Line StandardPurchasingModule.Instance().useFakeStoreAlways = true; before this Line UnityPurchasing.Initialize(this, builder); now sometimes it shows the fake store some times donts…

Now Im Building apk to test in aandroid… hope its fine…

Hello @jacobbev , after countless hour of dying and not feeling good… i FINALLY managed to make the google test pop up for purchasing. i dont know how it actually started working(the pop up)… after building it was working! if anyone is here, want to know which tutorial i followed, its this one.

Current Problem:
as you know… nothing i made is ever perfect :.( , so now what is the problem? well… here is an brief explanation:
The PROBLEM: when i click on the purchase button (in game) it triggers the google play and shows the pop up for test purchasing… so i click on purchase then, it says successfully purchased THEN as its closing another google pop up occurs… saying “You Already Own This Item” (first time purchasing) and after closing that… i get no rewards! unless i reopen the game and it uses the reception system to know that “ayyoo, this guy has purchased this thing…”… im not sure why this happens.

What I Believe: I Believe that when i call the storeController.InitiatePurchase(product.definition.id); (this thing, yes this…) gets called at least 2 times… here is a bit clear way:

First: it pauses the game, pops the vertical google popup. i click yes. done… purchase completed! keep and good eye on pausing the game.

Second: Now the purchase is complete… so lets Resume the game and here is the thing i believe happens. remember me saying gets called two times? well now it going give the second call of action for the… google play store… but wait! its already purchased. so yes we get the “You Already Own This Item”. this is what i believe BUT… read the thing why i believe it shod not happen XD…

Why this could be not the case?
well first of all sorry for updating the script 1 millions times. sorry for that, here is the script: Allmost Working IAP v3.txt (31.9 KB) so now now according to this script… we got the public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs purchaseEvent) so after an successfull purchase it shod technically give rewards (i dont know why it donts)… and having all of this IsProcessingPurchase(bool) isPurchasing(bool) it shod not happen… let me know what you think…

im dead after after working for a week just to fix this piece of iap…
will be more dead because admob is also waiting in the list…

Hello @jacobbev i got the logcat and did not understand a single thing… let me know what you think as soon as you can: Pop Up Open Close and then Open.txt (21.7 KB) im feeling im gono :skull:

no! there is no one… i have no clue what to do…

if i could know what to do some how…

@jacobbev jaaaaaaaaaaaaaaaacooooooooooooooooobbbbbbb… jaaaaaaaaaaaccccccoooooooooooooooooobbbbb… sorry…

after reading the log for some times i saw the Requsted Purchasing(sorry for misspell) get called only once… so now this is a bit more dangerous…

so this is the main:

Good Log...

2024/10/23 16:16:14.122 16733 16760 Info Unity Requsted Purchasing
2024/10/23 16:16:14.122 16733 16760 Info Unity UnityEngine.Logger:Log(LogType, Object)
2024/10/23 16:16:14.122 16733 16760 Info Unity IAPSystem:ThrowDebug(String)
2024/10/23 16:16:14.122 16733 16760 Info Unity IAPSystem:Purchase_GoldNoSkin()
2024/10/23 16:16:14.122 16733 16760 Info Unity UnityEngine.Events.UnityEvent`1:Invoke(T0)
2024/10/23 16:16:14.122 16733 16760 Info Unity

---------------This get called but why i dont get the rewards unless reopen?---------------
UnityEngine.Purchasing.CodelessIAPStoreListener:ProcessPurchase(PurchaseEventArgs)
2024/10/23 16:16:14.122 16733 16760 Info Unity UnityEngine.Purchasing.PurchasingManager:ProcessPurchaseIfNew(Product)
2024/10/23 16:16:14.122 16733 16760 Info Unity UnityEngine.Purchasing.PurchasingManager:OnPurchaseSucceeded(String, String, String)
2024/10/23 16:16:14.122 16733 16760 Info Unity UnityEngine.Purchasing.<>c__DisplayClass8_0:b__0()
2024/10/23 16:16:14.122 16733 16760 Info Unity UnityEngine.Purchasing.Extension.UnityUtil:Update()

and this are very bad logs…

Who arrr you bruh?

2024/10/23 16:16:14.122 16733 17844 Warn AudioTrack Use of stream types is deprecated for operations other than volume control
2024/10/23 16:16:14.122 16733 17844 Warn AudioTrack See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case
2024/10/23 16:16:14.123 16733 17844 Info AudioTrack start mClientUid:11545 mClientPid:16733 mSessionId:5785 app name:com.foursgamz.reachingthelimit
2024/10/23 16:16:14.124 16733 16733 Verbose MediaRouter Selecting route: RouteInfo{ name=ফোন, description=null, status=null, category=RouteCategory{ name=সিস্টেম types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
2024/10/23 16:16:14.529 16733 17844 Info AudioTrack stop mClientUid:11545 mClientPid:16733 mSessionId:5785 app name:com.foursgamz.reachingthelimit
2024/10/23 16:16:14.529 16733 17844 Debug AudioTrack stop(882): called with 11264 frames delivered
2024/10/23 16:16:14.574 16733 16733 Info ActivityThread smart_link is not supported!!!
2024/10/23 16:16:14.580 16733 17623 Debug SQLiteOpenHelper UNISOC SQLiteOpenHelper getDatabaseLocked version =1 mNewVersion =1
2024/10/23 16:16:14.590 16733 17623 Debug SQLiteOpenHelper UNISOC SQLiteOpenHelper getDatabaseLocked version =1 mNewVersion =1
2024/10/23 16:16:14.803 16733 17624 Debug IMGGralloc Gralloc Register w:720, h:1600, f:0x1, usage:0xb00, ui64Stamp:724486, sSize:4608000, line = 2335
2024/10/23 16:16:14.834 16733 17624 Debug IMGGralloc Gralloc Free w:720, h:1600, f:0x1, usage:0xb00, ui64Stamp:724486 line = 2441
2024/10/23 16:16:14.852 16733 17624 Debug IMGGralloc Gralloc Register w:720, h:1600, f:0x1, usage:0xb00, ui64Stamp:724514, sSize:4608000, line = 2335
2024/10/23 16:16:14.880 16733 16733 Debug IMGGralloc Gralloc Free w:1600, h:720, f:0x1, usage:0x966, ui64Stamp:724365 line = 2441
2024/10/23 16:16:14.885 16733 16733 Debug IMGGralloc Gralloc Register w:720, h:1600, f:0x1, usage:0x966, ui64Stamp:724522, sSize:4608000, line = 2335
2024/10/23 16:16:14.914 16733 16733 Debug IMGGralloc Gralloc Free w:1600, h:720, f:0x1, usage:0x966, ui64Stamp:724426 line = 2441
2024/10/23 16:16:14.915 16733 16733 Debug IMGGralloc Gralloc Register w:720, h:1600, f:0x1, usage:0x966, ui64Stamp:724526, sSize:4608000, line = 2335
2024/10/23 16:16:14.968 16733 17624 Debug IMGGralloc Gralloc Free w:720, h:1600, f:0x1, usage:0xb00, ui64Stamp:724514 line = 2441
2024/10/23 16:16:14.978 16733 17624 Debug IMGGralloc Gralloc Register w:720, h:1600, f:0x1, usage:0xb00, ui64Stamp:724557, sSize:4608000, line = 2335
2024/10/23 16:16:15.014 16733 16733 Debug IMGGralloc Gralloc Free w:1600, h:720, f:0x1, usage:0x966, ui64Stamp:724451 line = 2441
2024/10/23 16:16:15.014 16733 16733 Debug IMGGralloc Gralloc Register w:720, h:1600, f:0x1, usage:0x966, ui64Stamp:724559, sSize:4608000, line = 2335
2024/10/23 16:16:15.086 16733 17624 Debug IMGGralloc Gralloc Register w:720, h:1600, f:0x1, usage:0xb00, ui64Stamp:724579, sSize:4608000, line = 2335
2024/10/23 16:16:15.102 16733 17624 Debug IMGGralloc Gralloc Register w:720, h:1600, f:0x1, usage:0xb00, ui64Stamp:724586, sSize:4608000, line = 2335
2024/10/23 16:16:16.603 16733 17623 Info FA-Ads Application backgrounded at: timestamp_millis: 1729678574602
2024/10/23 16:16:20.321 16733 16733 Warn ProxyBillingActivity Activity finished with resultCode 0 and billing’s responseCode: 7
2024/10/23 16:16:20.414 16733 17624 Debug IMGGralloc Gralloc Free w:720, h:1600, f:0x1, usage:0xb00, ui64Stamp:724557 line = 2441
2024/10/23 16:16:20.414 16733 17624 Debug IMGGralloc Gralloc Free w:720, h:1600, f:0x1, usage:0xb00, ui64Stamp:724579 line = 2441
2024/10/23 16:16:20.414 16733 17624 Debug IMGGralloc Gralloc Free w:720, h:1600, f:0x1, usage:0xb00, ui64Stamp:724586 line = 2441
2024/10/23 16:16:20.427 16733 17624 Debug IMGGralloc Gralloc Register w:720, h:1536, f:0x1, usage:0xb00, ui64Stamp:724762, sSize:4423680, line = 2335
2024/10/23 16:16:20.467 16733 16733 Debug IMGGralloc Gralloc Free w:720, h:1600, f:0x1, usage:0x966, ui64Stamp:724522 line = 2441
2024/10/23 16:16:20.468 16733 16733 Debug IMGGralloc Gralloc Register w:1600, h:720, f:0x1, usage:0x966, ui64Stamp:724769, sSize:4608000, line = 2335
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger Unable to log.
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger java.lang.NullPointerException
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at java.util.Objects.requireNonNull(Objects.java:220)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at com.google.android.gms.internal.play_billing.zzbp.(com.android.billingclient:billing@@6.2.1:4)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at com.google.android.gms.internal.play_billing.zzdd.zzA(com.android.billingclient:billing@@6.2.1:4)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at com.google.android.gms.internal.play_billing.zzdd.zzk(com.android.billingclient:billing@@6.2.1:2)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at com.google.android.gms.internal.play_billing.zzgy.zzB(com.android.billingclient:billing@@6.2.1:1)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at com.android.billingclient.api.zzcd.zzc(com.android.billingclient:billing@@6.2.1:1)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at com.android.billingclient.api.zzj.onReceive(com.android.billingclient:billing@@6.2.1:12)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1613)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at android.app.-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA.run(Unknown Source:2)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at android.os.Handler.handleCallback(Handler.java:938)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at android.os.Handler.dispatchMessage(Handler.java:99)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at android.os.Looper.loop(Looper.java:223)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at android.app.ActivityThread.main(ActivityThread.java:7948)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at java.lang.reflect.Method.invoke(Native Method)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:603)
2024/10/23 16:16:20.518 16733 16733 Warn BillingLogger at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger Unable to create logging payload
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger java.lang.NullPointerException: Attempt to invoke interface method ‘java.util.Iterator java.util.List.iterator()’ on a null object reference
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at com.android.billingclient.api.zzcd.zzf(com.android.billingclient:billing@@6.2.1:7)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at com.android.billingclient.api.zzj.onReceive(com.android.billingclient:billing@@6.2.1:20)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1613)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at android.app.-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA.run(Unknown Source:2)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at android.os.Handler.handleCallback(Handler.java:938)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at android.os.Handler.dispatchMessage(Handler.java:99)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at android.os.Looper.loop(Looper.java:223)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at android.app.ActivityThread.main(ActivityThread.java:7948)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at java.lang.reflect.Method.invoke(Native Method)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:603)
2024/10/23 16:16:20.520 16733 16733 Warn BillingLogger at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2024/10/23 16:16:20.569 16733 16733 Info ActivityThread smart_link is not supported!!!
2024/10/23 16:16:20.570 16733 17623 Debug SQLiteOpenHelper UNISOC SQLiteOpenHelper getDatabaseLocked version =1 mNewVersion =1
2024/10/23 16:16:20.580 16733 17623 Debug SQLiteOpenHelper UNISOC SQLiteOpenHelper getDatabaseLocked version =1 mNewVersion =1
2024/10/23 16:16:20.584 16733 17624 Debug IMGGralloc Gralloc Free w:720, h:1536, f:0x1, usage:0xb00, ui64Stamp:724762 line = 2441
2024/10/23 16:16:20.641 16733 16733 Debug IMGGralloc Gralloc Free w:720, h:1600, f:0x1, usage:0x966, ui64Stamp:724526 line = 2441
2024/10/23 16:16:20.642 16733 16733 Debug IMGGralloc Gralloc Register w:1600, h:720, f:0x1, usage:0x966, ui64Stamp:724792, sSize:4608000, line = 2335
2024/10/23 16:16:20.687 16733 17873 Info AudioTrack set(): streamType -1, sampleRate 24000, format 0x1, channelMask 0x3, frameCount 4096, flags #0, notificationFrames 0, sessionId 0, transferType 3, uid -1, pid -1
2024/10/23 16:16:20.699 16733 17873 Warn AudioTrack Use of stream types is deprecated for operations other than volume control
2024/10/23 16:16:20.699 16733 17873 Warn AudioTrack See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case
2024/10/23 16:16:20.700 16733 17873 Info AudioTrack start mClientUid:11545 mClientPid:16733 mSessionId:5793 app name:com.foursgamz.reachingthelimit
2024/10/23 16:16:20.700 16733 16733 Verbose MediaRouter Selecting route: RouteInfo{ name=ফোন, description=null, status=null, category=RouteCategory{ name=সিস্টেম types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
2024/10/23 16:16:20.716 16733 16760 Warn Unity onPurchaseFailedEvent(productId:com.reachingthelimit.goldnoskin message: - Google BillingResponseCode = ItemAlreadyOwned)
2024/10/23 16:16:20.716 16733 16760 Warn Unity UnityEngine.Logger:LogFormat(LogType, String, Object)
2024/10/23 16:16:20.716 16733 16760 Warn Unity UnityEngine.Purchasing.PurchasingManager:OnPurchaseFailed(PurchaseFailureDescription)
2024/10/23 16:16:20.716 16733 16760 Warn Unity UnityEngine.Purchasing.Extension.UnityUtil:Update()
2024/10/23 16:16:20.716 16733 16760 Warn Unity
2024/10/23 16:16:35.576 16733 16760 Info Unity Failed To Purchase Because Of Purchase Timed Out.
2024/10/23 16:16:35.576 16733 16760 Info Unity UnityEngine.Logger:Log(LogType, Object)
2024/10/23 16:16:35.576 16733 16760 Info Unity IAPSystem:ThrowDebug(String)
2024/10/23 16:16:35.576 16733 16760 Info Unity d__25:MoveNext()
2024/10/23 16:16:35.576 16733 16760 Info Unity UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
2024/10/23 16:16:35.576 16733 16760 Info Unity

so now i cant sleep…
please if there is anyone check the WHOLE LOG in the ^ upper, ^ upper post…

bruh… im actually dead…

I think it needs some organizing.
First, let’s summarize what the current problem is.
When I read the article posted above, the problematic part is
The payment itself is made through IAP, but compensation for the payment is not paid?
If payment was made, was the payment for the product processed properly within Google Console?
Or is it that the product itself does not appear and the product information is not initialized?

hello! @MCF24 hmm problem has changed probably 3 times… lets not dive in the other two which likely has been fixed (maybe),

Problem: suppose i go to premium section. then click buy premium(some times has offer $5.99, $7.99, $9.99) so yes the google iap thing pop ups!(main problem fixed {took 5 days}) so now i click on purchase… then it tells me successfully purchased…
than as its closing another window pops up! saying that “You already Own This Item”(NOTE: this is done in new account. the item has never been purchased in this account(it always happens with all item))… please view the 10/16, 10th post for more clear understanding :slight_smile:

i dont know how to explain this… i buy the item it says i own it (i actually dont!) then i do not get the premium, unless i restart the game (close & open). The main thing im worried is about

  • does the storeController.InitiatePurchase(product.definition.id); gets called two times? if so why?
  • WHY THE HELL DOES the ProcessPurchase(PurchaseEventArgs purchaseEvent) not doing its job?

please see the scripts attached to the 10th post, and the log at 11th post… i really need help i also have admob to fix :…(

First, to remove the phrase ‘You already own this item’:
When initializing Product you need to change NonConsumable to Consumable.

Additionally, for issues where the payment screen appears more than once, it seems necessary to keep more logs to find the cause.
First, it seems that a log will be needed in the event action script within the button that is selected to purchase the product (to display a payment pop-up).
I think you’ll need a log when InitiatePurchase starts.
It would be better to identify the problem by checking which part of the log is executed more than once.

Also, does the fact that there is a problem with ProcessPurchase at the end mean that the item is not paid properly after payment?

This article was translated through a translator, so the sentences may be strange.

hello thanks for the reply…

First, to remove the phrase ‘You already own this item’:
When initializing Product you need to change NonConsumable to Consumable.

hmmm, this is not the case! the item has never been bought in this phone/account, the cause of this is i think dubble call for purchase… 1st call triggers the google iap and it shows the pop up (here the game pauses) then i purchase, and as its closes (game resumes) the 2nd call comes (pauses) and there you go another pop up but… now its already purchased so it will show the “You Own This Item”. changing this too Consumable… i dont think its an good idea… because i have receipt system…

Also, does the fact that there is a problem with ProcessPurchase at the end mean that the item is not paid properly after payment?

hmm i also dont know… i think this thing is actually dont gets called because of some reason… in the script i have put mostly same thing as in ProcessPurchase on the “void Stat()” method. only reason it works at reopen is maybe because of the reception. but it also has reception in ProcessPurchase for checking purchased items. so why it shod not get called in the ProcessPurchase

hmm… am i doing something wrong?

public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs purchaseEvent)
        {
            ThrowDebug("Inside 'ProcessPurchase'");
            if(IsProcessingPurchase == true)
            {
                ThrowDebug("There Is Already An Purchase Pending");
                ThrowFailedOnScreen("There Is Already An Purchase Pending");
                return PurchaseProcessingResult.Complete;
            }

here the ThrowDebug("There Is Already An Purchase Pending"); is being called but not the ThrowDebug("Inside 'ProcessPurchase'"); how? maybe i have to try in android…