Fix bad one-time-payment receipt creation for cancelled iDEAL.

This commit is contained in:
Alex Hart
2024-12-10 11:34:17 -04:00
committed by Greyson Parrelli
parent fa72a1788b
commit 3eea331e83
9 changed files with 245 additions and 11 deletions

View File

@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.database
import android.content.Context
import android.database.Cursor
import androidx.annotation.VisibleForTesting
import androidx.core.content.contentValuesOf
import org.signal.core.util.CursorUtil
import org.signal.core.util.SqlUtil
@@ -12,7 +13,8 @@ import java.util.Currency
class DonationReceiptTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTable(context, databaseHelper) {
companion object {
private const val TABLE_NAME = "donation_receipt"
@VisibleForTesting
const val TABLE_NAME = "donation_receipt"
private const val ID = "_id"
private const val TYPE = "receipt_type"

View File

@@ -5,6 +5,7 @@
package org.thoughtcrime.securesms.jobs
import androidx.annotation.VisibleForTesting
import io.reactivex.rxjava3.core.Single
import org.signal.core.util.logging.Log
import org.signal.core.util.money.FiatMoney
@@ -40,7 +41,8 @@ import kotlin.time.Duration.Companion.days
*/
class InAppPaymentAuthCheckJob private constructor(parameters: Parameters) : BaseJob(parameters), StripeApi.PaymentIntentFetcher, StripeApi.SetupIntentHelper {
private constructor() : this(
@VisibleForTesting
constructor() : this(
Parameters.Builder()
.addConstraint(NetworkConstraint.KEY)
.setMaxAttempts(Parameters.UNLIMITED)
@@ -138,7 +140,10 @@ class InAppPaymentAuthCheckJob private constructor(parameters: Parameters) : Bas
)
)
checkIntentStatus(stripeIntentData.status)
val checkIntentStatusResult = checkIntentStatus(stripeIntentData.status)
if (checkIntentStatusResult !is CheckResult.Success) {
return checkIntentStatusResult
}
Log.i(TAG, "Creating and inserting receipt.", true)
val receipt = when (inAppPayment.type) {

View File

@@ -29,6 +29,7 @@ object Environment {
@JvmStatic
@get:JvmName("getStripeConfiguration")
val STRIPE_CONFIGURATION = StripeApi.Configuration(
baseUrl = BuildConfig.STRIPE_BASE_URL,
publishableKey = BuildConfig.STRIPE_PUBLISHABLE_KEY
)
}