我正在从Google Play Billing版本4.0.0升级到版本5.1.0。在版本4SkuDetails
有函数getOriginalJson()
,它包含一个json对象,我发送到我的后端。我深入研究了API,但在5.1.0版本中找不到一个正式的等效API。
有两个地方,我可以看到这个信息可能在com.android.billingclient.api.ProductDetails
中可用-一个内部的JSONObject
成员,我们不应该访问,作为toString()
函数的一部分,这个信息被附加到parsedJson
。我可能可以从toString()
中提取我需要的东西,但我想知道是否有更好的/官方的东西。
可以在Purchase
类中访问。
Purchase.getOriginalJson();
可访问的位置:
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(BillingResult billingResult) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
QueryPurchasesParams queryPurchasesParams = QueryPurchasesParams.newBuilder().setProductType(BillingClient.ProductType.INAPP).build();
billingClient.queryPurchasesAsync(queryPurchasesParams, (billingResult1, list) -> runOnUiThread(() -> {
for (Purchase purchase: list) {
Log.d("originalJson", purchase.getOriginalJson());
}
}));
}
}
@Override
public void onBillingServiceDisconnected() { }
});
:
@Override
public void onPurchasesUpdated(@NonNull BillingResult billingResult, @Nullable List<Purchase> purchases) {
runOnUiThread(() -> {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && purchases != null) {
for (Purchase purchase: purchases) {
Log.d("originalJson", purchase.getOriginalJson());
}
}
}
}
好运。