Помощь Монетизация Единая Касса API

Тема в разделе "XenForo", создана пользователем Chvalov, 23 дек 2013.

Информация :
Хотите добавить продукт, следуйте правилам:
1)Добавить скриншот.
2)Добавить описание (Описание на английском языке использовать - запрещено).
3)Ссылка на скачивание должна вести на сторонний файлообменник (использовать вложения - запрещено).
Модераторы: DMS
  1. Chvalov

    Chvalov

    Регистр.:
    31 окт 2011
    Сообщения:
    236
    Симпатии:
    76
    Парни помогите переделать плагин Робокасы под Единую Кассу

    PHP:
    <?php
    if (isset($_POST['OutSum'], $_POST['_xfTokens'], $_POST['desc_info']))
    {
    $key "ВАШ КЛЮЧ";
    $fields = array();
    $fields["WMI_MERCHANT_ID"]  = "ВАШ ИД";
    $fields["WMI_PAYMENT_AMOUNT"] = $_POST['OutSum'];
    $fields["WMI_CURRENCY_ID"]  = "840"// Сделать пару вариантов, также дать возможность управлять с админки
    $fields["WMI_PAYMENT_NO"]  = $_POST['_xfTokens']; // Должен бить уникален (Генерировать с user_id и user_upgrade_id)
    $fields["WMI_DESCRIPTION"]  = "BASE64:".base64_encode($_POST['desc_info']);
    $fields["WMI_EXPIRED_DATE"]  = "2019-12-31T23:59:59"// Дата должна зависеть от времени сесии (Обычно это 15 мин)
    $fields["WMI_SUCCESS_URL"]  = "http://illbreak.ru/account/upgrade-purchase";
    $fields["WMI_FAIL_URL"]  = "http://illbreak.ru";
    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)
      {
      
    $v iconv("utf-8""windows-1251"$v);
      
    $fieldValues .= $v;
      }
      else
      {
      
    $value iconv("utf-8""windows-1251"$value);
      
    $fieldValues .= $value;
      }
    }
    $signature base64_encode(pack("H*"md5($fieldValues $key)));
    $fields["WMI_SIGNATURE"] = $signature;
    print 
    "<form action=\"https://merchant.w1.ru/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\"/><br>";
      }
      else
      print 
    "$key: <input type=\"text\" name=\"$key\" value=\"$val\"/><br>";
    }
    }
    print 
    "<input type=\"submit\"/></form>";
    ?>

    Оплата происходит, но вот как настроить чтобы результат оплаты возвращался обратно не знаю :-(
    Ваш интернет-магазин, подключенный к сервису «Единая касса», не смог обработать уведомление об оплате заказа.

    Адрес обработчика: http://illbreak.ru/account/upgrade-purchase
    Ошибка: Магазин вернул сообщение об ошибке

    Ответ, полученный от вашего сервера:
    Обратите внимание. Скрипт обрабатывающий уведомления должен передавать в ответе только два параметра — WMI_RESULT, WMI_DESCRIPTION и ничего больше.

    Примеры корректного ответа:
    Параметр WMI_RESULT должен принимать значение OK при успешной обработке, либо RETRY, если при его обработке произошла ошибка. В случае получения ответа с кодом RETRY запрос будет повторен позже.


    Вот сам плагин который нужно допилять
     

    Вложения:

    Последнее редактирование модератором: 26 янв 2014