Skip to content
This repository has been archived by the owner on Apr 28, 2022. It is now read-only.

Appland, AppMall Aptoide, SlideME, Yandex.Store

akarimova edited this page Nov 6, 2014 · 8 revisions

It is a general instruction how to support the Open Stores. For more specific information, please visit the corresponding store page.

  1. Add the billing permission

    <uses-permission android:name="org.onepf.openiab.permission.BILLING" />
  2. Provide your public keys for required stores

    OpenIabHelper.Options.Builder builder = new OpenIabHelper.Options.Builder();
    builder.addStoreKey(OpenIABHelper.NAME_APPMALL, appmallPublicKey)
    builder.addStoreKey(OpenIABHelper.NAME_APPLAND, applandPublicKey);
    builder.addStoreKey(OpenIABHelper.NAME_APTOIDE, aptoidePublicKey);
    builder.addStoreKey(OpenIABHelper.NAME_SLIDEME, slidemePublicKey);
    builder.addStoreKey(OpenIABHelper.NAME_YANDEX, yandexPublicKey);
    mHelper = new OpenIabHelper(this, builder.build());

    otherwise verify purchases on your server side.

  3. Map the SKUs if they are different for the required stores

    OpenIabHelper.mapSku(SKU_PREMIUM, OpenIabHelper.STORE_NAME, "org.onepf.trivialdrive.storename.premium");
    OpenIabHelper.mapSku(SKU_GAS, OpenIabHelper.STORE_NAME, "org.onepf.trivialdrive.storename.gas");
    OpenIabHelper.mapSku(SKU_INFINITE_GAS, OpenIabHelper.STORE_NAME, "org.onepf.trivialdrive.storename.infinite_gas");
  4. To test .apk, please ensure

    • your .apk is submitted to the Developer Console
    • your .apk is signed by the production key
    • versionCode in AndroidManifest.xml of your .apk is equal to versionCode of .apk submitted to the Developer Console

Receipt Verification on Server

  1. Create OpenIabHelper with "Skip signature verification" option and no publicKeys. If you specify no publicKeys and forget VERIFY_SKIP option, an IllegalArgumentException will be thrown

    OpenIabHelper.Options.Builder builder = new OpenIabHelper.Options.Builder();
    builder.setVerifyMode(OpenIabHelper.Options.VERIFY_SKIP);
    mHelper = new OpenIabHelper(context, builder.build());
  2. Get receipt data and signature from Purchase object and send it to your server

    new IabHelper.OnIabPurchaseFinishedListener() {
        public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
            // … different result checks ...
            String receiptData = purchase.getOriginalJson();
            String receiptSignature = purchase.getSignature();
            String storeName = purchase.getAppstoreName();
            String urlToContent  = yourRequestReceiptVerificationOnServer(receiptData, receiptSignature, storeName);
            // … further code ...
        }
    }

    or use store-specific methods.

Clone this wiki locally