Как использовать getPurchases () - Android - PullRequest
0 голосов
/ 08 февраля 2019

Я успешно внедрил In-App-Billing в свое приложение.IAP работает успешно, и я проверил его, чтобы убедиться, что он работает.

Когда пользователь нажимает кнопку, он должен сделать IAP, чтобы продолжить.Однако каждый раз, когда пользователь нажимает кнопку, он запускает IAP, даже если он уже создал IAP.Я хочу, чтобы моя IAP была непотребляемой, очевидно.В настоящее время я храню IAP в SharedPreferences, но если пользователь переустанавливает приложение, он теряет IAP.

Итак, как я могу использовать getPurchases() или restoreTransactions() в моем методе onCreate или onClick, чтобы проверить, приобрел ли пользователь конкретный товар?Я искал во всем Интернете и прочитал так много примеров, и это, кажется, не работает, возможно, я неправильно понимаю.

Если вам нужно, чтобы я опубликовал какой-либо код, пожалуйста, спросите, и я обновлю свой пост.

1 Ответ

0 голосов
/ 08 февраля 2019

Использовать эту библиотеку:

https://github.com/anjlab/android-inapp-billing-v3

Как использовать?

Используйте это в своем Gradle:

repositories {
  mavenCentral()
}
dependencies {
  implementation 'com.anjlab.android.iab.v3:library:1.0.44'
}

Разрешение на манифест для биллинга в приложении:

<uses-permission android:name="com.android.vending.BILLING" />

Как использовать библиотечный метод:

public class SomeActivity extends Activity implements BillingProcessor.IBillingHandler {
  BillingProcessor bp;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    bp = new BillingProcessor(this, "YOUR LICENSE KEY FROM GOOGLE PLAY CONSOLE HERE", this);
    bp.initialize();
    // or bp = BillingProcessor.newBillingProcessor(this, "YOUR LICENSE KEY FROM GOOGLE PLAY CONSOLE HERE", this);
    // See below on why this is a useful alternative
  }

  // IBillingHandler implementation

  @Override
  public void onBillingInitialized() {
    /*
    * Called when BillingProcessor was initialized and it's ready to purchase 
    */
  }

  @Override
  public void onProductPurchased(String productId, TransactionDetails details) {
    /*
    * Called when requested PRODUCT ID was successfully purchased
    */
  }

  @Override
  public void onBillingError(int errorCode, Throwable error) {
    /*
    * Called when some error occurred. See Constants class for more details
    * 
    * Note - this includes handling the case where the user canceled the buy dialog:
    * errorCode = Constants.BILLING_RESPONSE_RESULT_USER_CANCELED
    */
  }

  @Override
  public void onPurchaseHistoryRestored() {
    /*
    * Called when purchase history was restored and the list of all owned PRODUCT ID's 
    * was loaded from Google Play
    */
  }
}

Примечание: onPurchaseHistoryRestored вызывается только в первый раз, когда вы инициализируете BillingProcessor

...