Sto implementando la fatturazione dell'abbonamento utilizzando l'API di fatturazione Versione 3. Dopo la finestra di pagamento è chiuso (il pagamento è riuscito), il controllo è restituito di nuovo alla mia attivitàNell'API di fatturazione della app v3 INAPP_PURCHASE_DATA è nullo in bundle quando onActivityResult viene chiamato
chiamata metodo
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);
}
mia attività
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
// Null
String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA"
}
}
Il problema è che la stringa purchaseData è nullo. Ciò potrebbe essere dovuto al fatto che ho già acquistato questo abbonamento (un milione di volte durante il test) e che avrei dovuto verificare prima con getPurchases().
È noto per gli acquisti di "passare attraverso - apparentemente con successo", se l'utente tenta di pagare quando lui o lei è 1) un abbonato corrente, o 2) nel periodo dopo la cancellazione ma prima che il servizio scada?
post il metodo di chiamata –
Ho pubblicato anche il metodo di chiamata –
ho avuto lo stesso problema con android.test.purchased .... provare ad implementare il prodotto reale e test utilizzando sandbox .... penso con Android. test.purchased si ottiene sempre null .. –