Appreciate your help !!

-John

On Friday, July 6, 2012 8:15:56 PM UTC-7, fibercode wrote:
>
> This is a bug in the sample Dungeons application in the onClick method for 
> the purchase button.
>
> I posted a solution here:
> http://stackoverflow.com/a/11371927/625030
>
> The supplied method has a bug in the if {} else if {} statement where it 
> causes the mBillingService.requestPurchase to be called twice, when the 
> selected item is not a subscription item (mManagedType != 
> Managed.SUBSCRIPTION). So the same item will be requested twice, once with 
> an item type of "inapp" (which is the valid request) and immediately after 
> that with an item type of "subs" (which is incorrect and it shows "item not 
> found").
>
> Here is the buggy code:
>
> if (mManagedType != Managed.SUBSCRIPTION &&
>                     !mBillingService.requestPurchase(mSku, 
> Consts.ITEM_TYPE_INAPP, mPayloadContents)) {
>                 showDialog(DIALOG_BILLING_NOT_SUPPORTED_ID);
>             } else if (!mBillingService.requestPurchase(mSku, 
> Consts.ITEM_TYPE_SUBSCRIPTION, mPayloadContents)) {
>                 // Note: mManagedType == Managed.SUBSCRIPTION
>                 showDialog(DIALOG_SUBSCRIPTIONS_NOT_SUPPORTED_ID);
>             }
>
> To fix this, add mManagedType == Managed.SUBSCRIPTION to the else if above.
>
> Here is how the function should look:
>
> @Override
>     public void onClick(View v) {
>         if (v == mBuyButton) {
>             if (Consts.DEBUG) {
>                 Log.d(TAG, "buying: " + mItemName + " sku: " + mSku);
>             }
>
>             if (mManagedType != Managed.SUBSCRIPTION &&
>                     !mBillingService.requestPurchase(mSku, 
> Consts.ITEM_TYPE_INAPP, mPayloadContents)) {
>                 showDialog(DIALOG_BILLING_NOT_SUPPORTED_ID);
>             } else if (mManagedType == Managed.SUBSCRIPTION && 
> !mBillingService.requestPurchase(mSku, Consts.ITEM_TYPE_SUBSCRIPTION, 
> mPayloadContents)) {
>                 // Note: mManagedType == Managed.SUBSCRIPTION
>                 showDialog(DIALOG_SUBSCRIPTIONS_NOT_SUPPORTED_ID);
>             }
>         } else if (v == mEditPayloadButton) {
>             showPayloadEditDialog();
>         } else if (v == mEditSubscriptionsButton) {
>             editSubscriptions();
>         }
>     }
>
>
> On Saturday, 16 June 2012 00:23:02 UTC-4, John wrote:
>>
>> Have In App Billing V2 incorporated into my code and be able to buy 
>> one-time purchase item and yearly subscription item. But when 
>> purchasing one-time purchase item, always get the message "Item not found". 
>> Is this a Google bug? Any help? Thanks in advance.
>>
>> -John
>>
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to