Протокол то универсален, а вот ошибка аунтефикации не уходит.
Обратите на эти строки (из предыдущего официального ответа Киви):
//Идентификатор магазина из вкладки "Данные магазина"
$SHOP_ID = "";
//REST ID из вкладки "Данные магазина"
$REST_ID = "";
//REST пароль из вкладки "Данные магазина"
$PWD = "";
Тут три переменных, а в вашем модуле только два - идентификатор магазина + пароль.
Возможно, действительно стоит сделать отдельный модуль - и пока выложить его нам, а уже затем опубликовать в отдельной ветке как модуль для юр. лиц.
Накидал скрин для заполнения данных между системой Киви и модулем.
Плюс ловите свежий ответ от тех. поддержки, который всё ставит на свои места. Я немного раскрасил переменные, чтобы было понятнее.
Если вы зарегистрированы на ishop.qiwi.com, то все запросы и вся работа должна идти через ishop.qiwi.com. ishopnew.qiwi.ru постепенно готовится к закрытию. Если Ваш разработчик использует интеграцию через REST протокол, то в личном кабинете необходимо сгенерировать REST_ID и для него создаться пароль.
Пример корректного кода выставления счета на PHP:
<?
//Идентификатор магазина из вкладки "Данные магазина"
$SHOP_ID = "";
//REST ID из вкладки "Данные магазина"
$REST_ID = "";
//REST пароль из вкладки "Данные магазина"
$PWD = "";
//ID
$BILL_ID = "99111-ABCD";
$PHONE = "79197230638";
$data = array(
"user" => "tel:+" . $PHONE,
"amount" => "10.00",
"ccy" => "RUB",
"comment" => "test",
"lifetime" => "2013-12-25T09:00:00",
"pay_source" => "qw",
"prv_name" => "123"
);
$ch = curl_init('https://w.qiwi.com/api/v2/prv/'.$SHOP_ID.'/bills/'.$BILL_ID);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $REST_ID.":".$PWD);
curl_setopt($ch,CURLOPT_
HTTPHEADER,array (
"Accept: application/json"
));
$results = curl_exec ($ch) or die(curl_error($ch));
echo $results;
echo curl_error($ch);
curl_close ($ch);
$url =
'https://w.qiwi.com/order/external/main.action?shop='.$SHOP_ID.'&transaction='.$BILL_ID.'&successUrl=http%3A%2F%2FСайт.ru%2Findex.php%3Froute%3Dpayment%2Fqiwi%2Fsuccess&failUrl=http%3A%2F%2FСайт.ru%2Findex.php%3Froute%3Dpayment%2Fqiwi%2Ffail&qiwi_phone='.$PHONE;
echo '<br><br><b><a href="'.$url.'">Переадресация для оплаты счета:</a></b>';
?>