RxJava bindings for Google Play Billing
Your top-level build.gradle
:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
In module-level build.gradle
:
dependencies {
implementation 'com.github.mu29:rx-billing:0.5'
}
RxBilling billingClient;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
billingClient = new RxBilling().set(this);
}
...or you can inject with dagger
@Provides
@PerApplication
public RxBilling provideRxBilling() {
return new RxBilling()
}
@Inject
RxBilling billingClient;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
billingClient.set(this);
}
billingClient
.purchase("product.test.1", null, BillingClient.SkuType.INAPP)
.subscribe(purchases -> Log.d("IAP", purchases.get(0).getOrderId()));
billingClient
.queryPurchases()
.subscribe(purchases -> {
for (Purchase purchase : purchases) {
Log.d("IAP", purchase.getOrderId());
}
});
List<String> ids = new ArrayList<>();
ids.add("test.product.1");
billingClient
.getSkuDetails(ids)
.subscribe(details -> {
for (SkuDetails detail: details) {
Log.d("IAP", detail.getPrice());
}
});
billingClient
.consume("purchaseToken")
.subscribe(token -> Log.d("IAP", token));
InJung Chung / @mu29