. Wdrażam subskrypcję za pomocą interfejsu API rozliczeń w wersji 3. Po dialogowe płatność została zamknięta (płatność udało), sterowanie jest zwracane z powrotem do mojej działalnościW interfejsie API rozliczania aplikacji v3 INAPP_PURCHASE_DATA ma wartość null w pakiecie, gdy parametr onActivityResult nazywa się
wywołanie metody
String payload = UUID.randomUUID().toString();
bundle = mService.getBuyIntent(3, getPackageName(), mProduct, "subs", payload);
int responseCode = bundle.getInt("RESPONSE_CODE");
if (responseCode == 0) {
PendingIntent pendingIntent = bundle.getParcelable("BUY_INTENT");
startIntentSenderForResult(pendingIntent.getIntentSender(), 1001, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
} else if (responseCode == 1) {
mErrorMessage.setText(getResources().getString(R.string.purchase_cancelled));
mErrorMessage.setVisibility(View.VISIBLE);
} else if (responseCode == 7) {
mErrorMessage.setText(getResources().getString(R.string.payment_twice));
mErrorMessage.setVisibility(View.VISIBLE);
} else {
mErrorMessage.setText(getResources().getString(R.string.payment_general_error));
mErrorMessage.setVisibility(View.VISIBLE);
}
Moja aktywność
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
// Null
String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA"
}
}
Problem polega na tym, że ciąg purchaseData jest null. Może to być spowodowane tym, że już kupiłem tę subskrypcję (milion razy podczas testowania) - i że powinienem był najpierw sprawdzić w getPurchases().
Czy wiadomo, że zakupy "przechodzą - najwyraźniej z sukcesem", jeśli użytkownik próbuje zapłacić, gdy ma 1) aktualnego abonenta, lub 2) w okresie po anulowaniu, ale przed wygaśnięciem usługi?
opublikować metodę wywołania –
Wysłałem metodę wywoływania również –
miałem ten sam problem z android.test.purchased .... spróbuj zaimplementować prawdziwy produkt i przetestuj za pomocą piaskownicy .... myślę, że z Androidem. test.purchased zawsze otrzymujesz wartość null .. –