Get receipt credential presentation BEFORE recording receipt so that the retry does not add another receipt.

This commit is contained in:
Alex Hart
2022-03-24 17:13:56 -03:00
committed by Greyson Parrelli
parent d7a7e72c3a
commit 5faa497821

View File

@@ -170,10 +170,11 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob {
throw new IOException("Could not validate receipt credential");
}
ReceiptCredentialPresentation receiptCredentialPresentation = getReceiptCredentialPresentation(receiptCredential);
Log.d(TAG, "Validated credential. Recording receipt and handing off to redemption job.", true);
SignalDatabase.donationReceipts().addReceipt(DonationReceiptRecord.createForSubscription(subscription));
ReceiptCredentialPresentation receiptCredentialPresentation = getReceiptCredentialPresentation(receiptCredential);
setOutputData(new Data.Builder().putBlobAsString(DonationReceiptRedemptionJob.INPUT_RECEIPT_CREDENTIAL_PRESENTATION,
receiptCredentialPresentation.serialize())
.build());