示例#1
0
        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);
 }