WC_API_Authentication::normalize_parameters()privateWC 2.1

Normalize each parameter by assuming each parameter may have already been encoded, so attempt to decode, and then re-encode according to RFC 3986

Note both the key and value is normalized so a filter param like:

'filter[period]' => 'week'

is encoded to:

'filter%5Bperiod%5D' => 'week'

This conforms to the OAuth 1.0a spec which indicates the entire query string should be URL encoded

Method of the class: WC_API_Authentication{}

No Hooks.

Return

Array. normalized parameters

Usage

// private - for code of main (parent) class only
$result = $this->normalize_parameters( $parameters );
$parameters(array) (required)
un-normalized parameters

Notes

  • See: rawurlencode()

Changelog

Since 2.1 Introduced.

WC_API_Authentication::normalize_parameters() code WC 7.7.0

private function normalize_parameters( $parameters ) {

	$normalized_parameters = array();

	foreach ( $parameters as $key => $value ) {

		// Percent symbols (%) must be double-encoded
		$key   = str_replace( '%', '%25', rawurlencode( rawurldecode( $key ) ) );
		$value = str_replace( '%', '%25', rawurlencode( rawurldecode( $value ) ) );

		$normalized_parameters[ $key ] = $value;
	}

	return $normalized_parameters;
}