Add google play billing token conversion endpoint and job.

This commit is contained in:
Alex Hart
2024-09-20 09:55:08 -03:00
committed by Greyson Parrelli
parent d23ef647d8
commit 12e25b0f40
17 changed files with 366 additions and 38 deletions

View File

@@ -46,7 +46,7 @@ import org.thoughtcrime.securesms.util.Util
import org.whispersystems.signalservice.api.subscriptions.ActiveSubscription
import org.whispersystems.signalservice.api.subscriptions.SubscriberId
import org.whispersystems.signalservice.internal.push.DonationProcessor
import org.whispersystems.signalservice.internal.push.exceptions.DonationProcessorError
import org.whispersystems.signalservice.internal.push.exceptions.InAppPaymentProcessorError
import java.security.SecureRandom
import java.util.Currency
import java.util.Optional
@@ -95,7 +95,7 @@ object InAppPaymentsRepository {
val donationError: DonationError = when (error) {
is DonationError -> error
is DonationProcessorError -> error.toDonationError(donationErrorSource, paymentSourceType)
is InAppPaymentProcessorError -> error.toDonationError(donationErrorSource, paymentSourceType)
else -> DonationError.genericBadgeRedemptionFailure(donationErrorSource)
}

View File

@@ -37,7 +37,7 @@ import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.recipients.RecipientId
import org.thoughtcrime.securesms.util.rx.RxStore
import org.whispersystems.signalservice.api.util.Preconditions
import org.whispersystems.signalservice.internal.push.exceptions.DonationProcessorError
import org.whispersystems.signalservice.internal.push.exceptions.InAppPaymentProcessorError
class StripePaymentInProgressViewModel(
private val stripeRepository: StripeRepository,
@@ -175,7 +175,7 @@ class StripePaymentInProgressViewModel(
.onErrorResumeNext {
when (it) {
is DonationError -> Completable.error(it)
is DonationProcessorError -> Completable.error(it.toDonationError(DonationErrorSource.MONTHLY, paymentSourceProvider.paymentSourceType))
is InAppPaymentProcessorError -> Completable.error(it.toDonationError(DonationErrorSource.MONTHLY, paymentSourceProvider.paymentSourceType))
else -> Completable.error(DonationError.getPaymentSetupError(DonationErrorSource.MONTHLY, it, paymentSourceProvider.paymentSourceType))
}
}

View File

@@ -9,9 +9,9 @@ import org.signal.donations.PaymentSourceType
import org.signal.donations.StripeDeclineCode
import org.signal.donations.StripeFailureCode
import org.whispersystems.signalservice.api.subscriptions.ActiveSubscription
import org.whispersystems.signalservice.internal.push.exceptions.DonationProcessorError
import org.whispersystems.signalservice.internal.push.exceptions.InAppPaymentProcessorError
fun DonationProcessorError.toDonationError(
fun InAppPaymentProcessorError.toDonationError(
source: DonationErrorSource,
method: PaymentSourceType
): DonationError {
@@ -44,5 +44,9 @@ fun DonationProcessorError.toDonationError(
}
}
}
ActiveSubscription.Processor.GOOGLE_PLAY_BILLING -> {
check(method is PaymentSourceType.GooglePlayBilling)
DonationError.PaymentSetupError.GenericError(source, this)
}
}
}