Coder Social home page Coder Social logo

marketbilling's People

Contributors

tanis2000 avatar tjohns avatar

Watchers

 avatar

marketbilling's Issues

NullPointerExceptions calling IMarketBillingService

STEPS TO REPRODUCE:
1. Not happening in my tests, but multiple errors reported by live applications 
via ACRA


EXPECTED OUTPUT:

Calling IMarketBillingService.sendBillingRequest() should return without error.

ACTUAL OUTPUT:

NullPointerException in some cases (different OS versions)

AFFECTED ORDER IDS (IF RELEVANT): N/A

OS VERSION:

2.2.1
3.0.1
2.1-update1
1.6
2.3.4
2.2.1

MARKET/MYAPPS VERSION: N/A

DEVICE:

HTC Wildfire
A500
MB525
U20i
HTC HD2
GT-S5660

OUTPUT FROM ADB BUGREPORT ATTACHED:

Stacktrace from ACRA:

java.lang.NullPointerException 
   at android.os.Parcel.readException(Parcel.java:1253) 
   at android.os.Parcel.readException(Parcel.java:1235) 
   at com.android.vending.billing.IMarketBillingService$Stub$Proxy.sendBillingRequest(IMarketBillingService.java:100)

NOTES:

The 'Upgrade' button that calls sendBillingRequest() is only enabled if   
CHECK_BILLING_SUPPORTED returns RESULT_OK.

Original issue reported on code.google.com by [email protected] on 23 May 2011 at 11:29

Direct carrier billing doesn't function

NTT DoCoMo and KDDI's direct carrier billing doesn't function for the In-app 
Billing system.

STEPS TO REPRODUCE:
1. Start In-app billing.
2. Choose the direct carrier billing as a payment method.
3. Push the 'Buy now' button.
4. Input the security password.

EXPECTED OUTPUT:
The billing is executed.

ACTUAL OUTPUT:
Nothing is executed.
It immediately returns to the screen of the app. The purchase request is 
completely disregarded.

AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION:
2.2.1

MARKET/MYAPPS VERSION:
2.3.6

DEVICE:
IS05, Galaxy S

OUTPUT FROM ADB BUGREPORT ATTACHED:
Attached.

NOTES:
Followings are the Logcat messages immediately after the 'Buy now' button was 
pushed.

INFO/ActivityManager(295): Starting activity: Intent { 
cmp=com.android.vending/.billing.CarrierPasswordActivity (has extras) }
WARN/InputManagerService(295): Starting input on non-focused client 
com.android.internal.view.IInputMethodClient$Stub$Proxy@460f2c70 (uid=10089 
pid=1250)
INFO/BillingService(1250): handleCommand() action: 
com.android.vending.billing.RESPONSE_CODE
DEBUG/BillingService(1250): RequestPurchase: RESULT_USER_CANCELED
DEBUG/Dungeons(1250): potion_001: RESULT_USER_CANCELED
INFO/Dungeons(1250): user canceled purchase
INFO/ActivityManager(295): Displayed activity 
com.android.vending/.billing.CarrierPasswordActivity: 368 ms (total 368 ms)

It seems that the purchase request has been canceled at the same time as the 
CarrierPasswordActivity's being displayed.

Original issue reported on code.google.com by [email protected] on 12 May 2011 at 6:35

Attachments:

Enable testing from developer phone with own Product IDs

The Problem:
"You cannot use your developer account to test the complete in-app purchase 
process because Google Checkout does not let you buy items from yourself."

Why is this a problem:
I only have one android phone, which is both my day-to-day phone and the phone 
I use for testing. A factory reset every time I want to test a purchase is a 
big hurdle.

Basic fix/enhancement:
Allow a developer to buy from himself.

Preferred enhancement:
Allow a developer to buy from himself, but don't charge the Credit Card used 
and make these test purchases identifiable in the Google Checkout Merchant 
account.

Original issue reported on code.google.com by [email protected] on 19 May 2011 at 11:56

What's wrong with in-app billing today ?

I've got an app on the market that uses in-app billing to unlock advanced 
features. This morning I noticed a FULL PAGE of cancelled transactions followed 
by a bad reviews saying my app never got a response from their market purchase. 
Now I'm seeing double-billed orders on a managed product and transaction going 
through on failed orders. A few customers have contacted me and I've refunded 
their purchases after many failed attempts to fix this, but I fear I'll be 
getting lots of angry emails from the ones who will only notice the error on 
their credit card bill.

The app has been working just fine for weeks prior to today's events and SOME 
users have been able to unlock the features just fine today so I know it's not 
happening to EVERYONE.

What's going on Google?

There is an item on today's known issues pages stating some app orders are not 
being charged, but my issue sounds different as people are being charged 
without receiving the product. 

I've seen issue #14, but this isn't a few random transactions, I've had no 
problems before and today has been almost nothing but errors and incorrect 
billing? 

I have a few order numbers if that will help.

Original issue reported on code.google.com by [email protected] on 14 Jun 2011 at 7:13

Market unable to uninstall an application using in-app billing

Unable to uninstall an application with in-app billing using Market. The 
uninstall process get to the "please tell us why you removed this item", but 
the application stays installed.

I had a few reports from users about this, but didn't believe it until seeing 
it myself.

1 - Starting position: application with in-app billing installed, an order for 
paid features successfully processed, paid features activated.

2 - Now the order is canceled in Google Checkout, no notificaiton received 
within about an hour.

3 - To facilitate further testing, the application is uninstalled with Market.

4 - While uninstalling, the order cancelation notification comes through, shown 
in the phone's notification bar.

5 - The application is not uninstalled, stays installed on the phone.

