Exemplo n.º 1
0
        private static UpdateRequestStatus GetUpdateRequestStatusFromShippingUserErrors(List <UserError> errors)
        {
            var statusToReturn = ApplePayAuthorizationStatus.Failure;
            var payErrors      = new List <ApplePayError>();

            foreach (var error in errors)
            {
                var fields = error.field();

                try {
                    var           lastField = fields[fields.Count - 1];
                    ApplePayError payError;

                    if (IsShippingAddressField(lastField))
                    {
                        payError       = new ApplePayShippingAddressInvalidError(error.message(), lastField);
                        statusToReturn = ApplePayAuthorizationStatus.InvalidShippingPostalAddress;
                    }
                    else if (IsContactField(lastField))
                    {
                        payError       = new ApplePayContactInvalidError(error.message(), lastField);
                        statusToReturn = ApplePayAuthorizationStatus.InvalidShippingContact;
                    }
                    else if (IsEmailField(lastField))
                    {
                        payError       = new ApplePayContactInvalidError(error.message(), ApplePayContactInvalidError.ContactField.EmailAddress);
                        statusToReturn = ApplePayAuthorizationStatus.InvalidShippingContact;
                    }
                    else
                    {
                        statusToReturn = ApplePayAuthorizationStatus.Failure;
                        break;
                    }

                    payErrors.Add(payError);
                } catch {
                    statusToReturn = ApplePayAuthorizationStatus.Failure;
                    break;
                }
            }

            if (statusToReturn == ApplePayAuthorizationStatus.Failure)
            {
                return(new UpdateRequestStatus(statusToReturn));
            }
            else
            {
                return(new UpdateRequestStatus(statusToReturn, payErrors));
            }
        }
Exemplo n.º 2
0
        private static UpdateRequestStatus GetUpdateRequestStatusFromCheckoutUserErrors(List <UserError> errors)
        {
            var payErrors      = new List <ApplePayError>();
            var statusToReturn = ApplePayAuthorizationStatus.Failure;

            // Check to see if any of the user errors are not billing address errors
            // If it is not a billing address error return a failure
            foreach (var error in errors)
            {
                var fields    = error.field();
                var fieldsSet = new HashSet <string>(fields);

                try {
                    string lastField = fields[fields.Count - 1];
                    ApplePayAddressInvalidError payError;

                    if (fieldsSet.Contains("billingAddress"))
                    {
                        payError       = new ApplePayBillingAddressInvalidError(error.message(), lastField);
                        statusToReturn = ApplePayAuthorizationStatus.InvalidBillingPostalAddress;
                    }
                    else if (fieldsSet.Contains("shippingAddress"))
                    {
                        payError       = new ApplePayShippingAddressInvalidError(error.message(), lastField);
                        statusToReturn = ApplePayAuthorizationStatus.InvalidShippingPostalAddress;
                    }
                    else
                    {
                        statusToReturn = ApplePayAuthorizationStatus.Failure;
                        break;
                    }

                    payErrors.Add(payError);
                } catch {
                    statusToReturn = ApplePayAuthorizationStatus.Failure;
                    break;
                }
            }

            if (statusToReturn == ApplePayAuthorizationStatus.Failure)
            {
                return(new UpdateRequestStatus(statusToReturn));
            }
            else
            {
                return(new UpdateRequestStatus(statusToReturn, payErrors));
            }
        }
Exemplo n.º 3
0
        // We only receive a partial shipping address before the user has authenticated
        // City, State, Zip, Country
        private static UpdateRequestStatus GetUpdateRequestStatusFromPreliminaryShippingUserErrors(List <UserError> errors)
        {
            var payErrors = new List <ApplePayError>();

            foreach (var error in errors)
            {
                var fields = error.field();

                try {
                    var lastField = fields[fields.Count - 1];

                    if (IsPartialShippingAddressField(lastField))
                    {
                        var payError = new ApplePayShippingAddressInvalidError(error.message(), lastField);
                        payErrors.Add(payError);
                    }
                } catch {
                    return(new UpdateRequestStatus(ApplePayAuthorizationStatus.Failure));
                }
            }

            return(new UpdateRequestStatus(ApplePayAuthorizationStatus.InvalidShippingPostalAddress, payErrors));
        }