Coder Social home page Coder Social logo

marketbilling's People

Contributors

tanis2000 avatar tjohns avatar

Watchers

 avatar

marketbilling's Issues

Managed items: IN_APP_NOTIFY not being received / duplicate orders

STEPS TO REPRODUCE:
1. Setup In-app billing in your application and administer Managed products in 
it.
2. Click on Purchase and see the purchase dialog show up.
3. Click buy on the confirmation screen showing your CC.

EXPECTED OUTPUT:

IAB should send IN_APP_NOTIFY to the application.

ACTUAL OUTPUT:
IAB directly sends com.android.vending.billing.RESPONSE_CODE with 
06-RequestPurchase: RESULT_OK


OUTPUT FROM ADB BUGREPORT ATTACHED:

NOTES:
It works like a charm with the standard android.test.purchased product id. The 
above bug also means that it allows us to buy the same Managed item over and 
over again with transaction going through.

Original issue reported on code.google.com by [email protected] on 18 Jun 2011 at 6:52

Attachments:

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

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

how to sell wallpaper and video by in appbilling app

STEPS TO REPRODUCE:
1.i want to sell video and wallpaper from my inapp billing app. i have made an 
application by sample code and purchased sucessfully app by my inapp 
aplication, but i am not getting any idea how to add wallpaper and video in 
product list of inapp aplication.   
2.
3.

EXPECTED OUTPUT:

ACTUAL OUTPUT:

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 22 Sep 2011 at 6:03

While trying to purchase an IAB item from Market (in Test mode), we are receiving "RESULT_ERROR" from market in an intermittent manner.

STEPS TO REPRODUCE:
1. Launch the app
2. Try to purchase an IAB item

EXPECTED OUTPUT:
Should be able to consistently purchase items from Market
ACTUAL OUTPUT:
Market Service seems intermittent and therefore some times we are unable to 
purchase items
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 29 Sep 2011 at 10:56

In-app billing has suddenly stopped working (Reason: We could not complete your order in a timely fashion)

STEPS TO REPRODUCE:
1. User clicks a button in app which calls sendBillingRequest() with a 
REQUEST_PURCHASE and appropriate item ID in the bundle.
2. User attempts to complete the transaction by filling in the payment details.
3. As the app publisher, when I check orders for my app in my merchant billing 
account, I see the following order history for this user:

Order history
Sep 14     5:54 AM  Order cancelled You cancelled this order. 
Reason: Other (describe below) 
Message sent to customer: We could not complete your order in a timely fashion. 
Please verify your payment information in Google Checkout and try again later.
Sep 14     5:52 AM  Order received  You received a new order. Google has sent the 
customer an order confirmation email.

Other details:
I have had 4 orders rejected yesterday.  Prior to yesterdays, orders were 
getting accepted and processed correctly.  The specific example above has an 
order ID of 548217735428824.  My android app is published in the Android Market 
as "com.shiprack.client".  And it has only one in-app purchasable product: 
Remove Banner Ads (in-app product ID: com.shiprack.client.noads).  The only 
change on my part yesterday was the release of a new version to the android 
market, including a one-line bugfix regarding creating pending intents to 
trigger status-bar notifications.  This was completely unrelated to in app 
billing service.


EXPECTED OUTPUT:
Here's the "order history" I expect to see in the google checkout merchant 
account:
Sep 9     7:26 PM   Order shipped   You shipped this order.
Sep 9     7:26 PM   Order charged   The customer's credit card was successfully 
charged for $0.99.

ACTUAL OUTPUT:
Order history
Sep 14     5:54 AM  Order cancelled You cancelled this order. 
Reason: Other (describe below) 
Message sent to customer: We could not complete your order in a timely fashion. 
Please verify your payment information in Google Checkout and try again later.
Sep 14     5:52 AM  Order received  You received a new order. Google has sent the 
customer an order confirmation email.

AFFECTED ORDER IDS (IF RELEVANT):
There's 4 so far:
548217735428824
929372187312989
151796159540092
831663162506844

