requestBio static method

Future<void> requestBio(
  1. BuildContext context,
  2. BioPayload payload, {
  3. User? user,
  4. List<Item>? items,
  5. Extra? extra,
  6. StringCallback? onConfirm,
  7. StringCallback? onDone,
  8. StringCallback? onReady,
  9. StringCallback? onCancel,
  10. StringCallback? onError,
})

Implementation

static Future<void> requestBio(BuildContext context, BioPayload payload,
    {User? user,
      List<Item>? items,
      Extra? extra,
      StringCallback? onConfirm,
      StringCallback? onDone,
      StringCallback? onReady,
      StringCallback? onCancel,
      StringCallback? onError}) async {

  payload.applicationId = Platform.isIOS
      ? payload.iosApplicationId
      : payload.androidApplicationId;

  if (user == null) user = User();
  if (items == null) items = [];
  if (extra == null) extra = Extra();

  Map<String, dynamic> params = {
    "payload": payload.toJson(),
    "params": payload.params ?? {},
    "user": user.toJson(),
    "items": items.map((v) => v.toJson()).toList(),
    "extra": extra.toJson()
  };

  Map<dynamic, dynamic> result = await (_channel.invokeMethod(
    "bootpayRequestBio",
    params,
  ));

  // Map<dynamic, dynamic> result = await (_channel.invokeMethod(
  //   "bootpayRequestBio",
  //   params,
  // ) as FutureOr<Map<dynamic, dynamic>>);

  String? method = result["method"];
  if (method == null) method = result["action"];

  String? message = result["message"];
  if (message == null) message = result["msg"];
  if (message == null) message = result["data"];

  //confirm 생략
  if (method == 'onDone' || method == 'BootpayDone') {
    // if (onDone != null) onDone(jsonEncode(result["data"]));
    if (onDone != null) onDone(result["message"]);
  } else if (method == 'onReady' || method == 'BootpayReady') {
    if (onReady != null) onReady(message);
  } else if (method == 'onCancel' || method == 'BootpayCancel') {
    if (onCancel != null) onCancel(message);
  } else if (method == 'onError' || method == 'BootpayError') {
    if (onError != null) onError(message);
  } else if (result['receipt_id'] != null && result['receipt_id'].isNotEmpty) {
    if (onDone != null) onDone(jsonEncode(result));
  } else if (method == 'onConfirm' || method == 'BootpayConfirm') {
    if (onConfirm != null) onConfirm(message);
  }
}