Google's John Mueller posted on Google+ a heads up to those sites implementing hreflang for international support, that they must implement the rel=canonical properly or it will be as if none of the mark up is there.
Keep in mind, John would not be posting this if he did not see this come up often enough, causing issues for many webmasters.
John wrote, and this gets pretty technical:
Make sure any rel=canonical you specify matches one of the URLs you use for the hreflang pairs. If the specified canonical URL is not a part of the hreflang pairs, then the hreflang markup will be ignored.In this case, if you want to use the "?op=1" URLs as canonicals, then the hreflang URLs should refer to those URLs. Alternately, if you want to use just "/page", then the rel=canonical should refer to that too.
Finally, don't use a rel=canonical across languages/countries, only use it on a per-country/language basis (don't specify the "de" page as the canonical for the "en" version, otherwise we won't index the "en" version).
He shared this photo to try to help webmasters understand:
If your site supports international users with various languages, check out John's post on Google+ and this help document.
Forum discussion at Google+.