OS VERSION:
Different, depending upon the customer placing the order.  But ranges from 2.2 
to 2.3.3.

MARKET/MYAPPS VERSION:
Different, depending upon the customer placing the order.

DEVICE:
Different, depending upon the customer placing the order.

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

Can't provide you with one, because I tried buying my own in-app product using 
my Google account ([email protected]), and that transaction failed for a 
different reason, and when I attempted again, I keep getting "you already have 
a pending purchase"


NOTES:
Losing revenue!

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

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

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:

Cannot handle more notification IDs when receiving IN_APP_NOTIFY broadcast intents

In the sample code BillingReceiver.java,

public void onReceive(Context context, Intent intent) {
    ...
    } else if (Consts.ACTION_NOTIFY.equals(action)) {
        String notifyId = intent.getStringExtra(Consts.NOTIFICATION_ID);
        if (Consts.DEBUG) {
            Log.i(TAG, "notifyId: " + notifyId);
        }
        notify(context, notifyId);
    } ...

I think String notifyId = intent.getStringExtra(Consts.NOTIFICATION_ID); should 
be modified to 
String notifyId = intent.getStringArrayExtra(Consts.NOTIFICATION_ID);

Because based on In-app Billing Reference, it may contain more than 1 
notification ID.



STEPS TO REPRODUCE:
1.
2.
3.

EXPECTED OUTPUT:

ACTUAL OUTPUT:

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 31 Jul 2011 at 4:30

In-app billing broken when using carrier payment for the first time

STEPS TO REPRODUCE:
1. Use a carrier-billing-enabled device where you've never actually paid for 
any market purchase using carrier billing (I hit this with T-Mobile, FWIW)
2. Run an app with in-app billing, and try to purchase an in-app product
3. Choose carrier billing and hit OK

EXPECTED OUTPUT:
Payment is successful, and the app received the valid intents to proceed

ACTUAL OUTPUT:
User UX seems to suggest that payment went through, but it didn't really and 
the app received no broadcast intents (success nor failure). See notes for more.

AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION:
2.3.4

MARKET/MYAPPS VERSION:
2.3.6

DEVICE:
Nexus One

OUTPUT FROM ADB BUGREPORT ATTACHED:
This happened on a non-development, user device.