6 - After this, repeated attempts to uninstall the application do nothing. 
Market gets to the point where it asks why I removed the application ("don't 
need" / "need space" / "malicious", etc.), but the application stays installed.

Removing with "adb uninstall" worked.

Environment: Motorola Milestone 2.1u1, Market 2.3.6, good WiFi connection (70 
Mbit/s at the router).

This device used to be set up as a test account at some point, but no longer so 
for a few days prior to this test.

Order number: 818650514066933 

Logcat output (nothing useful, really):

I/ActivityManager( 1278): Starting activity: Intent { 
act=android.intent.action.VIEW cmp=com.android.vending/.AssetInfoActivity (has 
extras) }
D/dalvikvm( 1477): GC freed 3609 objects / 197744 bytes in 87ms
I/ActivityManager( 1278): Displayed activity 
com.android.vending/.AssetInfoActivity: 412 ms (total 412 ms)
I/ActivityManager( 1278): Starting activity: Intent { 
act=android.intent.action.VIEW cmp=com.android.vending/.UninstallActivity (has 
extras) }
I/ActivityManager( 1278): Displayed activity 
com.android.vending/.UninstallActivity: 329 ms (total 329 ms)
W/BatteryStatsImpl( 1278): Couldn't get kernel wake lock stats
D/WifiService( 1278): ACTION_BATTERY_CHANGED pluggedType: 2
D/dalvikvm( 1619): GC freed 1747 objects / 85728 bytes in 114ms
D/dalvikvm( 1355): GC freed 4510 objects / 246952 bytes in 130ms
D/OpenSSLSessionImpl( 1355): Freeing OpenSSL session

Original issue reported on code.google.com by [email protected] on 29 Apr 2011 at 12:00

Billing activity window leak

While making an in-app purchase on a newly configured test phone:

E/WindowManager(16621): Activity 
com.android.vending.billing.InAppBuyPageActivity has leaked window com.androi
d.internal.policy.impl.PhoneWindow$DecorView@48342980 that was originally added 
here
E/WindowManager(16621): android.view.WindowLeaked: Activity 
com.android.vending.billing.InAppBuyPageActivity h
as leaked window 
com.android.internal.policy.impl.PhoneWindow$DecorView@48342980 that was 
originally added her
e
E/WindowManager(16621):         at 
android.view.ViewRoot.<init>(ViewRoot.java:247)
E/WindowManager(16621):         at 
android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
E/WindowManager(16621):         at 
android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
E/WindowManager(16621):         at 
android.view.Window$LocalWindowManager.addView(Window.java:424)
E/WindowManager(16621):         at android.app.Dialog.show(Dialog.java:241)
E/WindowManager(16621):         at 
com.android.vending.billing.InAppBuyPageActivity.initDialogViews(InAppBuyPa
geActivity.java:457)
E/WindowManager(16621):         at 
com.android.vending.billing.InAppBuyPageActivity.onRestart(InAppBuyPageActi
vity.java:282)
E/WindowManager(16621):         at 
android.app.Instrumentation.callActivityOnRestart(Instrumentation.java:1139
)
E/WindowManager(16621):         at 
android.app.Activity.performRestart(Activity.java:3805)
E/WindowManager(16621):         at 
android.app.Activity.performResume(Activity.java:3816)
E/WindowManager(16621):         at 
android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118)
E/WindowManager(16621):         at 
android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3143)
E/WindowManager(16621):         at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2059)
E/WindowManager(16621):         at 
android.os.Handler.dispatchMessage(Handler.java:99)
E/WindowManager(16621):         at android.os.Looper.loop(Looper.java:123)
E/WindowManager(16621):         at 
android.app.ActivityThread.main(ActivityThread.java:4627)
E/WindowManager(16621):         at java.lang.reflect.Method.invokeNative(Native 
Method)
E/WindowManager(16621):         at 
java.lang.reflect.Method.invoke(Method.java:521)
E/WindowManager(16621):         at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:
871)
E/WindowManager(16621):         at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
E/WindowManager(16621):         at dalvik.system.NativeStart.main(Native Method)

Since this was a new test device, I left the main billing popup window to look 
at terms of use and for entering a credit card. Without those extra steps, on 
other phones, I don't see the leak.

The device is a Samsung Galaxy S, running 2.2.

Original issue reported on code.google.com by [email protected] on 11 Apr 2011 at 1:15

In-App Billing does not work on Android 1.6 and 2.1

I tried the Dungeons sample app with many mobile phones.
The app worked correctly with Android 2.2 phone, however, it cannot work with 
Android 1.6 and 2.1 phone.
The result of my trial is shown below. "OK" means that the app works fine and 
"N/A" means I cannot buy item.

SHARP IS01 (Android 1.6) N/A
SHARP IS03 (Android 2.1) N/A
TOSHIBA IS04 (Android 2.1) N/A
SHARP IS05 (Android 2.2) OK
Pantech IS06 (Android 2.2) OK
HTC Desire (Android 2.2) OK
HTC Desire HD (Android 2.2) OK
SHARP 003SH (Android 2.2) OK
SHARP 005SH (Andoird 2.2) OK
ZTE Libero (Android 2.2) OK
Dell Streak (Android 2.2) OK
Sony-Ericsson Xperia (Android 2.1) N/A
TOSHIBA T-01C (Android 2.1) N/A

(The version of the market app was 2.3.4 in any phone.)

By using "OK" models I can buy android.test.purchased without trouble, however, 
I cannot buy it with "N/A" models that install Android 1.6 or 2.1.
The confirmation dialog of how to buy is displayed, but if I push "buy now" 
button, I am made to wait for about one minute and the approving dialog closes 
after it. After all, I cannot buy the item.

The sample app seems to have failed to receive IN_APP_NOTIFY intent on N/A case.
Here is the logcat message about when IN_APP_NOTIFY intent is made.

> WARN/GTalkService(1268): [DataMsgMgr] broadcast intent callback:
> result=CANCELLED forIntent { act=android.intent.action.REMOTE_INTENT
> cat=[com.android.vending.billing.IN_APP_NOTIFY] (has extras) }
> WARN/GTalkService(1268): TODO: implement reportNoReceiverError! 

Strange to say, it seems that GTalkService steals IN_APP_NOTIFY intent.
Is this a bug of the market app?

Thanks.

Original issue reported on code.google.com by [email protected] on 11 Apr 2011 at 6:40

Force manual update if an application uses in-app billing for the first time

Ok, I just updated my application, making some features premium, using in-app 
billing.

Got a lot of negative comments from the users, despite having provided clear 
description that some of the features now have to be paid for.

While it may be totally possible that nobody paid any attention to the 
description, it also may be possible that a lot of the users had automatic 
updates enabled for my application, and therefore never had a chance to read 
this information.

What would help is if the Market app on the phone would force a manual update 
for applications that have the billing permission for the first time.

Original issue reported on code.google.com by [email protected] on 12 Apr 2011 at 9:58

Subscription support for v3

I'm interested in having a subscription model for advanced features in my app.

Original issue reported on code.google.com by ddumont on 15 Mar 2011 at 12:01

Secure transaction

Dear Sirs,
Our business is producing MMO RPG. We are interested in confirmation  ability  
of  user purchase from our server bypassing game client.
When using PayPal system, PayPal server sends information about purchases made 
by a client on indicated «http» adress. 
While using  itunes you can request the itunes about transaction correctness 
with the help of unique key number (2 kilobytes size), which is sent to 
customer with every transaction.
Unfortunately, I cannot find such mechanism for  Android Market In-app Billing. 
Is there such  mechanism?
I regret to say, that I could not find this information at web pages 
http://developer.android.com/guide/market/billing/billing_best_practices.htm 
and  http://developer.android.com/guide/market/billing/billing_overview.html.

Original issue reported on code.google.com by [email protected] on 4 Apr 2011 at 2:16

Order process takes unacceptably long

I'm experiencing unacceptable delays in how the orders are processed.

STEPS TO REPRODUCE:
I order an item in the market dialog that pops up. Once I click the purchase 
button and see the "Verifying purchase" progress dialog, I can see an order in 
my Checkout account about a second later. The dialog stays open for at least a 
minute and once it closes and another few seconds later I see 
onRequestPurchaseResponse being called with Now the onRequestPurchaseResponse 
RESULT_OK showing "sending purchase request" as a Toast. Then it either takes 
at least another minute or so for the onPurchaseStateChange to be called or it 
is simply never called at all!

EXPECTED OUTPUT:
All actions should happen in a maximum of like 10 seconds.

ACTUAL OUTPUT:
At least two minutes of waiting and eventual a unrecognized order.

AFFECTED ORDER IDS (IF RELEVANT):
All, i.e.: 153753506523445

OS VERSION:
Android 1.6

MARKET/MYAPPS VERSION:
"version 1002306"

DEVICE:
HTC Dream / HTC Tattoo

Original issue reported on code.google.com by [email protected] on 28 Apr 2011 at 8:38

RESTORE_TRANSACTIONS request receives PURCHASE_STATE_CHANGED before RESPONSE_CODE and

STEPS TO REPRODUCE:
1.
2.
3.

EXPECTED OUTPUT:
Broadcast intent RESPONSE_CODE should come before PURCHASE_STATE_CHANGED.

ACTUAL OUTPUT:
I first receive PURCHASE_STATE_CHANGED then RESPONSE_CODE.

AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION:

MARKET/MYAPPS VERSION:

DEVICE:

OUTPUT FROM ADB BUGREPORT ATTACHED:
(Note: The output from "adb bugreport" is required for all bug reports.)

NOTES:

Original issue reported on code.google.com by [email protected] on 3 May 2011 at 7:53

In-App Billing not available

What steps will reproduce the problem?
1. Upload an application draft to android market, which uses the in-app billing 
permission.
2. I want to create in-app purchase products, but there is the ugly message: 
"Sorry, applications with the BILLING permission cannot be published at this 
time."
3. Now what? 

What is the expected output? What do you see instead?
I want to CREATE in-app billing products, but I can't 'cause it shows me this 
unexpressive message.

What version of the product are you using? On what operating system?
Android 1.6 and 2.2

Please provide any additional information below.
I don't have any. It seems to be a Google service malfunction.

Original issue reported on code.google.com by [email protected] on 2 Mar 2011 at 1:14

Attachments:

Random network error in buy page activity (in app billing)

STEPS TO REPRODUCE:
1. use In-App-Billing with real product Ids (the app is not yet published, the 
In-App products are published)
2. make the REQUEST_PURCHASE call (just like in the Dungeons example app)
3. start the buy page Activity with the intent returned (just like in the 
Dungeons example app)

EXPECTED OUTPUT:

to see be buy page evertime

ACTUAL OUTPUT:

About 1 in 5 times: a few seconds long the loading screen of the buy page 
overlay is displayed, then an alert dialog reports an network error. It does 
not matter if we use 3G or WIFI. The Internet is used by the app right before 
and after the request is made, the connection is stable and available all of 
the time.

In the log file, it says "connection reset by peer":

06-08 11:59:11.073: DEBUG/vending(5754): [1] 
BaseBuyPageActivity.onPostResponse(): {PurchaseResult=OK, 
PurchaseInfo=PurchaseInfo=, SignupStatus=SIGNED_UP, TId=965567726868130, 
ShoppingCart=[ItemPrice=3,99 €, TaxInclusive=, TaxExclusive=, 
Total=3,99 €, HasTaxMessage=false, TaxMessage=null, HasFooterMessage=false, 
FooterMessage=null], RefundPolicy=<b>Der Betrag für diesen In-App-Kauf kann 
nicht erstattet werden.</b> <br/> <a 
href="http://market.android.com/support/bin/answer.py?answer=1061913">Weitere 
Informationen</a><br/><a 
href="http://www.google.com/mobile/android/fsa-notification.html">Geregelt 
durch Financial Services Authority (FSA, britische Bankenaufsichtsbehörde), 
Großbritannien</a>, Instruments=[[Id=107222246370128, Name=VISA xxx-6482 
Invalid=false Type=CREDIT_CARD] ], DefaultBillingInstrument=107222246370128, 
ErrorFields=[]}
06-08 11:59:11.138: DEBUG/vending(5754): [1] 
BaseBuyPageActivity.shouldAddCarrierBilling(): isProvisioned(): false 
isSavedonServer(): false radio available? true
06-08 11:59:11.143: DEBUG/vending(5754): [1] 
BaseBuyPageActivity.shouldAddCarrierBilling(): isProvisioned(): false 
isSavedonServer(): false radio available? true
06-08 12:01:13.033: WARN/vending(5754): [36] 
RequestDispatcher.performRequestsOverNetwork(): IOException while performing 
API request: Connection reset by peer
06-08 12:01:13.048: DEBUG/vending(5754): [36] BaseAction.run(): IOException: 
java.net.SocketException: Connection reset by peer
06-08 12:01:13.058: ERROR/vending(5754): [36] 
BasePurchaseActivity.onPurchasePostError(): PurchasePost error
06-08 12:01:13.073: INFO/vending(5754): [1] BaseAction.displayErrorUi(): 
Network error in com.android.vending.billing.PurchasePostAction: 
java.net.SocketException: Connection reset by peer


AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION:

2.3.3
2.3.4
2.2.2

MARKET/MYAPPS VERSION:

2.3.6

DEVICE:

Samsung Galaxy Spica i5700
Sony Ericsson Arc
Google Nexus S

OUTPUT FROM ADB BUGREPORT ATTACHED:
see attachment.

NOTES:

Original issue reported on code.google.com by [email protected] on 8 Jun 2011 at 10:31

HOW TO GET THE TRASACTION NOTIFICATION WHILE NETWORK GOES.

hi,

while the transaction is in process and my application crashes.So how will get 
the information about that transaction.As I am just waiting for the confirm 
notification.How can I test this scenario with the Static Values.?

Can any one please help..

thanks
bins

Original issue reported on code.google.com by [email protected] on 11 Apr 2011 at 7:57

Sample code should only restoreTransactions() on install

The sample code should only call restoreTransactions() on first install (or if 
explicitly forced).

Calling restoreTransactions() too frequently can lead to quota errors -- we 
want to discourage behavior that might lead to this.

Original issue reported on code.google.com by [email protected] on 20 Apr 2011 at 9:18

Support trial period checks as a special purchase type

Currently, implementing a trial period for an application has to be coded 
completely by the developer, and requires a server component. 

While at it, one has to solve issues caused by application remove / reinstall, 
device reset, user moving to a new phone, app data being cleared.

It should be really easy to implement trial period support as a special item 
type in In-App Billing.

The user would need to make a special free "purchase" to initiate the trial. 
Since Market servers already track managed items, this could be a special 
managed item type. The application would then check for this item being in a 
"purchased" state to enable trial period features.

This would solve the issues caused by reinstalls, device reset, app data being 
cleared, etc., and make trial period support much easier for developers to 
implement.

Original issue reported on code.google.com by [email protected] on 11 Apr 2011 at 9:31

In-App Billing DEVELOPER_PAYLOAD is empty

What steps will reproduce the problem?

1) Install Dungeon's Example App
2) Edit the payload
3) buy android.test.purchased Item
4) Log or print the com.android.vending.billing.PURCHASE_STATE_CHANGED response


What is the expected output? What do you see instead?
The DEVELOPER_PAYLOAD shouldn't be empty.
The DEVELOPER_PAYLOAD which was added before the purchase isn't a part of the 
reponse.(see attached file - DEVELOPER_PAYLOAD is completely missing)


What version of the product are you using? On what operating system?
Android 2.2 on Galaxy Tab
Using Dungeon example code.

Original issue reported on code.google.com by [email protected] on 25 May 2011 at 1:30

Attachments:

.getPackageInfo(): cannot find package name: Ġ

STEPS TO REPRODUCE:
1. Just did the all the steps of the billing example
2.
3.

EXPECTED OUTPUT:
Everything working

ACTUAL OUTPUT:
Does not connect to the marketbillingservice

OS VERSION:
2.2.1 MIUI

MARKET/MYAPPS VERSION:

DEVICE:
HTC HD2

