mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 04:58:45 +00:00
Use paymentId from create PayPal intent instead of confirm.
This commit is contained in:
committed by
Nicholas Tinsley
parent
fa937f9f43
commit
e798feb1d7
@@ -7,19 +7,18 @@ import kotlinx.parcelize.Parcelize
|
||||
@Parcelize
|
||||
data class PayPalConfirmationResult(
|
||||
val payerId: String,
|
||||
val paymentId: String,
|
||||
val paymentId: String?,
|
||||
val paymentToken: String
|
||||
) : Parcelable {
|
||||
companion object {
|
||||
private const val KEY_PAYER_ID = "PayerID"
|
||||
private const val KEY_PAYMENT_ID = "paymentId"
|
||||
private const val KEY_PAYMENT_TOKEN = "token"
|
||||
|
||||
fun fromUrl(url: String): PayPalConfirmationResult? {
|
||||
val uri = Uri.parse(url)
|
||||
return PayPalConfirmationResult(
|
||||
payerId = uri.getQueryParameter(KEY_PAYER_ID) ?: return null,
|
||||
paymentId = uri.getQueryParameter(KEY_PAYMENT_ID) ?: return null,
|
||||
paymentId = null,
|
||||
paymentToken = uri.getQueryParameter(KEY_PAYMENT_TOKEN) ?: return null
|
||||
)
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ class PayPalPaymentInProgressFragment : DialogFragment(R.layout.donation_in_prog
|
||||
val listener = FragmentResultListener { _, bundle ->
|
||||
val result: PayPalConfirmationResult? = bundle.getParcelableCompat(PayPalConfirmationDialogFragment.REQUEST_KEY, PayPalConfirmationResult::class.java)
|
||||
if (result != null) {
|
||||
emitter.onSuccess(result)
|
||||
emitter.onSuccess(result.copy(paymentId = createPaymentIntentResponse.paymentId))
|
||||
} else {
|
||||
emitter.onError(DonationError.UserCancelledPaymentError(args.request.donateToSignalType.toErrorSource()))
|
||||
}
|
||||
|
||||
@@ -15,11 +15,10 @@ class PayPalConfirmationResultTest {
|
||||
|
||||
companion object {
|
||||
private val PAYER_ID = "asdf"
|
||||
private val PAYMENT_ID = "sdfg"
|
||||
private val PAYMENT_TOKEN = "dfgh"
|
||||
|
||||
private val TEST_URL = "${PayPalRepository.ONE_TIME_RETURN_URL}?PayerID=$PAYER_ID&paymentId=$PAYMENT_ID&token=$PAYMENT_TOKEN"
|
||||
private val TEST_MISSING_PARAM_URL = "${PayPalRepository.ONE_TIME_RETURN_URL}?paymentId=$PAYMENT_ID&token=$PAYMENT_TOKEN"
|
||||
private val TEST_URL = "${PayPalRepository.ONE_TIME_RETURN_URL}?PayerID=$PAYER_ID&token=$PAYMENT_TOKEN"
|
||||
private val TEST_MISSING_PARAM_URL = "${PayPalRepository.ONE_TIME_RETURN_URL}?token=$PAYMENT_TOKEN"
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -27,7 +26,7 @@ class PayPalConfirmationResultTest {
|
||||
val result = PayPalConfirmationResult.fromUrl(TEST_URL)
|
||||
|
||||
assertEquals(
|
||||
PayPalConfirmationResult(PAYER_ID, PAYMENT_ID, PAYMENT_TOKEN),
|
||||
PayPalConfirmationResult(PAYER_ID, null, PAYMENT_TOKEN),
|
||||
result
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user