в зависимости от типа прокси - различные параметры.
HTTP прокси:
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, $proxy_ip);
HTTPS прокси:
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTPS);
curl_setopt($ch, CURLOPT_PROXY, $proxy_ip);
SOCKS4 прокси:
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4);
curl_setopt($ch, CURLOPT_PROXY, $proxy_ip);
SOCKS5 прокси без авторизации:
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($ch, CURLOPT_PROXY, $proxy_ip);
SOCKS5 прокси с авторизацией по логину и паролю:
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($ch, CURLOPT_PROXY, $proxy_ip);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_pass);
Насчёт https прокси с авторизацией по логину/паролю, socks4a прокси - ничего не скажу, не сталкивался с ними.
Кроме того, у вас могут быть прокси с авторизацией по ip. Тогда просто узнать внешний ip сервера и установить эту привязку в настройках в магазине, где приобрели прокси.
P.S. Если тип прокси достоверно не известен (публичные прокси из неясных источников) - то последовательно делать запрос и смотреть ответ. При работе с публичными списками прокси делаю именно так. Заодно можно отсекать прокси с неприемлемым временем ответа. В копилку -
определение типа прокси средствами php/curl