Задать вопрос
@Gravio

Подключение Единой кассы (W1 Wallet One)?

Здравствуйте, не могу разобраться как подключить W1.

Есть скрипт pay.php
<?php
//Секретный ключ интернет-магазина
$key = "Здесь секретный ключ";

$fields = array();

// Добавление полей формы в ассоциативный массив
$fields["WMI_MERCHANT_ID"]    = "";
$fields["WMI_PAYMENT_AMOUNT"] = "";
$fields["WMI_CURRENCY_ID"]    = "643";
$fields["WMI_PAYMENT_NO"]     = "12345-005";
$fields["WMI_SUCCESS_URL"]    = "http://site.ru/_PaySystem/w1/result.php";
$fields["WMI_DESCRIPTION"]    = "BASE64:".base64_encode("Пополнение лицевого счета");
$fields["WMI_EXPIRED_DATE"]   = "2019-12-31T23:59:59";

//Сортировка значений внутри полей
foreach($fields as $name => $val)
{
if (is_array($val))
{
usort($val, "strcasecmp");
$fields[$name] = $val;
}
}

// Формирование сообщения, путем объединения значений формы,
// отсортированных по именам ключей в порядке возрастания.
uksort($fields, "strcasecmp");
$fieldValues = "";

foreach($fields as $value)
{
if (is_array($value))
foreach($value as $v)
{
//Конвертация из текущей кодировки (UTF-8)
//необходима только если кодировка магазина отлична от Windows-1251
$v = iconv("utf-8", "windows-1251", $v);
$fieldValues .= $v;
}
else
{
//Конвертация из текущей кодировки (UTF-8)
//необходима только если кодировка магазина отлична от Windows-1251
$value = iconv("utf-8", "windows-1251", $value);
$fieldValues .= $value;
}
}

// Формирование значения параметра WMI_SIGNATURE, путем
// вычисления отпечатка, сформированного выше сообщения,
// по алгоритму MD5 и представление его в Base64

$signature = base64_encode(pack("H*", md5($fieldValues . $key)));

//Добавление параметра WMI_SIGNATURE в словарь параметров формы

$fields["WMI_SIGNATURE"] = $signature;

// Формирование HTML-кода платежной формы

print '<form action="https://www.walletone.com/checkout/default.aspx" method="POST">';

foreach($fields as $key => $val)
{
if (is_array($val))
foreach($val as $value)
{
print $key.':<input type="text" name="'.$key.'" value="'.$value.'"/>';
}
else
print $key.':<input type="text" name="'.$key.'" value="'.$val.'"/>';
}

print '<input type="submit"/></form>';
?>


И выходит вот так:

bddc21d1684e4600a8ca5eb3164baacb.jpg

Как сделать нормальную форму ? Помогите
  • Вопрос задан
  • 1114 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
А на хрена вы в форме выводите константы как поля ввода?
Замените "text" на "hidden" у всего, что известно заранее (то есть у всего, кроме суммы - или она тоже известна?).

Вообще я у себя делал подключение кнопкой, которая по ajax обращалась к сайту, получала номер заказа, вносила его значение в такую вот форму и сразу же делала ей submit, отправляя клиента оплачивать на сайт ЕК. Сама форма не содержит видимых элементов - незачем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы