https://github.com/serso/android-checkout lib から com.android.billingclient.api への移行に取り組んでいます。Checkout API を使用すると、開発ペイロードをパラメーターとして提供することで購入フローを開始できました。以下のように
/**
* @see #startPurchaseFlow(String, String, String, RequestListener)
*/
public void startPurchaseFlow(Sku sku, @Nullable String payload, RequestListener<Purchase> listener) {
startPurchaseFlow(sku, payload, null, listener);
}
後で、購入履歴を取得しながら、同じ開発者ペイロードを取得できます。
com.android.billingclient.api を使用して、開発者のペイロードを提供できることがわかりました。コードを見ると、com.android.billingclient.api クラスの BillingClientImpl で、ペイロードが単に null 値として提供されていることがわかります。
futureBuyIntentBundle =
executeAsync(
new Callable<Bundle>() {
@Override
public Bundle call() throws Exception {
return mService.getBuyIntent(
/* apiVersion */ 3,
mApplicationContext.getPackageName(),
newSku,
skuType,
/* developerPayload */ null);
}
});
バグなのか、それとも開発者のペイロードを購入記録に保存する別の方法があるのか 疑問に思っています。