Я пытаюсь интегрировать Stripe с Firebase и Android для осуществления платежей. После поиска по inte rnet вот как я пытаюсь отправить токен на сервер:
if (cardForm.isValid()) {
String cardNumber = cardForm.getCardNumber();
String cvv = cardForm.getCvv();
Integer month = new Integer(Integer.parseInt(cardForm.getExpirationMonth()));
Integer year = new Integer(Integer.parseInt( cardForm.getExpirationYear()));
Card card = Card.create(cardNumber , month, year, cvv);
stripe.createCardToken(card, new ApiResultCallback<Token>() {
@Override
public void onSuccess(Token token) {
DocumentReference tokenRef;
tokenRef = db.collection("stripe_customers").document(firebaseAuth.getCurrentUser().getUid()).collection("tokens").document();
tokenRef.set(token).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(getApplicationContext(), "Token successfully added to database", Toast.LENGTH_LONG).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(getApplicationContext(), e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
}
});
К сожалению , когда я пытаюсь установить данные токена в хранилище, возникает следующая ошибка:
java .lang.IllegalArgumentException: не удалось сериализовать объект. Сериализация коллекций не поддерживается, используйте вместо этого списки (находятся в поле 'card.loggingTokens $ stripe_release')
Что я могу сделать, чтобы это исправить?