a-najar / marketbilling Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/marketbilling
Automatically exported from code.google.com/p/marketbilling
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:
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
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
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
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
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
In BillingService, line 371, the the intent is null then the service stops
(why?) and returns, but there is no return value.
Code doesn't compile!
Original issue reported on code.google.com by [email protected]
on 27 Aug 2011 at 5:22
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
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:
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
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
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
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:
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:
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
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
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
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
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
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:
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
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
Attachments:
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
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
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
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
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 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
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:
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
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
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
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:
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:
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:
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
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
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
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:
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:
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
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
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:
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
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
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
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
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
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
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.