NOTES:
I believe what's happening is that Android Market is unable to handle the user 
accepting the carrier ToS when using carrier billing for the first time. What 
happens is that Market directs you to accept carrier ToS. When you do, it 
brings you back to the Market purchase page. You re-select Carrier in the 
payment options and it brings up the "Authorizing..." dialog. That dialog 
disappears after a while and nothing really happens. User isn't charged, but to 
users it looks like a payment happened (didn't really). The app doesn't receive 
any intent broadcasts either.

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

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

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:

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:

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

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

.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

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

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

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:

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

Duplicate Purchases allowed for managed products

STEPS TO REPRODUCE:
1. Choose a managed product id that has previously been purchased. 
2. Attempt to buy it when it has previously been bought.  
3. Attempt to buy it again. 

EXPECTED OUTPUT:
A message that the product has already been purchased. 
ACTUAL OUTPUT:
The purchase proceeds and shows up in Google Checkout. No purchase state change 
notification is received (see issue 32). 
A subsequent attempt receives server error (retry/cancel). 

AFFECTED ORDER IDS (IF RELEVANT):
bcn_ust_atv_trails_nation_00

OS VERSION:
2.2.2

MARKET/MYAPPS VERSION:

2.3.6
DEVICE:

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

NOTES:
This cannot be worked around by looking at locally stored records of purchase. 
Since the purchase state change has never been received (issue 32), there is no 
locally stored copy. 

Original issue reported on code.google.com by [email protected] on 22 Jun 2011 at 3:55

  • Merged into: #32

Attachments:

Get Purchase Information Error and Confirm Notifications Error

I implement In-app billing in my application. but sometimes(5%), when user 
purchase, can not get the purchase information after receive notify ID.

STEPS TO REPRODUCE:

1.receive notify ID
2.send Get Purchase Information request
3.in receiver, receive RESULT_ERROR

EXPECTED OUTPUT:
receive PURCHASE_STATE_CHANGED response

ACTUAL OUTPUT:
always receive RESULT_ERROR even if reboot phone! market seem to be in dead 
loop.

AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION:
2.2.1

MARKET/MYAPPS VERSION:
2.3.6

DEVICE:
Galaxy S 4G

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

08-11 15:37:03.533: DEBUG/BillingReceiver(2797): onReceive(): ......
08-11 15:37:03.533: DEBUG/BillingReceiver(2797): notify ID = 6526439319609430626
08-11 15:37:03.533: DEBUG/BillingSender(2797): GetPurchaseInformation()...
08-11 15:37:03.541: DEBUG/BillingSender(2797): GetPurchaseInformation received 
: RESULT_OK
08-11 15:37:03.584: DEBUG/BillingReceiver(2797): onReceive(): ......
08-11 15:37:03.584: DEBUG/BillingReceiver(2797): onReceive(): 
checkResponseCode()......
08-11 15:37:03.584: DEBUG/BillingReceiver(2797): RequestType = 
GET_PURCHASE_INFORMATION; ResponseCode = RESULT_ERROR


NOTES:
only after reinstall market and reboot phone, receive PURCHASE_STATE_CHANGED, 
complete the purchase. 

another issue:
sometimes(5%), when I receive Several refund and cancelled orders in one 
PURCHASE_STATE_CHANGED intent, I need send all the order's notify Id in one 
ConfirmNotifications request, but ConfirmNotifications always RESULT_ERROR even 
if I reboot phone, market seem to be in dead loop too. only after reinstall 
market and reboot phone, I can complete the transactions.

Original issue reported on code.google.com by [email protected] on 11 Aug 2011 at 8:51

Question on Android IAB for Samsung Moment (M900) Sprint device

STEPS TO REPRODUCE:
1.Launch the app
2.Try to purchase an item from Android Market
3.

EXPECTED OUTPUT:
Should be able to purchase IAB items

ACTUAL OUTPUT:
Cannot purchase IAB items from Market

AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION:

MARKET/MYAPPS VERSION:
1710
DEVICE:
Samsung M900

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

NOTES: Does Market version 1710, support IAB?

Original issue reported on code.google.com by [email protected] on 11 Oct 2011 at 11:08

In-app purchases being canceled by customers

Two Days ago, I enabled in-app purchases in my app (after the NOTIFY bug was 
fixed by Google).
Several customers have made the in-app purchases successfully which is good to 
see.
Unfortunately, some customers have also cancelled the in-appurchse.
How is this possible since the customer invoice says "This in-app purchase 
cannot be refunded.", and I don't see any links in the invoice that will allow 
canceling?
Also, my app does not have the ability to allow cancelations.
Finally, I'm the only one with access to the Merchant account and I have not 
manually issued the cancellations.
Any ideas how this is possible?
Michael

Original issue reported on code.google.com by [email protected] on 5 Jul 2011 at 1:52

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

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 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

You already have a pending order for this item

STEPS TO REPRODUCE:
1. Buy in an-app item, any application
2. Android market encounters a timeout during credit card processing and the 
user receives an email receipt which states "Took too long to deliver"
3. Subsequent attempts to buy the same in-app item results in the Android 
Market message: "You already have a pending order for this item. From that 
point on the user us NEVER able to purchase that item again. The message always 
pops up on every purchase attempt for the item.

EXPECTED OUTPUT:
User should be able to purchase the item - even after android market has 
whatever timeout is occurring. 

ACTUAL OUTPUT: You already have a pending order for this item

AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION: All

MARKET/MYAPPS VERSION: 3.x+

DEVICE: All

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

NOTES: I am attaching the screen shots from an application called 9-innings 
baseball. After reviewing the screen shots, it is quite clear that the issue 
resides within android market. This is where the error occurs and the state of 
the order lives. FIX THIS!!!!! The images are numbered in the order of the 
transaction steps: screen1, screen2, screen3, screen4 then screen5

Original issue reported on code.google.com by [email protected] on 17 Oct 2011 at 5:12

Attachments:

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

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

NullPointerException (PurchaseFragment.java:1049)

1. Install Dungeons example and get it up and running
2. Buy the sword. After pressing "buy" on the market screen press the back 
button. Now quickly press the buy button again to tricker the market screen 
again. Time it so that you press buy again before the purchase is completed. 
Result is below stacktrace. Also when later trying to buy the item the market 
says "You already have a pending order for this item.". Even though the order 
shows as completed and later is canceled in the merchant interface. Seems the 
item is dead for the device. Reboot of phone, clearing of data didn't work.

Stacktrace:

08-16 00:46:30.415: WARN/dalvikvm(446): threadid=1: thread exiting with 
uncaught exception (group=0x40015560)
08-16 00:46:30.415: ERROR/AndroidRuntime(446): FATAL EXCEPTION: main
08-16 00:46:30.415: ERROR/AndroidRuntime(446): java.lang.NullPointerException
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
com.google.android.finsky.activities.PurchaseFragment.onPurchase(PurchaseFragmen
t.java:1049)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
com.google.android.finsky.activities.PurchaseFragment.onStateChange(PurchaseFrag
ment.java:891)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
com.google.android.finsky.billing.CheckoutPurchase.attach(CheckoutPurchase.java:
338)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
com.google.android.finsky.activities.PurchaseFragment.onStart(PurchaseFragment.j
ava:557)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:833)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:996)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
android.support.v4.app.BackStackRecord.run(BackStackRecord.java:616)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.ja
va:1319)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:388)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
android.os.Handler.handleCallback(Handler.java:587)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
android.os.Handler.dispatchMessage(Handler.java:92)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
android.os.Looper.loop(Looper.java:130)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
android.app.ActivityThread.main(ActivityThread.java:3683)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
java.lang.reflect.Method.invokeNative(Native Method)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
java.lang.reflect.Method.invoke(Method.java:507)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-16 00:46:30.415: ERROR/AndroidRuntime(446):     at 
dalvik.system.NativeStart.main(Native Method)



Original issue reported on code.google.com by [email protected] on 16 Aug 2011 at 5:51

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:

Patch for /src/com/example/dungeons/PurchaseDatabase.java

mDb and mDatabaseHelper should be static to be reusable by all instances of 
PurchaseDatabase. Doing so will force all threads that create a 
PurchaseDatabase to reuse the same connection which will be internally 
serialized by the connection class. Without this change, each thread gets it's 
own independent connection requiring YOU to do the serialization which is not 
currently being done. The result is that multiple operations may find 
themselves failing due to the db being locked by another thread. See 
http://stackoverflow.com/questions/2493331/what-is-best-practice-with-sqlite-and
-android/2493839 

Original issue reported on code.google.com by [email protected] on 20 Jul 2011 at 12:48

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:

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

Not possible to test application with reserved items and test user id

STEPS TO REPRODUCE:
1. try to purchase android.test.purchased item
2. use test (not developers!) account on the device

EXPECTED OUTPUT:
IN_APP_NOTIFY / PURCHASE_STATE_CHANGED should be received

ACTUAL OUTPUT:
only RESPONSE_CODE is received

OS VERSION: 2.2

DEVICE: HTC Desire

OUTPUT FROM ADB BUGREPORT ATTACHED:
n/a

NOTES:

Original issue reported on code.google.com by [email protected] on 10 Jul 2011 at 2:24

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:

IAP inconsistently succeeds and fails on same device with same billing information

STEPS TO REPRODUCE:
Buying IAP sometimes results in a failure with authorization and the order 
being canceled, but this doesn't happen consistently - judging from our 
Merchant account page, we see people being able to successfully complete, then 
fail, then complete transactions, so it seems like inconsistent behavior from 
the Google side. We have been able to reproduce this by trying to purchase IAP 
multiple times in a row.

