requestPayment method

Future<Result> requestPayment({
  1. required PaymentInfo paymentInfo,
})

선택한 결제수단의 결제창을 띄우는 메서드입니다. paymentInfo : 결제 정보입니다. 정상적으로 PaymentMethodWidget이 렌더링되지 않았을 경우 Exception을 발생시킵니다. 결제 성공 여부에 따라 Result의 Future를 반환합니다.

Implementation

Future<Result> requestPayment({required PaymentInfo paymentInfo}) async {
  try {
    final paymentMethodKey =
        _widgetKeyMap.values.firstWhere((element) => element is GlobalKey<PaymentMethodWidgetState>)
            as GlobalKey<PaymentMethodWidgetState>;
    return await paymentMethodKey.currentState?.requestPayment(paymentInfo: paymentInfo) ??
        (throw Exception('PaymentMethod is not rendered. Call \'renderPaymentMethods\' method first.'));
  } catch (_) {
    throw Exception('PaymentMethod is not rendered. Call \'renderPaymentMethods\' method first.');
  }
}