Log:
D/NetworkLocator( 1252): New location significantly newer than previous. 
Reporting it.
D/BillingService( 1266): CheckBillingSupported
I/BillingService( 1266): binding to Market billing service
I/global  ( 1252): Default buffer size used in BufferedInputStream constructor. 
It would be better to be explicit if an 8k buffer is required.
I/ActivityThread( 1274): Publishing provider 
com.android.vending.SuggestionsProvider: com.android.vending.SuggestionsProvider
D/vending ( 1274): [1] VendingApplication.onCreate(): Resetting ServiceLocator 
from app
I/ActivityManager(  221): Displayed activity de.test.dungeons/.Dungeons: 363 ms 
(total 363 ms)
D/BillingService( 1266): Billing service connected
D/BillingService( 1266): CheckBillingSupported
W/vending ( 1274): [8] 1.getPackageInfo(): cannot find package name: Ü
E/Bundle  ( 1266): readBundle: bad magic number
E/Bundle  ( 1266): readBundle: trace = java.lang.RuntimeException
E/Bundle  ( 1266): at android.os.Bundle.readFromParcelInner(Bundle.java:1580)
E/Bundle  ( 1266): at android.os.Bundle.<init>(Bundle.java:82)
E/Bundle  ( 1266): at android.os.Parcel.readBundle(Parcel.java:1394)
E/Bundle  ( 1266): at android.os.Parcel.readBundle(Parcel.java:1379)
E/Bundle  ( 1266): at android.os.Bundle$1.createFromParcel(Bundle.java:1517)
E/Bundle  ( 1266): at android.os.Bundle$1.createFromParcel(Bundle.java:1515)
E/Bundle  ( 1266): at 
com.android.vending.billing.IMarketBillingService$Stub$Proxy.sendBillingRequest(
IMarketBillingService.java:102)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService$CheckBillingSupported.run(BillingService.java:19
1)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService$BillingRequest.runIfConnected(BillingService.jav
a:120)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService.runPendingRequests(BillingService.java:543)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService.onServiceConnected(BillingService.java:580)
E/Bundle  ( 1266): at 
android.app.ActivityThread$PackageInfo$ServiceDispatcher.doConnected(ActivityThr
ead.java:1247)
E/Bundle  ( 1266): at 
android.app.ActivityThread$PackageInfo$ServiceDispatcher$RunConnection.run(Activ
ityThread.java:1264)
E/Bundle  ( 1266): at android.os.Handler.handleCallback(Handler.java:587)
E/Bundle  ( 1266): at android.os.Handler.dispatchMessage(Handler.java:92)
E/Bundle  ( 1266): at android.os.Looper.loop(Looper.java:123)
E/Bundle  ( 1266): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/Bundle  ( 1266): at java.lang.reflect.Method.invokeNative(Native Method)
E/Bundle  ( 1266): at java.lang.reflect.Method.invoke(Method.java:521)
E/Bundle  ( 1266): at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:870)
E/Bundle  ( 1266): at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
E/Bundle  ( 1266): at dalvik.system.NativeStart.main(Native Method)
I/BillingService( 1266): CheckBillingSupported response code: RESULT_OK
I/Dungeons( 1266): supported: true
D/BillingService( 1266): RestoreTransactions
W/vending ( 1274): [7] 1.getPackageInfo(): cannot find package name: ø
E/Bundle  ( 1266): readBundle: bad magic number
E/Bundle  ( 1266): readBundle: trace = java.lang.RuntimeException
E/Bundle  ( 1266): at android.os.Bundle.readFromParcelInner(Bundle.java:1580)
E/Bundle  ( 1266): at android.os.Bundle.<init>(Bundle.java:82)
E/Bundle  ( 1266): at android.os.Parcel.readBundle(Parcel.java:1394)
E/Bundle  ( 1266): at android.os.Parcel.readBundle(Parcel.java:1379)
E/Bundle  ( 1266): at android.os.Bundle$1.createFromParcel(Bundle.java:1517)
E/Bundle  ( 1266): at android.os.Bundle$1.createFromParcel(Bundle.java:1515)
E/Bundle  ( 1266): at 
com.android.vending.billing.IMarketBillingService$Stub$Proxy.sendBillingRequest(
IMarketBillingService.java:102)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService$RestoreTransactions.run(BillingService.java:324)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService$BillingRequest.runIfConnected(BillingService.jav
a:120)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService$BillingRequest.runRequest(BillingService.java:97
)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService.restoreTransactions(BillingService.java:448)
E/Bundle  ( 1266): at 
de.test.dungeons.Dungeons.restoreDatabase(Dungeons.java:405)
E/Bundle  ( 1266): at de.test.dungeons.Dungeons.access$0(Dungeons.java:401)
E/Bundle  ( 1266): at 
de.test.dungeons.Dungeons$DungeonsPurchaseObserver.onBillingSupported(Dungeons.j
ava:124)
E/Bundle  ( 1266): at 
de.test.dungeons.ResponseHandler.checkBillingSupportedResponse(ResponseHandler.j
ava:60)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService$CheckBillingSupported.run(BillingService.java:19
8)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService$BillingRequest.runIfConnected(BillingService.jav
a:120)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService.runPendingRequests(BillingService.java:543)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService.onServiceConnected(BillingService.java:580)
E/Bundle  ( 1266): at 
android.app.ActivityThread$PackageInfo$ServiceDispatcher.doConnected(ActivityThr
ead.java:1247)
E/Bundle  ( 1266): at 
android.app.ActivityThread$PackageInfo$ServiceDispatcher$RunConnection.run(Activ
ityThread.java:1264)
E/Bundle  ( 1266): at android.os.Handler.handleCallback(Handler.java:587)
E/Bundle  ( 1266): at android.os.Handler.dispatchMessage(Handler.java:92)
E/Bundle  ( 1266): at android.os.Looper.loop(Looper.java:123)
E/Bundle  ( 1266): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/Bundle  ( 1266): at java.lang.reflect.Method.invokeNative(Native Method)
E/Bundle  ( 1266): at java.lang.reflect.Method.invoke(Method.java:521)
E/Bundle  ( 1266): at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:870)
E/Bundle  ( 1266): at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
E/Bundle  ( 1266): at dalvik.system.NativeStart.main(Native Method)
E/BillingService( 1266): restoreTransactions received RESULT_OK
D/BillingService( 1266): request id: -1
D/dalvikvm(  221): GC_EXPLICIT freed 30902 objects / 1796432 bytes in 95ms
D/BillingService( 1266): request id: -1
D/dalvikvm( 1274): GC_FOR_MALLOC freed 2410 objects / 156536 bytes in 41ms
D/gmmNlpServiceThread( 1252): reporting 
Location[mProvider=network,mTime=1307624131677,mLatitude=31.3156665,mLongitude=1
21.5064518,mHasAltitude=false,mAltitude=0.0,mHasSpeed=false,mSpeed=0.0,mHasBeari
ng=false,mBearing=0.0,mHasAccuracy=true,mAccuracy=686.0,mExtras=Bundle[{networkL
ocationSource=cached, networkLocationType=cell}]]
I/System.out( 1252): [INFO:2092]: g: Running flush
I/System.out( 1252): [INFO:2127]: g: Sending payload [bytes=402]
D/dalvikvm( 1266): GC_FOR_MALLOC freed 4901 objects / 333760 bytes in 36ms
D/Dungeons( 1266): buying: Two-handed sword sku: sword_001
D/BillingService( 1266): RequestPurchase
W/vending ( 1274): [9] 1.getPackageInfo(): cannot find package name: Ą
E/Bundle  ( 1266): readBundle: bad magic number
E/Bundle  ( 1266): readBundle: trace = java.lang.RuntimeException
E/Bundle  ( 1266): at android.os.Bundle.readFromParcelInner(Bundle.java:1580)
E/Bundle  ( 1266): at android.os.Bundle.<init>(Bundle.java:82)
E/Bundle  ( 1266): at android.os.Parcel.readBundle(Parcel.java:1394)
E/Bundle  ( 1266): at android.os.Parcel.readBundle(Parcel.java:1379)
E/Bundle  ( 1266): at android.os.Bundle$1.createFromParcel(Bundle.java:1517)
E/Bundle  ( 1266): at android.os.Bundle$1.createFromParcel(Bundle.java:1515)
E/Bundle  ( 1266): at 
com.android.vending.billing.IMarketBillingService$Stub$Proxy.sendBillingRequest(
IMarketBillingService.java:102)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService$RequestPurchase.run(BillingService.java:231)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService$BillingRequest.runIfConnected(BillingService.jav
a:120)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService$BillingRequest.runRequest(BillingService.java:97
)
E/Bundle  ( 1266): at 
de.test.dungeons.BillingService.requestPurchase(BillingService.java:438)
E/Bundle  ( 1266): at de.test.dungeons.Dungeons.onClick(Dungeons.java:464)
E/Bundle  ( 1266): at android.view.View.performClick(View.java:2447)
E/Bundle  ( 1266): at android.view.View$PerformClick.run(View.java:9025)
E/Bundle  ( 1266): at android.os.Handler.handleCallback(Handler.java:587)
E/Bundle  ( 1266): at android.os.Handler.dispatchMessage(Handler.java:92)
E/Bundle  ( 1266): at android.os.Looper.loop(Looper.java:123)
E/Bundle  ( 1266): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/Bundle  ( 1266): at java.lang.reflect.Method.invokeNative(Native Method)
E/Bundle  ( 1266): at java.lang.reflect.Method.invoke(Method.java:521)
E/Bundle  ( 1266): at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:870)
E/Bundle  ( 1266): at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
E/Bundle  ( 1266): at dalvik.system.NativeStart.main(Native Method)
E/BillingService( 1266): Error with requestPurchase
D/BillingService( 1266): request id: -1
D/dalvikvm(  328): GC_EXTERNAL_ALLOC freed 227 objects / 12896 bytes in 35ms
D/dalvikvm(  328): GC_EXTERNAL_ALLOC freed 32 objects / 1312 bytes in 74ms
D/dalvikvm(  328): GC_EXTERNAL_ALLOC freed 10 objects / 312 bytes in 45ms
D/dalvikvm(  328): GC_EXTERNAL_ALLOC freed 34 objects / 1216 bytes in 48ms
I/System.out( 1252): [INFO:7127]: g: Running delayed flush
I/System.out( 1252): [INFO:7137]: g: Running flush
D/dalvikvm(  328): GC_EXPLICIT freed 176 objects / 9544 bytes in 37ms
D/alogcat ( 1231): stopping ...
D/alogcat ( 1231): canceling periodic saves
V/alogcat ( 1231): started
V/alogcat ( 1231): resumed
D/alogcat ( 1231): starting ...
D/dalvikvm( 1252): GC_FOR_MALLOC freed 20502 objects / 774288 bytes in 101ms
D/AndroidRuntime( 1295): Shutting down VM
W/dalvikvm( 1295): threadid=1: thread exiting with uncaught exception 
(group=0x4001d808)