EXPECTED OUTPUT:
IAP should work consistently.

ACTUAL OUTPUT:
IAP inconsistently works/fails.

AFFECTED ORDER IDS (IF RELEVANT):
Here are some orders from our dev device:
102285479967956
848239623232633
918511557314140

OS VERSION:
2.3.4

MARKET/MYAPPS VERSION:
Market 2.3.6

DEVICE:
Nexus One

OUTPUT FROM ADB BUGREPORT ATTACHED:
(Note: The output from "adb bugreport" is required for all bug reports.)
Here's the relevant portions, full log attached:

08-15 11:12:06.810 D/vending (  486): [1] BaseBuyPageActivity.onPostResponse(): 
{PurchaseResult=OK, PurchaseInfo=PurchaseInfo=, SignupStatus=SIGNED_UP, 
TId=502944024177339, ShoppingCart=[ItemPrice=US$0.99, TaxInclusive=, 
TaxExclusive=, Total=US$0.99, HasTaxMessage=false, TaxMessage=null, 
HasFooterMessage=false, FooterMessage=null], RefundPolicy=<b>This in-app 
purchase cannot be refunded.</b> <br/> <a 
href="http://market.android.com/support/bin/answer.py?answer=1061913">More 
info</a>, Instruments=[[Id=503265315279948, Name=VISA xxx-6010 Invalid=false 
Type=CREDIT_CARD] [Id=215643372184396, Name=Unusable for this purchase: VISA 
xxx-6010 Invalid=true Type=CREDIT_CARD] ], 
DefaultBillingInstrument=503265315279948, ErrorFields=[]}
08-15 11:12:06.840 D/vending (  486): [1] 
BaseBuyPageActivity.shouldAddCarrierBilling(): isProvisioned(): false 
isSavedonServer(): false radio available? false
08-15 11:12:06.840 D/vending (  486): [1] 
BaseBuyPageActivity.shouldAddCarrierBilling(): isProvisioned(): false 
isSavedonServer(): false radio available? false
08-15 11:12:06.920 D/dalvikvm(  486): GC_CONCURRENT freed 1083K, 50% free 
3578K/7111K, external 2340K/2614K, paused 2ms+3ms
08-15 11:12:09.270 D/vending (  486): [1] 
BaseBuyPageActivity.onOrderResponse(): state: CART_PURCHASE response: 
[PurchaseResult=OK]
08-15 11:12:10.350 D/dalvikvm(  235): GC_EXPLICIT freed 277K, 49% free 
2943K/5703K, external 1625K/2137K, paused 58ms
08-15 11:12:15.370 D/dalvikvm(  276): GC_EXPLICIT freed 106K, 48% free 
2815K/5379K, external 1625K/2137K, paused 69ms
08-15 11:12:16.720 D/NOTIFY_RECEIVED(  598): notification_id: 
-7957749141837872323  request_id: 1337
08-15 11:12:16.720 D/iapReceive(  598): Notify, notificationId 
-7957749141837872323
08-15 11:12:16.720 D/iapSend (  598): sending GET_PURCHASE_INFORMATION with 
notificationId -7957749141837872323
08-15 11:12:16.730 D/iapSend (  598): Google returned request ID 
345880552362868989 and response code 0
08-15 11:12:16.730 W/ActivityManager(   96): Duplicate finish request for 
HistoryRecord{40793f90 com.android.vending/.billing.InAppBuyPageActivity}
08-15 11:12:16.900 D/dalvikvm(  598): GC_EXTERNAL_ALLOC freed 74K, 47% free 
3836K/7175K, external 3983K/3991K, paused 51ms
08-15 11:12:16.970 D/RESPONSE_CODE_RECEIVED(  598): request_id: 
5548734436255711559 response_code: 0
08-15 11:12:16.970 D/iapReceive(  598): Async response code, requestId 
5548734436255711559, responseCodeIndex 0
08-15 11:12:17.060 D/dalvikvm(  598): GC_EXTERNAL_ALLOC freed 256K, 50% free 
3600K/7175K, external 4526K/4863K, paused 39ms
08-15 11:12:17.150 D/dalvikvm(  598): GC_EXTERNAL_ALLOC freed 21K, 50% free 
3604K/7175K, external 4383K/4688K, paused 35ms
08-15 11:12:17.250 D/dalvikvm(  598): GC_EXTERNAL_ALLOC freed 16K, 50% free 
3595K/7175K, external 4171K/4208K, paused 35ms
08-15 11:12:17.330 D/dalvikvm(  598): GC_EXTERNAL_ALLOC freed 8K, 50% free 
3597K/7175K, external 3434K/3569K, paused 38ms
08-15 11:12:17.380 D/dalvikvm(  598): GC_EXTERNAL_ALLOC freed 5K, 50% free 
3593K/7175K, external 3018K/3604K, paused 35ms
08-15 11:12:17.700 D/dalvikvm(  598): GC_EXTERNAL_ALLOC freed 1K, 50% free 
3592K/7175K, external 6826K/6826K, paused 41ms
08-15 11:12:17.820 D/dalvikvm(  598): GC_EXTERNAL_ALLOC freed 6K, 50% free 
3597K/7175K, external 3471K/3489K, paused 38ms
08-15 11:12:17.920 D/dalvikvm(  598): GC_EXTERNAL_ALLOC freed 17K, 50% free 
3604K/7175K, external 3469K/3489K, paused 39ms
08-15 11:12:18.100 I/Gmail   (  347): MainSyncRequestProto: lowestBkwdConvoId: 
0, highestHandledServerOp: 1546501, normalSync: true
08-15 11:12:18.220 D/iapReceive(  598): inapp_signed_data is 
{"nonce":4801471918443175875,"orders":[{"notificationId":"-7957749141837872323",
"orderId":"848239623232633","packageName":"com.pocketgems.android.tapzoo","produ
ctId":"iap_10_gold","purchaseTime":1313439169000,"purchaseState":1}]}
08-15 11:12:18.320 D/dalvikvm(  598): GC_EXTERNAL_ALLOC freed 31K, 50% free 
3615K/7175K, external 3218K/3449K, paused 42ms
08-15 11:12:18.370 D/iapSend (  598): Google returned request ID 
2362716971852338379 and response code 0
08-15 11:12:18.370 D/iapSend (  598): sending confirmation with notificationId 
-7957749141837872323 with responseCode: 0
08-15 11:12:18.420 D/RESPONSE_CODE_RECEIVED(  598): request_id: 
345880552362868989 response_code: 0
08-15 11:12:18.420 D/iapReceive(  598): Async response code, requestId 
345880552362868989, responseCodeIndex 0
08-15 11:12:18.560 D/vending (  486): [16] 
VendingNotificationManager.showNotification(): Showing notification: 
[AssetID=Vial of Stars, NotificationID=-1546432422, Title=Vial of Stars, 
Message=Purchase failed.]
08-15 11:12:19.370 D/dalvikvm(  347): GC_CONCURRENT freed 481K, 53% free 
3202K/6727K, external 1625K/2137K, paused 2ms+5ms
08-15 11:12:19.710 D/RESPONSE_CODE_RECEIVED(  598): request_id: 
2362716971852338379 response_code: 0

NOTES:

Original issue reported on code.google.com by [email protected] on 15 Aug 2011 at 8:27

Attachments:

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

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

In App Billing sample app returns "Request Purchase returned RESULT_ITEM_UNAVAILABLE"

I have uploaded the android project used to reproduce this issue. My primary 
account on the phone (and market test account) is jagtian dot siddharth at 
gmail dot com. And my market account is mcondev at gmail dot come.

I have created a product "sword_001" managed on the sample app unpublished 
upload.

EXPECTED OUTPUT: Should have been able to shop.

ACTUAL OUTPUT: getting Result Item Unavailable

AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION: 2.1

MARKET/MYAPPS VERSION: 2.3.6 on the phone, upgraded automatically after I 
connect my phone to jagtiani dot siddharth at gmail dot com.

DEVICE: HTC 

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

NOTES:

Original issue reported on code.google.com by [email protected] on 18 Jun 2011 at 6:17

Attachments:

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

Error message "You already have a pending order for this item" with Market V 3.0.27

STEPS TO REPRODUCE:
1. Purchase an In-App item, and receive the message back "Order cancelled -- 
Google cancelled this order. Reason: Took too long to deliver"
2. Try to order item again. Market app displays error "You already have a  
pending order for this item"


EXPECTED OUTPUT:
Ability to order item again after Google cancelled order.

ACTUAL OUTPUT:
"You already have a  pending order for this item", even though order is 
cancelled.

AFFECTED ORDER IDS (IF RELEVANT):
411886211332573, 411886211332573
OS VERSION:
2.3.4

MARKET/MYAPPS VERSION:
3.0.27

DEVICE:
Samsung Galaxy Tab 7"

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

NOTES:
Uninstall updates for Market app back to version 2.3.6 doesn't get error 
anymore.

Original issue reported on code.google.com by [email protected] on 5 Aug 2011 at 8:27

Service object leak in BillingService

The inner classes in BillingService: BillingRequest and its subclasses are not 
static, and as such, keep a reference (hidden, generated by the compiler) to 
the containing class instance, which is BillingService.

At the same time, they are entered into a static array, mPendingRequests.

If the service is stopped and restarted, any exising request objects will keep 
their references to the original service instance, and refer to that (dead) 
instance when calling methods of BillingService. At the same time, the original 
service instances will be prevented from being GC'd.

Original issue reported on code.google.com by [email protected] on 18 Aug 2011 at 10:13

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

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

Purchases canceled automatically from Google when trying to make purchases

From this Monday when I try to do a purchase for an item from our application 
the items are canceled automatically after 1-2 minutes after the purchase. 
I get the response code RESULT_OK to the REQUEST_PURCHASE of the item, but the 
notification IN_APP_NOTIFY does not come anymore , even though I get an email 
with the order receipt from Android Market. After 1-2 minutes I get a 
PURCHASE_STATE_CHANGED notification saying that the purchase was canceled and 
an email that looks like below :

"Your order has been cancelled and you have not been charged. 

Reason: Other (describe below) 

Comments: We could not complete your order in a timely fashion. Please verify 
your payment information in Google Checkout and try again later. "

Until last Monday everything was working perfectly. I could make purchases and 
refunds, and all notifications were coming in time after you fixed 
http://code.google.com/p/marketbilling/issues/detail?id=32.
I've checked the credit card that is used for the purchases and everything 
seems fine.

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

Purchase state change notification never stops

STEPS TO REPRODUCE:
1. Simply buy an Unmanaged product from Market Billing Activity and complete 
purchase as normal

DESCRIPTION: I am verifying the purchase by using a web server and doing the 
verification there. The problem is that the purchase state change notifications 
never stops, no matter the result of the transaction. That is, I receive 
purchase state change notifications every minute and my history log is 
inserting same data multiple times in database. However nonceId is different in 
all cases. Currently this system is live and we have added a check for 
Notification Id to prevent duplicate inserts. 

Data from Android Market if this helps
Notification Id: 5208408212518637552
NonceId: -6490045795011800000
.....

Notification Id: 5208408212518637552
NonceId: 1559277072484564427
.....

Application purchase was successful. I would also like to add that application 
is deployed for all countries (primary USA) and purchase was made in India. Not 
sure if that is triggering multiple notification. Purchases made in USA works 
fine. 

EXPECTED OUTPUT: Purchase is completed successfully. Application unlocks with 
single purchase notification

ACTUAL OUTPUT:

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 22 Sep 2011 at 4:56

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.