initApplePay method

  1. @override
Future<TapPaySdkCommonResult?> initApplePay({
  1. required String merchantId,
  2. required String merchantName,
  3. List<TapPayCardType>? allowedCardTypes,
  4. bool? isConsumerNameRequired = false,
  5. bool? isPhoneNumberRequired = false,
  6. bool? isEmailRequired = false,
  7. bool? isBillingAddressRequired = false,
})
override

Initialize Apple Pay

merchantId is Apple Pay's merchant ID merchantName is the name of the merchant. (e.g., "Apple Pay Merchant") allowedCardTypes is the list of allowed card networks. Default value is TapPayCardType.visa, TapPayCardType.masterCard, TapPayCardType.americanExpress, TapPayCardType.jcb isConsumerNameRequired is a boolean value to indicate whether to require consumer name. Default value is false isPhoneNumberRequired is a boolean value to indicate whether to require phone number. Default value is false isEmailRequired is a boolean value to indicate whether to require email. Default value is false isBillingAddressRequired is a boolean value to indicate whether to require billing address. Default value is false

return ApplePayInitResult with value success as true if success. return ApplePayInitResult with value success as false if fail. return ApplePayInitResult with value message as String if fail. return null if the initialization is incomplete

Implementation

@override
Future<TapPaySdkCommonResult?> initApplePay({
  required String merchantId,
  required String merchantName,
  List<TapPayCardType>? allowedCardTypes,
  bool? isConsumerNameRequired = false,
  bool? isPhoneNumberRequired = false,
  bool? isEmailRequired = false,
  bool? isBillingAddressRequired = false,
}) async {
  if (Platform.isIOS == false) {
    return TapPaySdkCommonResult(
        success: false,
        message: "Apple Pay is only available on iOS devices.");
  }

  final result = await methodChannel
      .invokeMethod<Map<Object?, Object?>>('initApplePay', {
    'merchantId': merchantId,
    'merchantName': merchantName,
    'cardTypes': allowedCardTypes
            ?.map((TapPayCardType cardType) => cardType.name)
            .toList() ??
        kDefaultTapPayAllowedCardTypes
            .map((TapPayCardType cardType) => cardType.name)
            .toList(),
    'isConsumerNameRequired': isConsumerNameRequired,
    'isPhoneNumberRequired': isPhoneNumberRequired,
    'isEmailRequired': isEmailRequired,
    'isBillingAddressRequired': isBillingAddressRequired,
  });

  if (result == null) {
    return TapPaySdkCommonResult(
        success: false,
        message:
            "Encountered an unidentified error while checking if Apple Pay is available.");
  } else {
    return TapPaySdkCommonResult.fromMap(Map<String, dynamic>.from(result));
  }
}