Единый кошелек - Неверная цифровая подпись

Ошибки, проблемы, способы их решения.
Аватара пользователя
alezhen
Сообщения: 119
Зарегистрирован: 2015-02-16 12:22:03
Откуда: Россия
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Единый кошелек - Неверная цифровая подпись

Сообщение alezhen » 2015-03-02 22:24:19

Все делалось по инструкции из доки. Но в итоге при попытке оплатить получаю "Неверная цифровая подпись".

У них там немного что-то менялось. Ниже пример с их сайта. Может чего навеет. Только он для md5.

Код: Выделить всё

<?php
 
          //Секретный ключ интернет-магазина
          $key = "XkZMYW56NzVbNV1aekxGNVxvT3xwVHExZ005";
 
          $fields = array();
 
          // Добавление полей формы в ассоциативный массив
          $fields["WMI_MERCHANT_ID"]    = "119175088534";
          $fields["WMI_PAYMENT_AMOUNT"] = "100.00";
          $fields["WMI_CURRENCY_ID"]    = "643";
          $fields["WMI_PAYMENT_NO"]     = "12345-001";
          $fields["WMI_DESCRIPTION"]    = "BASE64:".base64_encode("Payment for order #12345-001 in MYSHOP.com");
          $fields["WMI_EXPIRED_DATE"]   = "2019-12-31T23:59:59";
          $fields["WMI_SUCCESS_URL"]    = "https://myshop.com/w1/success.php";
          $fields["WMI_FAIL_URL"]       = "https://myshop.com/w1/fail.php";
          $fields["MyShopParam1"]       = "Value1"; // Дополнительные параметры
          $fields["MyShopParam2"]       = "Value2"; // интернет-магазина тоже участвуют
          $fields["MyShopParam3"]       = "Value3"; // при формировании подписи!
          //Если требуется задать только определенные способы оплаты, раскоментируйте данную строку и перечислите требуемые способы оплаты.
          //$fields["WMI_PTENABLED"]      = array("ContactRUB", "UnistreamRUB", "SberbankRUB", "RussianPostRUB");
 
          //Сортировка значений внутри полей
          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>";
          ?>

Аватара пользователя
Alex Keda
Сообщения: 2882
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 19 раз

Единый кошелек - Неверная цифровая подпись

Сообщение Alex Keda » 2015-03-03 0:51:23

alezhen писал(а):Источник цитаты

Код: Выделить всё

           //Сортировка значений внутри полей
          foreach($fields as $name => $val)
          {
            if (is_array($val))
            {
               usort($val, "strcasecmp");
               $fields[$name] = $val;
            }
          }
 
          // Формирование сообщения, путем объединения значений формы,
          // отсортированных по именам ключей в порядке возрастания.
          uksort($fields, "strcasecmp");
          $fieldValues = "";

вот этого раньше не было...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alezhen
Сообщения: 119
Зарегистрирован: 2015-02-16 12:22:03
Откуда: Россия
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Единый кошелек - Неверная цифровая подпись

Сообщение alezhen » 2015-03-03 8:55:43

А еще в OnPay.ru не подставляет MerchantLogin в ссылку.
Пришлось ручками в конфиге править ссылку

Код: Выделить всё

https://secure.onpay.ru/pay/Логин_магазина

Аватара пользователя
Alex Keda
Сообщения: 2882
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 19 раз

Единый кошелек - Неверная цифровая подпись

Сообщение Alex Keda » 2015-03-03 9:51:09

alezhen писал(а):Источник цитаты Логин_магазина


это какой параметр? MerchantLogin?
тут уже ограничение самого биллинга - надо перепиливать чтобы Cpp можно было динамически менять.
--
и, непонятно, какое это имеет отношение к единому кошельку?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alezhen
Сообщения: 119
Зарегистрирован: 2015-02-16 12:22:03
Откуда: Россия
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Единый кошелек - Неверная цифровая подпись

Сообщение alezhen » 2015-03-03 12:28:05

Alex Keda писал(а):Источник цитаты и, непонятно, какое это имеет отношение к единому кошельку?

****, да никакого... Просто не хотелось из-за одного вопроса новую тему создавать.

Отправлено спустя 15 минут 31 секунду:
Можно переименовать тему в "Ошибки платежных систем"

Аватара пользователя
Alex Keda
Сообщения: 2882
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 19 раз

Единый кошелек - Неверная цифровая подпись

Сообщение Alex Keda » 2015-03-03 13:47:08

а смысл? ошибки-то разные.
--
и вообще, я ж вам дал доступ к репозиторию.
просто исправьте =)

лучше с отдельной темой, елси непонятно что и куда и как...

мне это затруднительно, поскольку ни то ни другое не юзаем - от всяких мелких и экзотических давно отказались, посчитав что 1% - это слишком мало, чтобы держать ради них десяток всяких платёжных систем...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
NeDobryj
Сообщения: 12
Зарегистрирован: 2015-04-15 15:26:09
Контактная информация:

Единый кошелек - Неверная цифровая подпись

Сообщение NeDobryj » 2015-04-16 11:56:05

Проблема с ЕК решилась? Если да, то как?
Если руки золотые, то пофиг откуда они растут.

Аватара пользователя
Alex Keda
Сообщения: 2882
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 19 раз

Единый кошелек - Неверная цифровая подпись

Сообщение Alex Keda » 2015-04-16 15:08:38

NeDobryj писал(а):Проблема с ЕК решилась? Если да, то как?

судя по отсутствию коммитов - либо настройки были неверные, либо не решилось
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alezhen
Сообщения: 119
Зарегистрирован: 2015-02-16 12:22:03
Откуда: Россия
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Единый кошелек - Неверная цифровая подпись

Сообщение alezhen » 2015-04-16 15:41:48

NeDobryj писал(а):Источник цитаты Проблема с ЕК решилась?

не решилось. у них новая версия API вышла. пока этим заниматься некогда. может в будущем.

Аватара пользователя
Alex Keda
Сообщения: 2882
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 19 раз

Единый кошелек - Неверная цифровая подпись

Сообщение Alex Keda » 2015-04-16 16:34:44

а чем оно лучше робокассы?
несколько лет назад - никаких особенных отличий не нашёл...
Убей их всех! Бог потом рассортирует...


Вернуться в «Решение проблем»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей