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)); } }
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)); } }
// 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)); }