Потребовалось реализовать в VirtueMart оплату через "Единую Кассу".
Решил не заморачиваться с модулем и сделать "полуавтоматическую" оплату (без обратного оповещения), благо сама ЕК позволяет это сделать.
Создал новый способ оплаты "HTML-форма (например, для PayPal)", Класс: ps_payment, и в поле "Дополнительная информация по платежу" вписал код:
<?
// номер заказа
$inv_id = $db->f("order_id");
// номер аккаунта в Единой Кассе
$no_akk = "тут номер акка";
// сумма заказа
$out_summ = $db->f("order_total");
// форма оплаты товара
print
"<html>".
"<form action='https://merchant.w1.ru/checkout/default.aspx' method='POST'
target='_blank'>".
"<input type=hidden name=WMI_MERCHANT_ID=$no_akk>".
"<input type=hidden name=WMI_PAYMENT_AMOUNT=$out_summ>".
"<input type=hidden name=WMI_CURRENCY_ID=643>".
"<input type=hidden name=WMI_DESCRIPTION=$inv_id>".
"<input type=hidden name=WMI_SUCCESS_URL='тут адрес'>".
"<input type=hidden name=WMI_FAIL_URL='и тут адрес'>".
"<input type=submit value='Оплатить'>".
"</form>".
"</html>";
?>
Бился пол-дня - не получается - при нажатии "оплатить" Единая Касса выдаёт ошибку, что не передан обязательный параметр WMI_MERCHANT_ID (номер кошелька в системе). И хоть убей - не могу разобраться, почему. Я уже и так убрал секретный ключ, чтобы упростить... Техническая документация Единой Кассы тут, если нужно:
http://merchant.w1.ru/checkout/site/develope/Также пробовал просто воткнуть код из примера на сайте Единой Кассы (тупо с формами, пример ниже) - всё прекрасно работает - заказ в ЕК оформляется, переходит к оплате. Тоже как вариант можно - формы сделать невидимыми не проблема, но как тут в параметр value вставить переменную из БД (номер заказа, сумма оплаты и т.д.)? Сколько не пробовал - вместо правильных значений вставляет всегда "1". Ну не делать же, в самом деле, чтобы покупатели сами вписывали значения в формы
Пример кода с формами:
<form method="post" action="https://merchant.w1.ru/checkout/default.aspx" accept-charset="UTF-8">
<input name="WMI_MERCHANT_ID" value="123456789012"/>
<input name="WMI_PAYMENT_AMOUNT" value="100.00"/>
<input name="WMI_CURRENCY_ID" value="643"/>
<input name="WMI_DESCRIPTION" value="Оплата демонстрационного заказа"/>
<input name="WMI_SUCCESS_URL" value="https://myshop.ru/w1/paid.php"/>
<input name="WMI_FAIL_URL" value="https://myshop.ru/w1/fail.php"/>
<input type="submit"/>
</form>
Подскажите, пожалуйста, очень на вас надеюсь.