Google IAP Error: Authentication Required

In my application, when I try to purchase a subscription, I get an error message:

Authentication is required. You need to sign into your Google Account

This dialog is not displayed when I make a normal purchase (in the application, not in the subscription).

There is some useful information:

  • Apk is published in production. Subscriptions and items in the application have been working for a long time.

  • There are no apks in alpha / beta testing

  • The account is correct. I tested another application offering a subscription.

  • Billing in the application is implemented using https://code.google.com/p/marketbilling/ with some corrections that were made to prevent a crash / unsupported function [implementation has not been changed for a long period of time, so I don’t think that this is the case]

  • Subscription product identifiers are also correct.

  • I tried several google accounts on multiple differents devices. The result is the same - this dialogue.

I see an error in Google IabV3Activity.class, but I can not understand what is the main reason for this:

    BasicNetwork.performRequest: Unexpected response code 403 for 
https://android.clients.google.com/fdfe/preparePurchase

Any ideas?

Updated: Today, subscriptions began to work. It is still unclear what the reason is. We updated the magazine’s description on Google Play over the weekend. Was that the reason? - No ideas...

+4
source share
3 answers

I had a simulated problem. All applications in the application work, except for subscription.

Authentication required. You need to log in to your Google Account.

was on the screen, and in my magazines the following entries were presented:

403 https://android.clients.google.com/fdfe/preparePurchase

RESPONSE_CODE = 2

, " " Android.

. , .

+1

, IAP. Google Play, , "GameName" , "GameName Test". : com.sixminute.gamename com.sixminute.gamename.test

, iOS ( IAP ), SKU , com.sixminute.gamename.coinpack1 com.sixminute.gamename.test. coinpack1. , SKU.

, "com.sixminute.gamename.test.coinpack1", "com.sixminute.gamename.coinpack1", "GameName Test".

, , " ", , , 403 "", 404: " ", , .

, , , 100% , SKU , , , , , http://developer.android.com/training/in-app-billing/list-iab-products.html#QueryDetails, , SKU, , 100% .

0

There was still the same problem, I got these errors:

 E/Parcel: Class not found when unmarshalling:
 com.google.android.finsky.billing.lightpurchase.PurchaseParams
                                     java.lang.ClassNotFoundException: com.google.android.finsky.billing.lightpurchase.PurchaseParams
                                         at java.lang.Class.classForName(Native Method)
                                         at java.lang.Class.forName(Class.java:204)
                                         at java.lang.Class.forName(Class.java:169)
                                         at android.os.Parcel.readParcelableCreator(Parcel.java:2091)
                                         at android.os.Parcel.readParcelable(Parcel.java:2055)
                                         at android.os.Parcel.readValue(Parcel.java:1971)
                                         at android.os.Parcel.readMapInternal(Parcel.java:2255)
                                         at android.os.Bundle.unparcel(Bundle.java:223)
                                         at android.os.Bundle.getString(Bundle.java:1082)
                                         at android.content.Intent.getStringExtra(Intent.java:4961)
                                         at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3761)
                                         at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:4977)
                                         at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:3391)
                                         at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:254)
                                         at com.android.server.am.ActivityManagerService.startActivityIntentSender(ActivityManagerService.java:3283)
                                         at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:258)
                                         at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2125)
                                         at android.os.Binder.execTransact(Binder.java:388)
                                         at dalvik.system.NativeStart.run(Native Method)
                                      Caused by: java.lang.NoClassDefFoundError: com/google/android/finsky/billing/lightpurchase/PurchaseParams
                                         at java.lang.Class.classForName(Native Method) 
                                         at java.lang.Class.forName(Class.java:204) 
                                         at java.lang.Class.forName(Class.java:169) 
                                         at android.os.Parcel.readParcelableCreator(Parcel.java:2091) 
                                         at android.os.Parcel.readParcelable(Parcel.java:2055) 
                                         at android.os.Parcel.readValue(Parcel.java:1971) 
                                         at android.os.Parcel.readMapInternal(Parcel.java:2255) 
                                         at android.os.Bundle.unparcel(Bundle.java:223) 
                                         at android.os.Bundle.getString(Bundle.java:1082) 
                                         at android.content.Intent.getStringExtra(Intent.java:4961) 
                                         at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3761) 
                                         at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:4977) 
                                         at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:3391) 
                                         at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:254) 
                                         at com.android.server.am.ActivityManagerService.startActivityIntentSender(ActivityManagerService.java:3283) 
                                         at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:258) 
                                         at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2125) 
                                         at android.os.Binder.execTransact(Binder.java:388) 
                                         at dalvik.system.NativeStart.run(Native Method) 
                                      Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.finsky.billing.lightpurchase.PurchaseParams" on path: .
                                         at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64)
                                         at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
                                         at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
                                         at java.lang.Class.classForName(Native Method) 
                                         at java.lang.Class.forName(Class.java:204) 
                                         at java.lang.Class.forName(Class.java:169) 
                                         at android.os.Parcel.readParcelableCreator(Parcel.java:2091) 
                                         at android.os.Parcel.readParcelable(Parcel.java:2055) 
                                         at android.os.Parcel.readValue(Parcel.java:1971) 
                                         at android.os.Parcel.readMapInternal(Parcel.java:2255) 
                                         at android.os.Bundle.unparcel(Bundle.java:223) 
                                         at android.os.Bundle.getString(Bundle.java:1082) 
                                         at android.content.Intent.getStringExtra(Intent.java:4961) 
                                         at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3761) 
                                         at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:4977) 
                                         at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:3391) 
                                         at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:254) 
                                         at com.android.server.am.ActivityManagerService.startActivityIntentSender(ActivityManagerService.java:3283) 
                                         at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:258) 
                                         at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2125) 
                                         at android.os.Binder.execTransact(Binder.java:388) 
                                         at dalvik.system.NativeStart.run(Native Method) 

I also got this:

E/Volley: [40089] c.a: Unexpected response code 403 for https://android.clients.google.com/fdfe/ees/preparePurchase

This was a little strange, because some other purchase tests went absolutely right. After some searching, I found out that there was an empty spot on this sku line:

public static final String SKU_ALL = " com.xxx.xxx.all "; -> ERROR
public static final String SKU_ALL = " com.xxx.xxx.all";  -> WORKS PERFECT!

Hope this helps someone!

0
source

All Articles