NOTES:
Did the sample app tutorial step by step. This is the sample project. 
Everything is setup correctly, but I can't get rid of this error.
The onServiceConnected(ComponentName name, IBinder service) procedure is rever 
reached, because there is alwas this message:
.getPackageInfo(): cannot find package name: Ġ
The Ġ is often replaced by other strange letters, but the actual package names 
doesn't contain any of these letters.

Thanks for your help.

Original issue reported on code.google.com by [email protected] on 9 Jun 2011 at 1:04

NullPointerException in com.android.vending.billing.MarketBillingService

STEPS TO REPRODUCE:
1. Implement the in app billing using the example app
2. Test with the static responses android.test.purchased, this works fine
3. Test with android.test.canceled, this gives an exception, see callstack. 
What's going wrong???

EXPECTED OUTPUT:
No exception

ACTUAL OUTPUT:
Exception

AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION:
2.2.3
MARKET/MYAPPS VERSION:
2.3.6
DEVICE:
Nexus One

OUTPUT FROM ADB BUGREPORT ATTACHED:
(Note: The output from "adb bugreport" is required for all bug reports.)

NOTES:
04-20 21:35:22.908 D/BillingService(28634): CheckBillingSupported
04-20 21:35:22.908 I/BillingService(28634): binding to Market billing service
04-20 21:35:22.928 D/BillingService(28634): Billing service connected
04-20 21:35:22.928 D/BillingService(28634): CheckBillingSupported
04-20 21:35:22.938 I/BillingService(28634): CheckBillingSupported response 
code: RESULT_OK
04-20 21:35:22.938 I/AutoPilot(28634): supported: true
04-20 21:35:22.938 D/BillingService(28634): request id: -1
04-20 21:35:23.008 I/ActivityManager(   92): Displayed 
com.willemstoker.AutoPilot/.EditYourSettingActivity: +253ms
04-20 21:35:25.228 D/AutoPilot(28634): buying
04-20 21:35:25.228 D/BillingService(28634): RequestPurchase
04-20 21:35:25.248 I/ActivityManager(   92): Starting: Intent { 
act=android.intent.action.VIEW 
cmp=com.android.vending/.billing.InAppBuyPageActivity (has extras) } from pid -1
04-20 21:35:25.258 D/BillingService(28634): request id: 2737388895789349760
04-20 21:35:25.518 I/dalvikvm(28213): Jit: resizing JitTable from 4096 to 8192
04-20 21:35:25.608 I/ActivityManager(   92): Displayed 
com.android.vending/.billing.InAppBuyPageActivity: +334ms
04-20 21:35:25.628 D/dalvikvm(28213): GC_CONCURRENT freed 1176K, 53% free 
3533K/7367K, external 2905K/3300K, paused 4ms+7ms
04-20 21:35:26.598 D/vending (28213): [1] BaseBuyPageActivity.onPostResponse(): 
{PurchaseResult=OK, PurchaseInfo=PurchaseInfo=, SignupStatus=SIGNED_UP, 
TId=transactionId.android.test.canceled, ShoppingCart=[ItemPrice=$0.99, 
TaxInclusive=, TaxExclusive=, Total=$0.99, HasTaxMessage=false, 
TaxMessage=null, HasFooterMessage=true, FooterMessage=Dit is geen echte 
aankoop.], RefundPolicy=<b>Voor deze aankoop is geen teruggave 
mogelijk.</b><br/><a 
href="http://market.android.com/support/bin/answer.py?answer=1061913">Beleid 
voor teruggaven</a>, Instruments=[[Id=android.test.canceled, Name=VISA xxx-FAKE 
Invalid=false Type=CREDIT_CARD] ], 
DefaultBillingInstrument=android.test.canceled, ErrorFields=[]}
04-20 21:35:26.608 D/vending (28213): [1] 
BaseBuyPageActivity.shouldAddCarrierBilling(): isProvisioned(): false 
isSavedonServer(): false radio available? true
04-20 21:35:26.608 D/vending (28213): [1] 
BaseBuyPageActivity.shouldAddCarrierBilling(): isProvisioned(): false 
isSavedonServer(): false radio available? true
04-20 21:35:30.698 D/dalvikvm(28221): GC_EXPLICIT freed 565K, 54% free 
2786K/5959K, external 1625K/2137K, paused 86ms
04-20 21:35:30.878 D/vending (28213): [1] 
BaseBuyPageActivity.onOrderResponse(): state: CART_PURCHASE response: 
[PurchaseResult=OK]
04-20 21:35:30.958 D/dalvikvm(28213): GC_CONCURRENT freed 1353K, 54% free 
3424K/7431K, external 2265K/2801K, paused 7ms+2ms
04-20 21:35:30.978 I/Gmail   (27611): MainSyncRequestProto: lowestBkwdConvoId: 
0, highestHandledServerOp: 183171, normalSync: true
04-20 21:35:31.208 I/BillingReceiver(28634): notifyId: android.test.canceled
04-20 21:35:31.208 W/ActivityManager(   92): Duplicate finish request for 
HistoryRecord{40827cf0 com.android.vending/.billing.InAppBuyPageActivity}
04-20 21:35:31.218 I/BillingService(28634): handleCommand() action: 
com.willemstoker.AutoPilot.GET_PURCHASE_INFORMATION
04-20 21:35:31.218 D/BillingService(28634): GetPurchaseInformation
04-20 21:35:31.228 E/BillingService(28634): getPurchaseInformation received 
RESULT_OK
04-20 21:35:31.228 D/BillingService(28634): request id: 3656394189988289586
04-20 21:35:31.238 W/InputManagerService(   92): Window already focused, 
ignoring focus gain of: 
com.android.internal.view.IInputMethodClient$Stub$Proxy@409e0740
04-20 21:35:31.308 I/BillingService(28634): handleCommand() action: 
com.android.vending.billing.RESPONSE_CODE
04-20 21:35:31.308 D/BillingService(28634): RequestPurchase: RESULT_OK
04-20 21:35:31.308 D/AutoPilot(28634): android.test.canceled: RESULT_OK
04-20 21:35:31.308 I/AutoPilot(28634): purchase was successfully sent to server
04-20 21:35:31.978 I/BillingService(28634): handleCommand() action: 
com.android.vending.billing.PURCHASE_STATE_CHANGED
04-20 21:35:31.978 I/Security(28634): signedData: 
{"nonce":6955467956256124291,"orders":[{"notificationId":"android.test.canceled"
,"orderId":"transactionId.android.test.canceled","packageName":"com.willemstoker
.AutoPilot","productId":"android.test.canceled","purchaseTime":1303328261915,"pu
rchaseState":1}]}
04-20 21:35:31.998 D/BillingService(28634): ConfirmNotifications
04-20 21:35:32.008 E/BillingService(28634): confirmNotifications received 
RESULT_OK
04-20 21:35:32.008 D/BillingService(28634): request id: 8907712747543870794
04-20 21:35:32.008 I/AutoPilot(28634): onPurchaseStateChange() itemId: 
android.test.canceled CANCELED
04-20 21:35:32.018 I/BillingService(28634): handleCommand() action: 
com.android.vending.billing.RESPONSE_CODE
04-20 21:35:32.018 D/BillingService(28634): GetPurchaseInformation: RESULT_OK
04-20 21:35:32.028 W/dalvikvm(28213): threadid=11: thread exiting with uncaught 
exception (group=0x40015560)
04-20 21:35:32.028 E/AndroidRuntime(28213): FATAL EXCEPTION: Thread-21
04-20 21:35:32.028 E/AndroidRuntime(28213): java.lang.NullPointerException
04-20 21:35:32.028 E/AndroidRuntime(28213):     at 
com.android.vending.billing.MarketBillingService$BillingNotifier.showStatusBarNo
tifications(MarketBillingService.java:397)
04-20 21:35:32.028 E/AndroidRuntime(28213):     at 
com.android.vending.billing.MarketBillingService$AsynchPurchaseInformation.doReq
uest(MarketBillingService.java:549)
04-20 21:35:32.028 E/AndroidRuntime(28213):     at 
com.android.vending.AsynchRequestRunner$RequestRunnable.run(AsynchRequestRunner.
java:37)
04-20 21:35:32.028 E/AndroidRuntime(28213):     at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
04-20 21:35:32.028 E/AndroidRuntime(28213):     at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
04-20 21:35:32.028 E/AndroidRuntime(28213):     at 
java.lang.Thread.run(Thread.java:1019)
04-20 21:35:32.028 E/AndroidRuntime(28213):     at 
com.android.vending.AsynchRequestRunner$VendingThreadFactory$VendingFactoryThrea
d.run(AsynchRequestRunner.java:118)

Original issue reported on code.google.com by willem.stoker on 21 Apr 2011 at 8:08

Purchase state notifications seem to get lost and not retransmitted

"Purchase completed" state for about 4-6% of in-app orders for my app is never 
received by the application on the phone.

My code is based on the Dungeons sample, and it seems to listen for all the 
right notifications, and yet, several hours after the order has been processed 
the app still doesn't receive the notification.

Removing the app and reinstalling, i.e. making it request "restore transaction 
state" resolved the issue every time.

This makes me think that something sometimes goes wrong in the flow of data 
from Google Checkout back to the application, to confirm the purchase after 
it's processed.

Again, this affects only 4 to 6% of purchases, so overall it's very good, but 
having proper retransmits, the way it's supposed to work, would remove the 
issue altogether.

Original issue reported on code.google.com by [email protected] on 12 Apr 2011 at 10:04

In-App purchases which are cancelled cannot be reset

What steps will reproduce the problem?
1. User attempts In-App purchase
2. Transaction is cancelled (Credit card problem, time out etc), no charge is 
made to the customer.
3. User cannot re-attempts the purchase the message appears "You have already 
purchased this item" 

What is the expected output? What do you see instead?

A way for the transaction to be reset so the user may purchase the In-App Item, 
This facility does not seem to be available on in the DashBoard.

What version of the product are you using? On what operating system?

I'm the Developer of Quota 
(https://market.android.com/details?id=com.southfreo) which uses In-App 
purchasing to upgrade the Application. The code is based on the Billing sample.

Please provide any additional information below.

It seems the message "You have already purchased this item" is incorrect as the 
transaction was cancelled, the transaction should have reset and the user allow 
to attempt a repurchase.





Original issue reported on code.google.com by [email protected] on 1 Apr 2011 at 2:03

InApp payment refused by Google Checkout

Hi,

Starting from yesterday, we have some problems with InApp Billing payments 
performed by our customers, every payment have been refused wit the same error 
"We could not complete your order in a timely fashion. Please verify your 
payment information in Google Checkout and try again later."

STEPS TO REPRODUCE:
1. Pay with InApp Billing in our application
2. User's card get authorization
3. Some time later, the payment is refused with the above error.

EXPECTED OUTPUT:
IN_APP_NOTIFY should notify us that the payment process has completed

ACTUAL OUTPUT:
No IN_APP_NOTIFY received, BillingService never called!!!

AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION:
2.2.1

MARKET/MYAPPS VERSION:
2.3.6

DEVICE:
Samsung Galaxy S

OUTPUT FROM ADB BUGREPORT ATTACHED:
(Note: The output from "adb bugreport" is required for all bug reports.)

NOTES:

Original issue reported on code.google.com by [email protected] on 10 May 2011 at 3:08

Attachments:

In App billing Application Android

Hi,
I have downloaded the application sample from Google site.
http://developer.android.com/guide/market/billing/billing_integrate.html
I have nexus S.2.3 version.
Android market application 2.3.2.

I was trying run the sample application to understand how does this sample app 
working.But i could not the application working.I am India.
when ever The Sample app try to check the market CheckBillingSupported,i 
receive the flag as replay "RESULT_BILLING_UNAVAILABLE".Please guide me  ,How 
can i make this application working.

thanks in advance.
Binil Thomas P R


Original issue reported on code.google.com by [email protected] on 25 Feb 2011 at 12:05

Attachments:

Weird service interaction in Dungeons sample

The In-App Billing sample code (Dungeons) does something really weird to 
interact with the in-application billing service.

In Dungeons.onCreate (Dungeons.java):

       mBillingService = new BillingService();
       mBillingService.setContext(this);

Where setContext calls the framework's AttachBaseContext.

This way of starting a service is not documented anywhere in the SDK (as far as 
I can see).

This is confusing to me as a developer. I'd like my application to only use 
documented ways of interacting with components. At the same time, I'm wary of 
changing this code because it might break the already flakey purchasing process.

Can this be cleaned up please?

One other thing: after starting and closing (with the back button) the Dungeons 
activity as attached above, the mBillingService continues to run and show in 
Phone's Running Services info screen.

This going to be a support issue for my, or anyone else's application.

Original issue reported on code.google.com by [email protected] on 11 Apr 2011 at 7:54

Attachments:

Refunding in-app purchases

The documentation lists three states for a managed purchase: Purchased, 
Canceled, Refunded.

The sample code makes a point of treating Refunded as Purchased, commented as 
"nice for the user". I agree.

But - I don't see a way to refund an in-app purchase in my Google Checkout 
console:

https://checkout.google.com/sell/orders

I can open a particular order, and that only has a button to "Cancel entire 
order". Doing this sets purchase state to Canceled (1), not Refunded (2), which 
makes sense, since it says "Cancel", not "Refund".

There is a link to "Refund some money", but it's grayed out.

Am I missing something? Is there a way to refund an in-app purchase, distinct 
from canceling it?

Is the documentation wrong? Is the sample code wrong?

Original issue reported on code.google.com by [email protected] on 11 Apr 2011 at 4:16

Attachments:

Orders that don't pass authorization can't be fixed; misleading user notifications

What steps will reproduce the problem?

1.

A user tries to buy an in-app managed item. His card passes the preliminary 
authorization checks, but not the actual charge.

2.

a - Google Checkout sends the user an email asking to enter correct card info, 
saying that the order will be completed then.


3.

a - After entering correct data, the order still does not go though.

b - The order is listed in the user's order list on Google Checkout as 
"canceled by seller". This is misleading, the seller did not cancel the order, 
Google Checkout did.

c - If the user tried to place a new order, it's declined by Android Market, 
since the item is managed.

Bottom line - the user is mislead, misinformed, and left confused and unable to 
make the purchase.

What is the expected output?

a - The user can enter correct credit card info and complete the existing order.

b - The user is not misinformed that the order was canceled by the seller.

c - The user has some way to purchase the item, either with the old order, or 
by placing a new one.

What version of the product are you using? 

Android Market with in-app billing support, 2.3+

On what operating system?

Windows Mobile running on a Blackberry :)


Original issue reported on code.google.com by [email protected] on 20 Apr 2011 at 1:33

  • Merged into: #5

In-app billing does not work when entering @googlemail.com addresses for test accounts

I tried to test In-app billing in my application. While I did read the whole 
documentation and I believed I did everything right, In-app purchase was not 
possible. It always said that the product was unavailable, even if it was 
correctly entered and published. My whole problem is described here:
http://groups.google.com/group/android-developers/browse_thread/thread/f242f74c7
803dd4a

Then I modified my test accounts on 
https://market.android.com/publish/editProfile to the corresponding @gmail 
addresses, and In-app billing suddenly started to work.

My suggestions to solve this issue:
 - Do not allow to enter @googlemail.com addresses as test accounts on https://market.android.com/publish/editProfile
 - OR: Allow to enter @googlemail.com addresses, but treat them as @gmail.com addresses internally

Thanks a lot for this awesome new Android feature! :-)

Original issue reported on code.google.com by [email protected] on 26 Mar 2011 at 2:05

PURCHASE_STATE_CHANGED intent with no signature app version doesn't match uploaded APK

What steps will reproduce the problem?

2. Install an APK on the device with a certain version number
1. Upload a APK to the Android Market with a newer version number
3. Attempt to restore transactions or purchase something on the device with the 
older app version


What is the expected output? What do you see instead?

When the APK versions match I get PURCHASE_STATE_CHANGED with a valid signature 
and signed data.

When they do not match, the user upon attempting to restore transactions gets 
PURCHASE_STATE_CHANGED with null signature and signed data. The request returns 
with the result RESULT_DEVELOPER_ERROR. If a purchase is attempted, the user 
gets the message "This version of the application is not configured for market 
billing." 


What version of the product are you using? On what operating system?

Android 2.2.2 on Galaxy S (Samsung Vibrant)
Using Dungeon example code.
APK is signed with release certificate.


Please provide any additional information below.

This is unexpected but would be bad if updates to the Market APK break the 
ability for older versions of the app to engage in Billing activities.


Original issue reported on code.google.com by [email protected] on 13 Apr 2011 at 9:40

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.