AppStorePurchaseDetails.fromSKTransaction constructor
AppStorePurchaseDetails.fromSKTransaction(
- SKPaymentTransactionWrapper transaction,
- String base64EncodedReceipt
Generate a AppStorePurchaseDetails object based on an iOS SKPaymentTransactionWrapper object.
Implementation
factory AppStorePurchaseDetails.fromSKTransaction(
SKPaymentTransactionWrapper transaction,
String base64EncodedReceipt,
) {
final AppStorePurchaseDetails purchaseDetails = AppStorePurchaseDetails(
productID: transaction.payment.productIdentifier,
purchaseID: transaction.transactionIdentifier,
skPaymentTransaction: transaction,
status: const SKTransactionStatusConverter()
.toPurchaseStatus(transaction.transactionState, transaction.error),
transactionDate: transaction.transactionTimeStamp != null
? (transaction.transactionTimeStamp! * 1000).toInt().toString()
: null,
verificationData: PurchaseVerificationData(
localVerificationData: base64EncodedReceipt,
serverVerificationData: base64EncodedReceipt,
source: kIAPSource),
);
if (purchaseDetails.status == PurchaseStatus.error ||
purchaseDetails.status == PurchaseStatus.canceled) {
purchaseDetails.error = IAPError(
source: kIAPSource,
code: kPurchaseErrorCode,
message: transaction.error?.domain ?? '',
details: transaction.error?.userInfo,
);
}
return purchaseDetails;
}