createPaymentLink method

  1. @override
Future<String> createPaymentLink({
  1. String? orgId,
  2. required String priceId,
  3. required String successUrl,
  4. required String cancelUrl,
  5. int? trialDays,
})
override

Implementation

@override
Future<String> createPaymentLink({
  String? orgId,
  required String priceId,
  required String successUrl,
  required String cancelUrl,
  int? trialDays,
}) async {
  final request = StripeCheckoutRequest(
    orgId: orgId,
    priceId: priceId,
    successUrl: successUrl,
    cancelUrl: cancelUrl,
    trialDays: trialDays,
  );

  final completer = Completer<String>();
  _api.stripeCheckout(request).then((response) {
    _enqueueEvent(
      PaymentLinkCreated(response.url),
    );
    completer.complete(response.url);
  }).onError((DioException? error, StackTrace stackTrace) {
    _handleError(
      error,
      stackTrace,
      message: 'Failed to create payment link',
      errorHandler: (appException, httpStatusCode) {
        _enqueueEvent(
          PaymentLinkCreationFailed(
            request: request,
            exception: appException,
          ),
        );
      },
    );
  });
  return completer.future;
}