private string MapCardDataSource(AuthorizationBuilder builder) { IPaymentMethod paymentMethod = builder.PaymentMethod; EcommerceInfo ecommerceInfo = builder.EcommerceInfo; if (paymentMethod is ICardData card) { if (card.ReaderPresent && card.CardPresent) { return("MANUAL"); } if (ecommerceInfo == null) { return("INTERNET"); } switch (ecommerceInfo.Channel) { case EcommerceChannel.ECOM: return("INTERNET"); case EcommerceChannel.MOTO: return("PHONE|MAIL"); case EcommerceChannel.MAIL: return("MAIL"); case EcommerceChannel.PHONE: return("PHONE"); } } else if (paymentMethod is ITrackData track) { if (builder.TagData != null) { return(track.EntryMethod.Equals(EntryMethod.Swipe) ? "EMV" : "EMV_CONTACTLESS"); } else if (builder.HasEmvFallbackData) { return("FALLBACK_SWIPE"); } return("SWIPE"); } throw new UnsupportedTransactionException(); }
/// <summary> /// Sets eCommerce specific data; where applicable. /// </summary> /// <remarks> /// This can include: /// /// - Consumer authentication (3DSecure) data /// - Direct market data /// </remarks> /// <param name="value">The eCommerce data</param> /// <returns>AuthorizationBuilder</returns> public AuthorizationBuilder WithEcommerceInfo(EcommerceInfo value) { EcommerceInfo = value; return(this); }