code: func (wfe *WebFrontEndImpl) acctIDFromURL(acctURL string, request *http.Request) (int64, *probs.ProblemDetails) {
  	// For normal ACME v2 accounts we expect the account URL has a prefix composed
  	// of the Host header and the acctPath.
  	expectedURLPrefix := web.RelativeEndpoint(request, acctPath)
  
  	// Process the acctURL to find only the trailing numeric account ID. Both the
  	// expected URL prefix and a legacy URL prefix are permitted in order to allow
  	// ACME v1 clients to use legacy accounts with unmodified account URLs for V2
  	// requests.
  	var accountIDStr string
  	if strings.HasPrefix(acctURL, expectedURLPrefix) {
  		accountIDStr = strings.TrimPrefix(acctURL, expectedURLPrefix)
  	} else if strings.HasPrefix(acctURL, wfe.LegacyKeyIDPrefix) {
  		accountIDStr = strings.TrimPrefix(acctURL, wfe.LegacyKeyIDPrefix)
  	} else {
  		return 0, probs.Malformed(
  			fmt.Sprintf("KeyID header contained an invalid account URL: %q", acctURL))
  	}
  
  	// Convert the raw account ID string to an int64 for use with the SA's
  	// GetRegistration RPC
  	accountID, err := strconv.ParseInt(accountIDStr, 10, 64)
  	if err != nil {
  		return 0, probs.Malformed("Malformed account ID in KeyID header URL: %q", acctURL)
  	}
  	return accountID, nil
  }
docs: // acctIDFromURL extracts the numeric int64 account ID from a ACMEv1 or ACMEv2
  // account URL. If the acctURL has an invalid URL or the account ID in the
  // acctURL is non-numeric a MalformedProblem is returned.