purchase method
Starts a purchase after configuration.
Cancellation is a domain result and must not be reported as a transport exception. Implementations must not both navigate and return a redirect URL unless their documented integration contract explicitly requires it.
Implementation
@override
Future<InappifySdkResult<PurchaseResult>> purchase(
InappifyPurchaseRequest request,
) {
return _invokeResult<PurchaseResult>(
method: InappifyChannelContract.purchase,
payload: {
'packageToPurchase': {
'identifier':
request.packageToPurchase?.identifier ??
request.packageIdentifier,
'offeringIdentifier':
request.packageToPurchase?.offeringIdentifier ??
request.offeringIdentifier,
'product': {
'identifier':
request.packageToPurchase?.product?.identifier ??
request.productIdentifier,
'productType':
(request.packageToPurchase?.product?.productType ??
request.productType)
?.wireName,
},
},
'idempotencyKey': request.idempotencyKey,
if (request.paywallId != null) 'paywallId': request.paywallId,
if (request.paywallRevision != null)
'paywallRevision': request.paywallRevision,
},
requestId: request.idempotencyKey,
decodeData: PurchaseResult.fromJson,
);
}