fromPurchase static method

List<GooglePlayPurchaseDetails> fromPurchase(
  1. PurchaseWrapper purchase
)

Generates a List of PurchaseDetails based on an Android Purchase object.

The list contains one entry per product.

Implementation

static List<GooglePlayPurchaseDetails> fromPurchase(
    PurchaseWrapper purchase) {
  return purchase.products.map((String productId) {
    final GooglePlayPurchaseDetails purchaseDetails =
        GooglePlayPurchaseDetails(
      purchaseID: purchase.orderId,
      productID: productId,
      verificationData: PurchaseVerificationData(
          localVerificationData: purchase.originalJson,
          serverVerificationData: purchase.purchaseToken,
          source: kIAPSource),
      transactionDate: purchase.purchaseTime.toString(),
      billingClientPurchase: purchase,
      status: const PurchaseStateConverter()
          .toPurchaseStatus(purchase.purchaseState),
    );

    if (purchaseDetails.status == PurchaseStatus.error) {
      purchaseDetails.error = IAPError(
        source: kIAPSource,
        code: kPurchaseErrorCode,
        message: '',
      );
    }

    return purchaseDetails;
  }).toList();
}