【问题标题】:In app billing(purchase) linking app with items在应用程序计费(购买)链接应用程序与项目
【发布时间】:2015-01-20 15:23:41
【问题描述】:

我正在尝试在我的应用中实现应用购买/计费,因此当用户购买商品时,我会删除广告。我有和使用SKU = "android.test.purchased" 的示例代码。现在我的问题是如何将应用程序链接到我的项目 - 我已经上传了启用计费的新 apk,一小时前创建并发布了该项目,但是当我尝试购买该项目时,我得到了这个:

这是我的代码:

public class RemoveAds extends AthanBaseActivity implements OnClickListener {

    private static final String TAG = "inappbilling";
    IabHelper mHelper;
    //ID from playstore 16xxxx15_removeads.
//android.test.purchased
    static final String ITEM_SKU = "com.myapppackage.16xxxx15_removeads.";

    @Override
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.remove_ads);

        findViewById( R.id.remove_ads_).setOnClickListener(this);

        setupInAppPurchase();

    }

    public void consumeItem() {
        mHelper.queryInventoryAsync(mReceivedInventoryListener);
    }

    IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
        public void onQueryInventoryFinished(IabResult result,
                Inventory inventory) {

            if (result.isFailure()) {
                // Handle failure
            } else {
                mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU),
                        mConsumeFinishedListener);
            }
        }
    };

    @Override
    public void onDestroy() {
        super.onDestroy();
        if (mHelper != null)
            mHelper.dispose();
        mHelper = null;
    }

    IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {
        public void onConsumeFinished(Purchase purchase, IabResult result) {

            if (result.isSuccess()) {
                Toast.makeText(RemoveAds.this, "SUCCESS", Toast.LENGTH_LONG)
                        .show();
            } else {
                Toast.makeText(RemoveAds.this, "ERROR purchase",
                        Toast.LENGTH_LONG).show();
                // handle error
            }
        }
    };

    IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
        public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
            if (result.isFailure()) {
                // Handle error
                return;
            } else if (purchase.getSku().equals(ITEM_SKU)) {
                consumeItem();
                // buyButton.setEnabled(false);
            }

        }
    };

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
            super.onActivityResult(requestCode, resultCode, data);
        }
    }

    private void setupInAppPurchase() {
        String base64EncodedPublicKey = "MIIBIjANBgkqhkcccxxxxxdomr somelongstringdfsdfsdfsfsdofksdofkdsMXz0R4EJuw7YZkQ8jMPemymSbQGtLllH+fu85hfQIDAQAB";

        mHelper = new IabHelper(this, base64EncodedPublicKey);

        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
            public void onIabSetupFinished(IabResult result) {
                if (!result.isSuccess()) {
                    Log.d(TAG, "In-app Billing setup failed: " + result);
                } else {
                    Log.d(TAG, "In-app Billing is set up OK");
                }
            }
        });

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.remove_ads_:
            mHelper.launchPurchaseFlow(this, ITEM_SKU, 10001,
                    mPurchaseFinishedListener, "mypurchasetoken");
            break;
        }

    }

}

【问题讨论】:

  • 上传后可能需要两个小时才能购买

标签: java android in-app-purchase google-play in-app-billing


【解决方案1】:

如果您的真实安卓设备上的主帐号与您的开发者帐号相同,您将无法进行购买。

【讨论】:

    猜你喜欢
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    相关资源
    最近更新 更多