createCheckout method
Future<InappifySdkResult<InappifyCheckoutResult> >
createCheckout(
- InappifyPurchaseRequest request
inherited
Creates a checkout without allowing the backend to navigate the page.
Implementation
@override
Future<InappifySdkResult<InappifyCheckoutResult>> createCheckout(
InappifyPurchaseRequest request,
) async {
final cancelled = _preCancelled<InappifyCheckoutResult>(
'createCheckout',
request.cancellation,
);
if (cancelled != null) return cancelled;
final packageIdentifier = _resolvePackageIdentifier(request);
if (packageIdentifier == null) {
return _invalid<InappifyCheckoutResult>(
'createCheckout',
'A packageIdentifier could not be inferred unambiguously.',
);
}
if (_hasUnsupportedNativePurchaseOptions(request)) {
return _invalid<InappifyCheckoutResult>(
'createCheckout',
'Native-store purchase options are not supported by Web checkout.',
);
}
return _run<InappifyCheckoutResult>(
'createCheckout',
action: () async {
final raw = await _bridge.call(
'createCheckout',
positionalArguments: <Object?>[
_checkoutParameters(request, packageIdentifier),
if (request.cancellation != null) const <String, Object?>{},
],
cancellation: request.cancellation,
injectAbortSignal: request.cancellation != null,
);
final checkout = InappifyWebPayloadCodec.checkout(raw);
_recordCheckoutState(checkout);
return checkout;
},
cancellation: request.cancellation,
mutationMayHaveCommitted: true,
);
}