Перейти к содержанию
Авторизация  
Arrow

Модуль nexttpay

Рекомендуемые сообщения

Столкнулись с такой вот проблемой, сделали некст пай (http://prntscr.com/c875h2 тут выдает  Произошла ошибка при обработке запроса сервером продавца

нашли скрипт Nextpay.php но я что то не оч понимаю что куда вводить, может кто то подскажет или же есть какойто гайд ?

if (!defined("STRESSWEB"))


die("Access denied...");
ob_start();

//----------------------------------- Настройки скрипта ----------------------------

//URL сервера nextpay, откуда брать курсы через XML, слать запрос на формирование заказа и.т.д
define('NEXTPAY_XML_CLIENT_SERVER_URL', 'http://nextpay.ru/shop/shop/index.php');

//Секретный ключ продавца. Смотри настройки продавца в nextpay
define('NEXTPAY_XML_CLIENT_SELLER_SECRET_KEY', 'ключ');

//ID продукта. Смотри настройки продукта в nextpay
define('NEXTPAY_XML_CLIENT_PRODUCT_ID', 'товар');

//Таймаут запроса в секундах. Если нужен бесконечный таймаут, то используйте значение <= 0
define('NEXTPAY_XML_CLIENT_SERVER_TIMEOUT', 60);



//Кодировка запроса
define('NEXTPAY_XML_CLIENT_REQUEST_CHARACTER_SET', 'windows-1251');

//Кодировка ответа
define('NEXTPAY_XML_CLIENT_RESPONSE_CHARACTER_SET', 'windows-1251');



//Вставляем скрипт в страницу продавца(NEXTPAY_XML_CLIENT_EMBEDDED == true) или
//отображаем, как отдельную страницу (NEXTPAY_XML_CLIENT_EMBEDDED == false)
define('NEXTPAY_XML_CLIENT_EMBEDDED', false);


//Выводить содержимое в стоку
define('NEXTPAY_XML_CLIENT_ECHO_IN_STRING', false);


//Валюта для продукта по умолчанию. Смотри ниже список валют
define('NEXTPAY_XML_CLIENT_DEFAULT_CURRENCY', 2);//WMR

//Как помечать обязательные для заполнения поля
define('NEXTPAY_XML_CLIENT_REQ_FIELD_MARK', '*');

//CSS стиль для отображения сообщения об ошибке
define('NEXTPAY_XML_CLIENT_ERROR_CSS_STYLE', "style='color:red'");

//----------------------------------- Конец настроек скрипта ----------------------------

//Кодировка скрипта. Не менять!
define('NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET', 'windows-1251');


//IDы действий -- не менять!
define('NEXTPAY_XML_CLIENT_ACTION_BUY', 1);
define('NEXTPAY_XML_CLIENT_ACTION_RECALC', 2);

//Название валюты цены продукта -- только для отображения
define('NEXTPAY_XML_CLIENT_PRODUCT_PRICE_CURRENCY', 'руб.');

// IDы валют
// 2 WMR
// 3 WMZ
// 5 Yandex Money
// 6 WMU
// 7 WME
// 9 PLIMUS
// 10 Чек Paymer R
// 11 Чек Paymer Z
// 12 Чек Paymer U
// 13 Kiwi
// 14 Робокасса Yandex Money
// 15 Робокасса RBK Money
// 16 Робокасса Money Mail
// 17 Робокасса Единый кошелёк
// 18 Робокасса RUR WebCreds
// 19 Билайн «Мобильный платеж»
// 22 Киви. Выставление счета на телефон.

//IDы платежных систем Не менять!
define('NEXTPAY_XML_CLIENT_BEELINE_CURRENCY', 19);
define('NEXTPAY_XML_CLIENT_WMR_TERM_CURRENCY', 21);
define('NEXTPAY_XML_CLIENT_KIWI_MOBILE_CURRENCY', 22);

//Число цифр в телефоне при оплате с помощью КИВИ. Не менять!
define('NEXTPAY_CORE_KIWI_XML_API_TO_ACCOUNT_LEN', 10);


//Коды возвратов сервера nextpay. Не менять!
define('NEXTPAY_XML_API_ERROR_INTERNAL_ERROR', -1);
define('NEXTPAY_XML_API_ERROR_SUCCESS', 0);
define('NEXTPAY_XML_API_ERROR_PRODUCT_ID_NOT_PASSED', 1);
define('NEXTPAY_XML_API_ERROR_PRODUCT_NOT_FOUND', 2);
define('NEXTPAY_XML_API_ERROR_INVALID_PRICE_VALUE', 3);
define('NEXTPAY_XML_API_ERROR_PRODUCT_CURRENCY_DISABLED', 4);
define('NEXTPAY_XML_API_ERROR_ORDER_COST_INVALID', 5);
define('NEXTPAY_XML_API_ERROR_MIN_ORDER_COST', 6);
define('NEXTPAY_XML_API_ERROR_REQ_PARAM_NOT_PASSED', 7);
define('NEXTPAY_XML_API_ERROR_VALIDATION_BY_SELLER_FAILED', 8);
define('NEXTPAY_XML_API_ERROR_CURRENCY_NOT_SUPPORTED', 9);
define('NEXTPAY_XML_API_ERROR_CURRENCY_NOT_PASSED', 10);
define('NEXTPAY_XML_API_ERROR_CHECK_SUM', 11);
define('NEXTPAY_XML_API_ERROR_ORDER_COST_GENERAL_INVALID', 12);
define('NEXTPAY_XML_API_ERROR_INVALID_PRODUCT_COUNT_VALUE', 13);
define('NEXTPAY_XML_API_ERROR_INVALID_KIWI_BILL_TO_ACCOUNT', 14);

//Не менять!
define('NEXTPAY_XML_API_ATTR_TYPE_INT', 1);
define('NEXTPAY_XML_API_ATTR_TYPE_STRING', 2);
define('NEXTPAY_XML_API_ATTR_TYPE_ARRAY', 3);

define('NEXTPAY_XML_API_MILTI_OPTIONS_SEPATATOR', ";");


$nextpayXMLClientResponse = "";

//"Тело" скрипта
function nextpayXMLClient_Main()
{
if(!NEXTPAY_XML_CLIENT_EMBEDDED && !NEXTPAY_XML_CLIENT_ECHO_IN_STRING)
{

header("Content-type: text/html;charset=".NEXTPAY_XML_CLIENT_RESPONSE_CHARACTER_SET);

//Отключаем кэширование страницы

// expires in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// Last modified, right now
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

// Prevent caching, HTTP/1.1
header("Cache-Control: no-cache, must-revalidate");

// Prevent caching, HTTP/1.0
header("Pragma: no-cache");

nextpayXMLClient_echoContent("");
}
$action = null;
nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_action", "", $action, false);
switch ($action)
{
case NEXTPAY_XML_CLIENT_ACTION_BUY:
{
if(!nextpayXMLClient_buyRequest())
{
nextpayXMLClient_showForm();
}
break;
}
case NEXTPAY_XML_CLIENT_ACTION_RECALC:
{
nextpayXMLClient_showForm();
break;
}
default:
{
nextpayXMLClient_showForm();
break;
}
}
if(!NEXTPAY_XML_CLIENT_EMBEDDED)
{
nextpayXMLClient_echoContent("");
}
}

/**
* Отсылка запроса на формирование заказа на сервер nextpay.ru
*
*/
function nextpayXMLClient_buyRequest()
{
$errorMessage = null;
$productData = nextpayXMLClient_getProductData($errorMessage);
if($productData == null)
{
if($errorMessage == null)
{
$errorMessage = "Не удалось получить данные от сервера";
}
nextpayXMLClient_errorMessage($errorMessage);
return false;
}
$key = "error";
if(array_key_exists($key, $productData))
{
$errorMessage = $productData['error'];
nextpayXMLClient_errorMessage($errorMessage);
return false;
}
$productName = $productData['name'];
$productPrice = $productData['price'];
$productCountable = $productData['countable'];
$beelineNumber = $productData['beeline_number'];

$currencyId = null;
if(!nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_currency", "Оплата", $currencyId, true))
{
return false;
}

$errorMessage = null;
$rates = nextpayXMLClient_getRates($errorMessage);
if($rates == null)
{
if($errorMessage == null)
{
$errorMessage = "Не удалось получить данные от сервера курсов";
}
nextpayXMLClient_errorMessage($errorMessage);
return false;
}
if(!array_key_exists($currencyId, $rates))
{
$errorMessage = "Неверный ID платежной системы: $currencyId";
nextpayXMLClient_errorMessage($errorMessage);
return false;
}

$index = "rate";
$currencyData = $rates[$currencyId];
if(!array_key_exists($index, $currencyData))
{
$errorMessage = "Неизвестен обменный курс для платежной системы. ID платежной системы: $currencyId";
nextpayXMLClient_errorMessage($errorMessage);
return false;
}

$exchangeRate = $currencyData[$index];
if($exchangeRate <= 0)
{
$errorMessage = "Неверное значение для обменного курса платежной системы. ID платежной системы: $currencyId";
nextpayXMLClient_errorMessage($errorMessage);
return false;
}

$quantity = 1;
if($productCountable)
{
if(!nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_quantity", "Количество", $quantity, true))
{
return false;
}
if($quantity <= 0)
{
$errorMessage = "Неверное значение поля 'Количество'";
nextpayXMLClient_errorMessage($errorMessage);
return false;
}
}
$cost = $quantity * $productPrice * $exchangeRate;
$cost = nextpayXMLClient_formatCostValue($cost);
if($cost <= 0)
{
$errorMessage = "Неверное значение стоимости заказа";
nextpayXMLClient_errorMessage($errorMessage);
return false;
}

$url = NEXTPAY_XML_CLIENT_SERVER_URL."?command=xml_api";
$hash = NEXTPAY_XML_CLIENT_PRODUCT_ID.$quantity.NEXTPAY_XML_CLIENT_SELLER_SECRET_KEY;
$hash = sha1($hash);
$url .= "&hash=$hash&quantity=$quantity&product_id=".NEXTPAY_XML_CLIENT_PRODUCT_ID."&volute=$currencyId";
switch ($currencyId)
{
case NEXTPAY_XML_CLIENT_KIWI_MOBILE_CURRENCY:
{
$kiwiBillToAccount = nextpayXMLClient_getRequestValue("nextpayXMLClient_kiwi_bill_to_account");
$kiwiBillToAccount = nextpayXMLClient_prepareURLParam($kiwiBillToAccount);
$url .= "&kiwi_bill_to_account=$kiwiBillToAccount";
break;
}
case NEXTPAY_XML_CLIENT_WMR_TERM_CURRENCY:
{
$param = nextpayXMLClient_getRequestValue("nextpayXMLClient_pay_code");
$param = nextpayXMLClient_prepareURLParam($param);
$url .= "&pay_code=$param";

$param = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_kiosk_id");
$param = nextpayXMLClient_prepareURLParam($param);
$url .= "&atm_kiosk_id=$param";

$param = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_d");
$param = nextpayXMLClient_prepareURLParam($param);
$url .= "&atm_date_d=$param";

$param = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_m");
$param = nextpayXMLClient_prepareURLParam($param);
$url .= "&atm_date_m=$param";

$param = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_y");
$param = nextpayXMLClient_prepareURLParam($param);
$url .= "&atm_date_y=$param";

break;

}
}
nextpayXMLClient_getFormAttributes($productData, $url);
$response = nextpayXMLClient_getServerResponse($url);
if($response == null)
{
return false;
}
else
{
$result = $response['result'];
$data = $response['data'];
$comment = $response['comment'];
switch ($result)
{
case NEXTPAY_XML_API_ERROR_SUCCESS:
{
switch($currencyId)
{
case NEXTPAY_XML_CLIENT_KIWI_CURRENCY:
{
nextpayXMLClient_printKIWIOrder(
$data,
$productPrice,
$cost,
$productCountable,
$exchangeRate,
$productName);
break;
}
case NEXTPAY_XML_CLIENT_BEELINE_CURRENCY:
{
$data = nextpayXMLClient_convFromUTF($data);
nextpayXMLClient_printBeelineOrder($data, $beelineNumber);
break;
}
case NEXTPAY_XML_CLIENT_KIWI_MOBILE_CURRENCY:
{
$data = nextpayXMLClient_convFromUTF($data);
nextpayXMLClient_printKIWIBill($data);
break;
}
default:
{
echo "";
break;
}
}
return true;
}
default:
{
$errorMessage = "$comment Код ошибки: $result";
$errorMessage = nextpayXMLClient_htmlEncode($errorMessage);
nextpayXMLClient_errorMessage($errorMessage);
return false;
}
}
}
}

//Форма заказа
function nextpayXMLClient_showForm()
{
$errorMessage = null;
$productData = nextpayXMLClient_getProductData($errorMessage);
if($productData == null)
{
if($errorMessage == null)
{
$errorMessage = "Не удалось получить данные от сервера";
}
nextpayXMLClient_errorMessage($errorMessage);
return;
}
$key = 'error';
if(array_key_exists($key, $productData))
{
$errorMessage = $productData['error'];
nextpayXMLClient_errorMessage($errorMessage);
return;
}
$productName = $productData['name'];
$productPrice = $productData['price'];
$productCountable = $productData['countable'];

$action = null;
nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_action", "", $action, false);
$initAction = $action != NEXTPAY_XML_CLIENT_ACTION_BUY && $action != NEXTPAY_XML_CLIENT_ACTION_RECALC;

$priceCurrency = NEXTPAY_XML_CLIENT_PRODUCT_PRICE_CURRENCY;
$currencyId = null;
if(!nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_currency", "Валюта", $currencyId, false))
{
$currencyId = NEXTPAY_XML_CLIENT_DEFAULT_CURRENCY;
}

$errorMessage = null;
$rates = nextpayXMLClient_getRates($errorMessage);
if($rates == null)
{
if($errorMessage == null)
{
$errorMessage = "Не удалось получить данные от сервера курсов";
}
nextpayXMLClient_errorMessage($errorMessage);
return;
}

if(!array_key_exists($currencyId, $rates))
{
$errorMessage = "Неверный ID платежной системы: $currencyId";
nextpayXMLClient_errorMessage($errorMessage);
return;
}

$currencyData = $rates[$currencyId];
$index = "rate";
if(!array_key_exists($index, $currencyData))
{
$errorMessage = "Неизвестен обменный курс для платежной системы. ID системы: $currencyId";
nextpayXMLClient_errorMessage($errorMessage);
return;
}
$exchangeRate = $currencyData[$index];
if($exchangeRate <= 0)
{
$errorMessage = "Неверное значение для обменного курса платежной системы. ID системы: $currencyId";
nextpayXMLClient_errorMessage($errorMessage);
return;
}
$exchangeRateRev = 1 / $exchangeRate;
$exchangeRateRev = nextpayXMLClient_formatCostValue($exchangeRateRev);

$index = "description";
$currencyDescr = $currencyData[$index];
$currencyDescr = nextpayXMLClient_htmlEncode($currencyDescr);
nextpayXMLClient_onQuantityChangeJS($productPrice, $exchangeRate, $currencyDescr);

nextpayXMLClient_onCurrencyChangeJS();

$quantity = null;
if($productCountable)
{
if(!nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_quantity", "Количество", $quantity, false))
{
if($initAction)
{
$quantity = 1;
}
}
}
else
{
$quantity = 1;
}
$cost = null;
if($quantity != null)
{
$cost = $exchangeRate * $quantity * $productPrice;
$cost = nextpayXMLClient_formatCostValue($cost). " ".$currencyDescr. " (курс $exchangeRateRev)";
}
$actionParam = NEXTPAY_XML_CLIENT_ACTION_BUY;
$reqFieldMark = NEXTPAY_XML_CLIENT_REQ_FIELD_MARK;
nextpayXMLClient_echoContent("
 

");
switch ($currencyId)
{
case NEXTPAY_XML_CLIENT_KIWI_MOBILE_CURRENCY;
{
nextpayXMLClient_kiwiBillForm();
nextpayXMLClient_echoContent("

");
break;
}
case NEXTPAY_XML_CLIENT_WMR_TERM_CURRENCY:
{
nextpayXMLClient_wmTermForm($productData);
nextpayXMLClient_echoContent("

");
break;
}
}
nextpayXMLClient_echoContent("









");
nextpayXMLClient_showFormAttributes($productData);
if($productCountable)
{
nextpayXMLClient_echoContent("


");
}
nextpayXMLClient_echoContent("


");
nextpayXMLClient_echoContent("





Продукт
$productName
Цена
$productPrice $priceCurrency
Количество $reqFieldMark$reqFieldMark
onkeyup=\"nextpayXMLClient_onQuantityChange(this)\"
type='text'
id='nextpayXMLClient_quantity'
name='nextpayXMLClient_quantity'
maxlength='6'
value=\"$quantity\"/>

Оплата ");
nextpayXMLClient_showRatesHTML($rates, $currencyId);
nextpayXMLClient_echoContent("
Стоимость

$cost

");
nextpayXMLClient_echoContent("

 

 

$reqFieldMark Поля обязательные для заполнения


$reqFieldMark$reqFieldMark Заполните поле \"Количество\".
Пересчет стоимости заказа производится автоматически в зависимости от поля \"Оплата\" по курсу

$reqFieldMark$reqFieldMark$reqFieldMark При оплате данной валютой взимается дополнительная комиссия");
}

/**
* Закачивает содержимое файла по URL в строку
*
* @param string $url URL файла
* @param int $maxlength Макс длина файла
* @param int $timeout Таймаут ожидания запроса. Должен быть > 0 или -1, чтобы действовать.
* Если == -1, то используется значение NEXTPAY_XML_CLIENT_SERVER_TIMEOUT
* @param bool $disableWarnings Не выводить сообщения об ошибках
* @return string Содержимое файла или FALSE в случае неудачи
*/
function nextpayXMLClient_getFileContentByURL($url, $maxlength = null, $timeout = -1, $disableWarnings = true)
{
if($timeout == -1)
{
$timeout = NEXTPAY_XML_CLIENT_SERVER_TIMEOUT;
}
$ret = null;
$cxContext = null;
if($timeout > 0)
{
ini_set('default_socket_timeout', $timeout);
}
if($disableWarnings)
{
error_reporting(E_ERROR);
}
if($maxlength == null)
{
$ret = file_get_contents($url, False, $cxContext);
}
else
{
$ret = file_get_contents($url, False, $cxContext, 0, $maxlength);
}
if($ret !== FALSE)
{
if($ret != null)
{
$ret = trim($ret);
}
}
return $ret;
}


function nextpayXMLClient_getRates(&$errorMessage)
{
$url = NEXTPAY_XML_CLIENT_SERVER_URL."?command=rates_product_xml&product_id=".NEXTPAY_XML_CLIENT_PRODUCT_ID;
$xml = nextpayXMLClient_getFileContentByURL($url);
if($xml === FALSE)
{
$errorMessage = "Не удалось установить связь с сервером курсов";
return null;
}
$vals = null;
$index = null;
$p = xml_parser_create();
xml_parse_into_struct($p, $xml, $vals, $index);
xml_parser_free($p);
$ret = array();
$currencyId = null;
$currencyName = null;
$currencyRate = null;
$currencyDesc = null;
foreach ($vals as $key => $value)
{
$array = $value;
$tagName = $array['tag'];
$tagName = strtolower($tagName);
switch($tagName)
{
case "id":
{
$currencyId = $array['value'];
$currencyId = intval($currencyId);
$currencyData = array();
$currencyData['name'] = $currencyName;
$currencyData['rate'] = $currencyRate;
$currencyData['description'] = $currencyDesc;
$ret[$currencyId] = $currencyData;
break;
}
case "name":
{
$currencyName = $array['value'];
$currencyName = nextpayXMLClient_convFromUTF($currencyName);
break;
}
case "rate":
{
$currencyRate = $array['value'];
break;
}
case "description":
{
$currencyDesc = $array['value'];
$currencyDesc = nextpayXMLClient_convFromUTF($currencyDesc);
break;
}
case "error":
{
$errorMessage = $array['value'];
$errorMessage = nextpayXMLClient_convFromUTF($errorMessage);
return null;
}
default:
{
break;
}
}
}
return $ret;
}

function nextpayXMLClient_getProductData(&$errorMessage)
{
$url = NEXTPAY_XML_CLIENT_SERVER_URL."?command=product_xml&product_id=".NEXTPAY_XML_CLIENT_PRODUCT_ID;
$xml = nextpayXMLClient_getFileContentByURL($url);
if($xml === FALSE)
{
$errorMessage = "Не удалось установить связь с сервером";
return null;
}
$vals = null;
$index = null;
$p = xml_parser_create();
xml_parse_into_struct($p, $xml, $vals, $index);
xml_parser_free($p);
$ret = array();
$formAttributes = array();
$formAttribuiteId = null;
foreach ($vals as $key => $value)
{
$array = $value;
$tagName = $array['tag'];
$tagName = strtolower($tagName);
switch($tagName)
{
case "price":
{
$productPrice = $array['value'];
$productPrice = nextpayXMLClient_formatCostValue($productPrice);
$ret['price'] = $productPrice;
break;
}
case "countable":
case "name":
case "beeline_prefix":
case "beeline_number":
case "wm_term_form":
case "error":
{
$value = $array['value'];
$value = nextpayXMLClient_convFromUTF($value);
$ret[$tagName] = $value;
break;
}
case "form-attribute":
{
$key = 'attributes';
if(array_key_exists($key, $array))
{
$formAttribuiteId = $array[$key]['ID'];
$attributeData = array();
$attributeData['id'] = $formAttribuiteId;
$attributeData['type'] = $array[$key]['TYPE'];
$attributeData['required'] = $array[$key]['REQUIRED'];
$attributeData['name'] = $array[$key]['NAME'];
$attributeData['hidden'] = $array[$key]['HIDDEN'];
$formAttributes[$formAttribuiteId] = $attributeData;
}
break;
}
case "form-attribute-label":
case "form-attribute-default-value":
case "form-attribute-values-array":
case "form-attribute-labels-array":
{
if(array_key_exists($formAttribuiteId, $formAttributes))
{
$attributeData = $formAttributes[$formAttribuiteId];
$val = $array['value'];
$val = nextpayXMLClient_convFromUTF($val);
$attributeData[$tagName] = $val;
$formAttributes[$formAttribuiteId] = $attributeData;
}
break;
}
default:
{
break;
}
}
}
$ret['form_attributes'] = $formAttributes;
return $ret;
}

function nextpayXMLClient_getFormAttributes($productData, &$url)
{
$formAttributes = $productData['form_attributes'];
foreach ($formAttributes as $key => $row)
{
$attrName = $row["name"];
$attrName = urlencode($attrName);
$attrValue = nextpayXMLClient_getRequestValue($attrName);
$attrValue = nextpayXMLClient_prepareURLParam($attrValue);
$url .= "&$attrName=$attrValue";
}
}

function nextpayXMLClient_showFormAttributes($productData)
{
$formAttributes = $productData['form_attributes'];
$reqField = NEXTPAY_XML_CLIENT_REQ_FIELD_MARK;
foreach ($formAttributes as $key => $row)
{
$attrId = $key;
$attrId = intval($attrId);

$attrType = $row["type"];
$attrType = intval($attrType);

$attrRequired = $row["required"];
$attrRequired = intval($attrRequired);

$attrHidden = $row["hidden"];
$attrHidden = intval($attrHidden);

$attrName = $row["name"];
$attrName = nextpayXMLClient_htmlEncode($attrName);

$attrLabel = $row["form-attribute-label"];
$attrLabel = nextpayXMLClient_htmlEncode($attrLabel);

$attrDefaultValue = $row["form-attribute-default-value"];
$attrDefaultValue = nextpayXMLClient_htmlEncode($attrDefaultValue);

$attrValues = $row["form-attribute-values-array"];

$attrLabels = $row["form-attribute-labels-array"];

$attrValue = nextpayXMLClient_getRequestValue($attrName, false);
if($attrValue == null)
{
$attrValue = $attrDefaultValue;
}
$attrValueEnc = nextpayXMLClient_htmlEncode($attrValue);

if($attrHidden)
{
nextpayXMLClient_echoContent("

");
}
else
{
nextpayXMLClient_echoContent("$attrLabel");
if($attrRequired)
{
nextpayXMLClient_echoContent(" ");
nextpayXMLClient_echoContent($reqField);
}
nextpayXMLClient_echoContent("");
switch ($attrType)
{
case NEXTPAY_XML_API_ATTR_TYPE_ARRAY:
{
nextpayXMLClient_showSelectOptions($attrName, $attrValue, $attrValues, $attrLabels, $attrLabel);
break;
}
default:
{
nextpayXMLClient_echoContent(
"");
break;
}
}
nextpayXMLClient_echoContent("");
}
}
}

function nextpayXMLClient_getMiltiValues($string)
{
$ret = explode(NEXTPAY_XML_API_MILTI_OPTIONS_SEPATATOR, $string);
return $ret;
}

function nextpayXMLClient_showSelectOptions($attrName, $selectedValue, $valuesString, $labelsString, $attrLabel)
{
$values = nextpayXMLClient_getMiltiValues($valuesString);
$labels = nextpayXMLClient_getMiltiValues($labelsString);
if(count($values) == count($labels))
{
$attrName = nextpayXMLClient_htmlEncode($attrName);
$selectedValueEnc = nextpayXMLClient_htmlEncode($selectedValue);
nextpayXMLClient_echoContent(
""); for($i = 0; $i < count($values); $i++) { $label = $labels[$i]; $label = nextpayXMLClient_htmlEncode($label); $value = $values[$i]; $valueEnc = nextpayXMLClient_htmlEncode($value); nextpayXMLClient_echoContent("if($selectedValue == $value) { nextpayXMLClient_echoContent(" selected "); } nextpayXMLClient_echoContent(">$label"); } nextpayXMLClient_echoContent("");
}
else
{
nextpayXMLClient_echoContent("nextpayXMLClient_showSelectOptions error.
Labels count != Values count");
}
}

function nextpayXMLClient_getServerResponse($url)
{
$xml = nextpayXMLClient_getFileContentByURL($url);
if($xml === FALSE)
{
nextpayXMLClient_errorMessage("Не удалось установить связь с сервером");
return null;
}
$vals = null;
$index = null;
$p = xml_parser_create();
xml_parse_into_struct($p, $xml, $vals, $index);
xml_parser_free($p);
$ret = array();
foreach ($vals as $key => $value)
{
$array = $value;
$tagName = $array['tag'];
$tagName = strtolower($tagName);
switch($tagName)
{
case "result":
{
$result = $array['value'];
$result = intval($result);
$ret['result'] = $result;
break;
}
case "data":
{
$data = $array['value'];
$ret['data'] = $data;
break;
}
case "comment":
{
$comment = $array['value'];
$comment = nextpayXMLClient_convFromUTF($comment);
$ret['comment'] = $comment;
break;
}
default:
{
break;
}
}
}
return $ret;
}





function nextpayXMLClient_convFromUTF($text)
{
$text = iconv("UTF-8", NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET, $text);
return $text;
}

function nextpayXMLClient_showRatesHTML($rates, $selectedCurrencyId)
{
nextpayXMLClient_echoContent(""); foreach ($rates as $key => $value) { $array = $value; $currencyName = $array['name']; $currencyName = nextpayXMLClient_htmlEncode($currencyName); $currencyRate = $array['rate']; $currencyRate = 1 / $currencyRate; $currencyRate = nextpayXMLClient_formatCostValue($currencyRate); if($selectedCurrencyId == $key) { nextpayXMLClient_echoContent("$currencyName"); } else { nextpayXMLClient_echoContent("$currencyName"); } } nextpayXMLClient_echoContent("");
}


/**
* Считывает значение целочисленного параметра в запросе
*
* @param string $name Имя параметра в запросе
* @param string $fieldName Имя параметра для отображения ошибки
* @param boolean $mySQLEscape экранировать или нет значение параметра,
* c помощью mysql_escape_string при считывании
* @param Значение параметра, если параметр передан
* и удалось привести его к целому числу
* @return bool true в случае успеха, false в случае неудачи
*/
function nextpayXMLClient_getRequestIntegerValue($name, $fieldName, &$value, $printErrorMessage = true)
{
$value = nextpayXMLClient_getRequestStringValue($name, $fieldName, true, $printErrorMessage);
if($value == null)
{
return false;
}
else
{
if($value == "0")
{
$value = 0;
return true;
}
else
{
$value = intval($value);
if($value == 0)
{
if($printErrorMessage)
{
nextpayXMLClient_errorMessage("Поле '".$fieldName."' не заполнено!");
}
return false;
}
else
{
return true;
}
}
}
}

function nextpayXMLClient_getRequestValue($paramName, $trimInput = true)
{
if(isset($_REQUEST[$paramName]))
{
$ret = $_REQUEST[$paramName];
if($ret != NULL)
{
if($trimInput)
{
$ret = trim($ret);
}
}
$ret = iconv(NEXTPAY_XML_CLIENT_REQUEST_CHARACTER_SET, NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET, $ret);
return $ret;
}
else
{
return NULL;
}
}

function nextpayXMLClient_getRequestStringValue($name, $fieldName, $trimInput = true, $printErrorMessage = true)
{
$value = nextpayXMLClient_getRequestValue($name, $trimInput);
$ret = nextpayXMLClient_checkStringValue($value, $fieldName, $printErrorMessage);
if($ret)
{
return $value;
}
else
{
return null;
}
}

function nextpayXMLClient_checkStringValue($value, $fieldName, $printErrorMessage = true)
{
if($value == "" || $value == null)
{
if($printErrorMessage)
{
nextpayXMLClient_errorMessage ("Поле '".$fieldName."' не заполнено!");
}
return false;
}
else
{
return true;
}
}

function nextpayXMLClient_htmlEncode($string)
{
return htmlentities($string, ENT_COMPAT, NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET);
}


function nextpayXMLClient_errorMessage($message)
{
$cssStyle = NEXTPAY_XML_CLIENT_ERROR_CSS_STYLE;
nextpayXMLClient_echoContent("$message");
}

function nextpayXMLClient_formatCostValue($value)
{
return number_format($value, 2, '.', '');
}

function nextpayXMLClient_onQuantityChangeJS($productPrice, $exchangeRate, $currencyDescr)
{
$exchangeRateRev = 1 / $exchangeRate;
$exchangeRateRev = nextpayXMLClient_formatCostValue($exchangeRateRev);
nextpayXMLClient_echoContent("
");
}

function nextpayXMLClient_onCurrencyChangeJS()
{
$action = NEXTPAY_XML_CLIENT_ACTION_RECALC;
nextpayXMLClient_echoContent("
");
}

function nextpayXMLClient_printKIWIOrder($orderId, $productPrice, $cost, $productCountable, $exchRate, $productName)
{
$orderId = nextpayXMLClient_htmlEncode($orderId);
$priceCurrencyName = NEXTPAY_XML_CLIENT_PRODUCT_PRICE_CURRENCY;
$productPriceRated = $productPrice * $exchRate;
$productPriceRated = nextpayXMLClient_formatCostValue($productPriceRated);
nextpayXMLClient_echoContent("

Спасибо за заказ! Для получения заказа оплатите заказ с помощью терминала ОСМП.

 

При оплате заказа введите этот код: $orderId
 

");
if($productCountable)
{
nextpayXMLClient_echoContent("

В зависимости от внесённой суммы, вы получите товар из расчёта $productPriceRated
$priceCurrencyName за $productName. С округлением до полного количества $productName.

");
}
else
{
nextpayXMLClient_echoContent("

При оплате заказа Вам необходимо внести сумму не менее $cost $priceCurrencyName

");
}
nextpayXMLClient_echoContent("

В дальнейшем вы можете ипользовать этот же код $orderId при оплате, не оформляя заказ на nextpay.ru заново.

 

За более детальной информацией по оплате через терминалы ОСМП обращайтесь на сайт ОСМП
http://www.osmp.ru/

");
}

function nextpayXMLClient_printBeelineOrder($data, $number)
{
nextpayXMLClient_echoContent("

Для оплаты заказа отправьте SMS c текстом $data на номер $number

 

SMS бесплатная, деньги спишутся после успешной оплаты заказа.

 


Услуга доступна для абонентов Билайн, физических лиц тарифных планов любой системы расчётов.


Для абонентов предоплатной системы расчётов сумма платежа будет списана с основного счёта или со Специального Авансового Счёта, если на нем есть средства.


Абонентам постоплатной системы расчётов для использования услуги необходимо иметь средства на Специальном Авансовом Счёте, так как денежные средства могут быть списаны только с него.


После оплаты на счете должно оставаться не менее 10 руб.


Дополнительную информацию читайте на сайте Билайн.

");
}

function nextpayXMLClient_printKIWIBill($data)
{
nextpayXMLClient_echoContent($data);
$currencyId = NEXTPAY_XML_CLIENT_KIWI_MOBILE_CURRENCY;
nextpayXMLClient_echoContent("

 



 

 

 

");
}



function nextpayXMLClient_kiwiBillForm()
{
$inputName = "nextpayXMLClient_kiwi_bill_to_account";
$toAccountLen = NEXTPAY_CORE_KIWI_XML_API_TO_ACCOUNT_LEN;
$toAccount = nextpayXMLClient_getRequestValue($inputName);
$toAccount = nextpayXMLClient_htmlEncode($toAccount);
$reqSymbol = NEXTPAY_XML_CLIENT_REQ_FIELD_MARK;
nextpayXMLClient_echoContent(
"








 


Номер телефона $reqSymbol





8
style='width:100%'
maxlength='$toAccountLen'
type=\"text\"
name=\"$inputName\"
value=\"$toAccount\"/>
Введите номер Вашего мобильного телефона (десять цифр, без кода страны и пробелов)
(Ваш логин в личном кабинете QIWI. Если Вы не зарегистрированны в личном кабинете,
то можете зарегистрироваться в самом терминале и Вам придёт SMS сообщение с паролем
для входа в личный кабинет).

");
}

function nextpayXMLClient_wmTermForm($productData)
{
$reqSymbol = NEXTPAY_XML_CLIENT_REQ_FIELD_MARK;

$payCode = nextpayXMLClient_getRequestValue("nextpayXMLClient_pay_code");
$payCode = nextpayXMLClient_htmlEncode($payCode);

$atmDateD = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_d");
$atmDateD = nextpayXMLClient_htmlEncode($atmDateD);

$atmDateM = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_m");
$atmDateM = nextpayXMLClient_htmlEncode($atmDateM);

$atmDateY = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_y");
$atmDateY = nextpayXMLClient_htmlEncode($atmDateY);

$atmKioskId = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_kiosk_id");
$atmKioskId = nextpayXMLClient_htmlEncode($atmKioskId);

$form = $productData['wm_term_form'];
$form = str_replace("%p1", $reqSymbol, $form);
$form = str_replace("%p2", $payCode, $form);
$form = str_replace("%p3", $atmKioskId, $form);
$form = str_replace("%p4", $atmDateD, $form);
$form = str_replace("%p5", $atmDateM, $form);
$form = str_replace("%p6", $atmDateY, $form);

nextpayXMLClient_echoContent($form);
}


function nextpayXMLClient_echoContent($string)
{
if(NEXTPAY_XML_CLIENT_ECHO_IN_STRING)
{
global $nextpayXMLClientResponse;
$nextpayXMLClientResponse .= $string;
}
else
{
$string = iconv(NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET, NEXTPAY_XML_CLIENT_RESPONSE_CHARACTER_SET, $string);
echo $string;
}
}

/**
* Подготавливает параметр к передаче в запрос на сервер nextpay через URL
*
* nextpay всегда принимает данные в запросе в кодировке windows-1251!
*
* @param string $paramValue Параметр (имя или значение)
* @return string Подготовленный параметр
*/
function nextpayXMLClient_prepareURLParam(&$paramValue)
{
$paramValue = iconv(NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET, 'windows-1251', $paramValue);
$paramValue = urlencode($paramValue);
return $paramValue;
}


//Вызов тела скрипта
nextpayXMLClient_Main();
$tpl->SetResult( 'content', ob_get_clean() );
?>

 

Изменено пользователем Arrow

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Столкнулись с такой вот проблемой, сделали некст пай (http://prntscr.com/c875h2 тут выдает  Произошла ошибка при обработке запроса сервером продавца

нашли скрипт Nextpay.php но я что то не оч понимаю что куда вводить, может кто то подскажет или же есть какойто гайд ?

if (!defined("STRESSWEB"))

die("Access denied...");

ob_start();

 

//----------------------------------- Настройки скрипта ----------------------------

 

//URL сервера nextpay, откуда брать курсы через XML, слать запрос на формирование заказа и.т.д

define('NEXTPAY_XML_CLIENT_SERVER_URL', 'http://nextpay.ru/shop/shop/index.php');

 

//Секретный ключ продавца. Смотри настройки продавца в nextpay

define('NEXTPAY_XML_CLIENT_SELLER_SECRET_KEY', 'ключ');

 

//ID продукта. Смотри настройки продукта в nextpay

define('NEXTPAY_XML_CLIENT_PRODUCT_ID', 'товар');

 

//Таймаут запроса в секундах. Если нужен бесконечный таймаут, то используйте значение <= 0

define('NEXTPAY_XML_CLIENT_SERVER_TIMEOUT', 60);

 

 

 

//Кодировка запроса

define('NEXTPAY_XML_CLIENT_REQUEST_CHARACTER_SET', 'windows-1251');

 

//Кодировка ответа

define('NEXTPAY_XML_CLIENT_RESPONSE_CHARACTER_SET', 'windows-1251');

 

 

 

//Вставляем скрипт в страницу продавца(NEXTPAY_XML_CLIENT_EMBEDDED == true) или

//отображаем, как отдельную страницу (NEXTPAY_XML_CLIENT_EMBEDDED == false)

define('NEXTPAY_XML_CLIENT_EMBEDDED', false);

 

 

//Выводить содержимое в стоку

define('NEXTPAY_XML_CLIENT_ECHO_IN_STRING', false);

 

 

//Валюта для продукта по умолчанию. Смотри ниже список валют

define('NEXTPAY_XML_CLIENT_DEFAULT_CURRENCY', 2);//WMR

 

//Как помечать обязательные для заполнения поля

define('NEXTPAY_XML_CLIENT_REQ_FIELD_MARK', '*');

 

//CSS стиль для отображения сообщения об ошибке

define('NEXTPAY_XML_CLIENT_ERROR_CSS_STYLE', "style='color:red'");

 

//----------------------------------- Конец настроек скрипта ----------------------------

 

//Кодировка скрипта. Не менять!

define('NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET', 'windows-1251');

 

 

//IDы действий -- не менять!

define('NEXTPAY_XML_CLIENT_ACTION_BUY', 1);

define('NEXTPAY_XML_CLIENT_ACTION_RECALC', 2);

 

//Название валюты цены продукта -- только для отображения

define('NEXTPAY_XML_CLIENT_PRODUCT_PRICE_CURRENCY', 'руб.');

 

// IDы валют

// 2 WMR

// 3 WMZ

// 5 Yandex Money

// 6 WMU

// 7 WME

// 9 PLIMUS

// 10 Чек Paymer R

// 11 Чек Paymer Z

// 12 Чек Paymer U

// 13 Kiwi

// 14 Робокасса Yandex Money

// 15 Робокасса RBK Money

// 16 Робокасса Money Mail

// 17 Робокасса Единый кошелёк

// 18 Робокасса RUR WebCreds

// 19 Билайн «Мобильный платеж»

// 22 Киви. Выставление счета на телефон.

 

//IDы платежных систем Не менять!

define('NEXTPAY_XML_CLIENT_BEELINE_CURRENCY', 19);

define('NEXTPAY_XML_CLIENT_WMR_TERM_CURRENCY', 21);

define('NEXTPAY_XML_CLIENT_KIWI_MOBILE_CURRENCY', 22);

 

//Число цифр в телефоне при оплате с помощью КИВИ. Не менять!

define('NEXTPAY_CORE_KIWI_XML_API_TO_ACCOUNT_LEN', 10);

 

 

//Коды возвратов сервера nextpay. Не менять!

define('NEXTPAY_XML_API_ERROR_INTERNAL_ERROR', -1);

define('NEXTPAY_XML_API_ERROR_SUCCESS', 0);

define('NEXTPAY_XML_API_ERROR_PRODUCT_ID_NOT_PASSED', 1);

define('NEXTPAY_XML_API_ERROR_PRODUCT_NOT_FOUND', 2);

define('NEXTPAY_XML_API_ERROR_INVALID_PRICE_VALUE', 3);

define('NEXTPAY_XML_API_ERROR_PRODUCT_CURRENCY_DISABLED', 4);

define('NEXTPAY_XML_API_ERROR_ORDER_COST_INVALID', 5);

define('NEXTPAY_XML_API_ERROR_MIN_ORDER_COST', 6);

define('NEXTPAY_XML_API_ERROR_REQ_PARAM_NOT_PASSED', 7);

define('NEXTPAY_XML_API_ERROR_VALIDATION_BY_SELLER_FAILED', 8);

define('NEXTPAY_XML_API_ERROR_CURRENCY_NOT_SUPPORTED', 9);

define('NEXTPAY_XML_API_ERROR_CURRENCY_NOT_PASSED', 10);

define('NEXTPAY_XML_API_ERROR_CHECK_SUM', 11);

define('NEXTPAY_XML_API_ERROR_ORDER_COST_GENERAL_INVALID', 12);

define('NEXTPAY_XML_API_ERROR_INVALID_PRODUCT_COUNT_VALUE', 13);

define('NEXTPAY_XML_API_ERROR_INVALID_KIWI_BILL_TO_ACCOUNT', 14);

 

//Не менять!

define('NEXTPAY_XML_API_ATTR_TYPE_INT', 1);

define('NEXTPAY_XML_API_ATTR_TYPE_STRING', 2);

define('NEXTPAY_XML_API_ATTR_TYPE_ARRAY', 3);

 

define('NEXTPAY_XML_API_MILTI_OPTIONS_SEPATATOR', ";");

 

 

$nextpayXMLClientResponse = "";

 

//"Тело" скрипта

function nextpayXMLClient_Main()

{

if(!NEXTPAY_XML_CLIENT_EMBEDDED && !NEXTPAY_XML_CLIENT_ECHO_IN_STRING)

{

 

header("Content-type: text/html;charset=".NEXTPAY_XML_CLIENT_RESPONSE_CHARACTER_SET);

 

//Отключаем кэширование страницы

 

// expires in the past

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

 

// Last modified, right now

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

 

// Prevent caching, HTTP/1.1

header("Cache-Control: no-cache, must-revalidate");

 

// Prevent caching, HTTP/1.0

header("Pragma: no-cache");

 

nextpayXMLClient_echoContent("");

}

$action = null;

nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_action", "", $action, false);

switch ($action)

{

case NEXTPAY_XML_CLIENT_ACTION_BUY:

{

if(!nextpayXMLClient_buyRequest())

{

nextpayXMLClient_showForm();

}

break;

}

case NEXTPAY_XML_CLIENT_ACTION_RECALC:

{

nextpayXMLClient_showForm();

break;

}

default:

{

nextpayXMLClient_showForm();

break;

}

}

if(!NEXTPAY_XML_CLIENT_EMBEDDED)

{

nextpayXMLClient_echoContent("");

}

}

 

/**

* Отсылка запроса на формирование заказа на сервер nextpay.ru

*

*/

function nextpayXMLClient_buyRequest()

{

$errorMessage = null;

$productData = nextpayXMLClient_getProductData($errorMessage);

if($productData == null)

{

if($errorMessage == null)

{

$errorMessage = "Не удалось получить данные от сервера";

}

nextpayXMLClient_errorMessage($errorMessage);

return false;

}

$key = "error";

if(array_key_exists($key, $productData))

{

$errorMessage = $productData['error'];

nextpayXMLClient_errorMessage($errorMessage);

return false;

}

$productName = $productData['name'];

$productPrice = $productData['price'];

$productCountable = $productData['countable'];

$beelineNumber = $productData['beeline_number'];

 

$currencyId = null;

if(!nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_currency", "Оплата", $currencyId, true))

{

return false;

}

 

$errorMessage = null;

$rates = nextpayXMLClient_getRates($errorMessage);

if($rates == null)

{

if($errorMessage == null)

{

$errorMessage = "Не удалось получить данные от сервера курсов";

}

nextpayXMLClient_errorMessage($errorMessage);

return false;

}

if(!array_key_exists($currencyId, $rates))

{

$errorMessage = "Неверный ID платежной системы: $currencyId";

nextpayXMLClient_errorMessage($errorMessage);

return false;

}

 

$index = "rate";

$currencyData = $rates[$currencyId];

if(!array_key_exists($index, $currencyData))

{

$errorMessage = "Неизвестен обменный курс для платежной системы. ID платежной системы: $currencyId";

nextpayXMLClient_errorMessage($errorMessage);

return false;

}

 

$exchangeRate = $currencyData[$index];

if($exchangeRate <= 0)

{

$errorMessage = "Неверное значение для обменного курса платежной системы. ID платежной системы: $currencyId";

nextpayXMLClient_errorMessage($errorMessage);

return false;

}

 

$quantity = 1;

if($productCountable)

{

if(!nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_quantity", "Количество", $quantity, true))

{

return false;

}

if($quantity <= 0)

{

$errorMessage = "Неверное значение поля 'Количество'";

nextpayXMLClient_errorMessage($errorMessage);

return false;

}

}

$cost = $quantity * $productPrice * $exchangeRate;

$cost = nextpayXMLClient_formatCostValue($cost);

if($cost <= 0)

{

$errorMessage = "Неверное значение стоимости заказа";

nextpayXMLClient_errorMessage($errorMessage);

return false;

}

 

$url = NEXTPAY_XML_CLIENT_SERVER_URL."?command=xml_api";

$hash = NEXTPAY_XML_CLIENT_PRODUCT_ID.$quantity.NEXTPAY_XML_CLIENT_SELLER_SECRET_KEY;

$hash = sha1($hash);

$url .= "&hash=$hash&quantity=$quantity&product_id=".NEXTPAY_XML_CLIENT_PRODUCT_ID."&volute=$currencyId";

switch ($currencyId)

{

case NEXTPAY_XML_CLIENT_KIWI_MOBILE_CURRENCY:

{

$kiwiBillToAccount = nextpayXMLClient_getRequestValue("nextpayXMLClient_kiwi_bill_to_account");

$kiwiBillToAccount = nextpayXMLClient_prepareURLParam($kiwiBillToAccount);

$url .= "&kiwi_bill_to_account=$kiwiBillToAccount";

break;

}

case NEXTPAY_XML_CLIENT_WMR_TERM_CURRENCY:

{

$param = nextpayXMLClient_getRequestValue("nextpayXMLClient_pay_code");

$param = nextpayXMLClient_prepareURLParam($param);

$url .= "&pay_code=$param";

 

$param = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_kiosk_id");

$param = nextpayXMLClient_prepareURLParam($param);

$url .= "&atm_kiosk_id=$param";

 

$param = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_d");

$param = nextpayXMLClient_prepareURLParam($param);

$url .= "&atm_date_d=$param";

 

$param = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_m");

$param = nextpayXMLClient_prepareURLParam($param);

$url .= "&atm_date_m=$param";

 

$param = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_y");

$param = nextpayXMLClient_prepareURLParam($param);

$url .= "&atm_date_y=$param";

 

break;

 

}

}

nextpayXMLClient_getFormAttributes($productData, $url);

$response = nextpayXMLClient_getServerResponse($url);

if($response == null)

{

return false;

}

else

{

$result = $response['result'];

$data = $response['data'];

$comment = $response['comment'];

switch ($result)

{

case NEXTPAY_XML_API_ERROR_SUCCESS:

{

switch($currencyId)

{

case NEXTPAY_XML_CLIENT_KIWI_CURRENCY:

{

nextpayXMLClient_printKIWIOrder(

$data,

$productPrice,

$cost,

$productCountable,

$exchangeRate,

$productName);

break;

}

case NEXTPAY_XML_CLIENT_BEELINE_CURRENCY:

{

$data = nextpayXMLClient_convFromUTF($data);

nextpayXMLClient_printBeelineOrder($data, $beelineNumber);

break;

}

case NEXTPAY_XML_CLIENT_KIWI_MOBILE_CURRENCY:

{

$data = nextpayXMLClient_convFromUTF($data);

nextpayXMLClient_printKIWIBill($data);

break;

}

default:

{

echo "";

break;

}

}

return true;

}

default:

{

$errorMessage = "$comment Код ошибки: $result";

$errorMessage = nextpayXMLClient_htmlEncode($errorMessage);

nextpayXMLClient_errorMessage($errorMessage);

return false;

}

}

}

}

 

//Форма заказа

function nextpayXMLClient_showForm()

{

$errorMessage = null;

$productData = nextpayXMLClient_getProductData($errorMessage);

if($productData == null)

{

if($errorMessage == null)

{

$errorMessage = "Не удалось получить данные от сервера";

}

nextpayXMLClient_errorMessage($errorMessage);

return;

}

$key = 'error';

if(array_key_exists($key, $productData))

{

$errorMessage = $productData['error'];

nextpayXMLClient_errorMessage($errorMessage);

return;

}

$productName = $productData['name'];

$productPrice = $productData['price'];

$productCountable = $productData['countable'];

 

$action = null;

nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_action", "", $action, false);

$initAction = $action != NEXTPAY_XML_CLIENT_ACTION_BUY && $action != NEXTPAY_XML_CLIENT_ACTION_RECALC;

 

$priceCurrency = NEXTPAY_XML_CLIENT_PRODUCT_PRICE_CURRENCY;

$currencyId = null;

if(!nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_currency", "Валюта", $currencyId, false))

{

$currencyId = NEXTPAY_XML_CLIENT_DEFAULT_CURRENCY;

}

 

$errorMessage = null;

$rates = nextpayXMLClient_getRates($errorMessage);

if($rates == null)

{

if($errorMessage == null)

{

$errorMessage = "Не удалось получить данные от сервера курсов";

}

nextpayXMLClient_errorMessage($errorMessage);

return;

}

 

if(!array_key_exists($currencyId, $rates))

{

$errorMessage = "Неверный ID платежной системы: $currencyId";

nextpayXMLClient_errorMessage($errorMessage);

return;

}

 

$currencyData = $rates[$currencyId];

$index = "rate";

if(!array_key_exists($index, $currencyData))

{

$errorMessage = "Неизвестен обменный курс для платежной системы. ID системы: $currencyId";

nextpayXMLClient_errorMessage($errorMessage);

return;

}

$exchangeRate = $currencyData[$index];

if($exchangeRate <= 0)

{

$errorMessage = "Неверное значение для обменного курса платежной системы. ID системы: $currencyId";

nextpayXMLClient_errorMessage($errorMessage);

return;

}

$exchangeRateRev = 1 / $exchangeRate;

$exchangeRateRev = nextpayXMLClient_formatCostValue($exchangeRateRev);

 

$index = "description";

$currencyDescr = $currencyData[$index];

$currencyDescr = nextpayXMLClient_htmlEncode($currencyDescr);

nextpayXMLClient_onQuantityChangeJS($productPrice, $exchangeRate, $currencyDescr);

 

nextpayXMLClient_onCurrencyChangeJS();

 

$quantity = null;

if($productCountable)

{

if(!nextpayXMLClient_getRequestIntegerValue("nextpayXMLClient_quantity", "Количество", $quantity, false))

{

if($initAction)

{

$quantity = 1;

}

}

}

else

{

$quantity = 1;

}

$cost = null;

if($quantity != null)

{

$cost = $exchangeRate * $quantity * $productPrice;

$cost = nextpayXMLClient_formatCostValue($cost). " ".$currencyDescr. " (курс $exchangeRateRev)";

}

$actionParam = NEXTPAY_XML_CLIENT_ACTION_BUY;

$reqFieldMark = NEXTPAY_XML_CLIENT_REQ_FIELD_MARK;

nextpayXMLClient_echoContent("

 

");

switch ($currencyId)

{

case NEXTPAY_XML_CLIENT_KIWI_MOBILE_CURRENCY;

{

nextpayXMLClient_kiwiBillForm();

nextpayXMLClient_echoContent("

");

break;

}

case NEXTPAY_XML_CLIENT_WMR_TERM_CURRENCY:

{

nextpayXMLClient_wmTermForm($productData);

nextpayXMLClient_echoContent("

");

break;

}

}

nextpayXMLClient_echoContent("

 

 

 

 

 

 

 

");

nextpayXMLClient_showFormAttributes($productData);

if($productCountable)

{

nextpayXMLClient_echoContent("

 

 

");

}

nextpayXMLClient_echoContent("

 

 

");

nextpayXMLClient_echoContent("

 

 

 

 

 

Продукт

$productName

Цена

$productPrice $priceCurrency

Количество $reqFieldMark$reqFieldMark

onkeyup=\"nextpayXMLClient_onQuantityChange(this)\"

type='text'

id='nextpayXMLClient_quantity'

name='nextpayXMLClient_quantity'

maxlength='6'

value=\"$quantity\"/>

 

Оплата ");

nextpayXMLClient_showRatesHTML($rates, $currencyId);

nextpayXMLClient_echoContent("

Стоимость

$cost

");

nextpayXMLClient_echoContent("

 

 

$reqFieldMark Поля обязательные для заполнения

 

 

$reqFieldMark$reqFieldMark Заполните поле \"Количество\".

Пересчет стоимости заказа производится автоматически в зависимости от поля \"Оплата\" по курсу

 

$reqFieldMark$reqFieldMark$reqFieldMark При оплате данной валютой взимается дополнительная комиссия");

}

 

/**

* Закачивает содержимое файла по URL в строку

*

* @param string $url URL файла

* @param int $maxlength Макс длина файла

* @param int $timeout Таймаут ожидания запроса. Должен быть > 0 или -1, чтобы действовать.

* Если == -1, то используется значение NEXTPAY_XML_CLIENT_SERVER_TIMEOUT

* @param bool $disableWarnings Не выводить сообщения об ошибках

* @return string Содержимое файла или FALSE в случае неудачи

*/

function nextpayXMLClient_getFileContentByURL($url, $maxlength = null, $timeout = -1, $disableWarnings = true)

{

if($timeout == -1)

{

$timeout = NEXTPAY_XML_CLIENT_SERVER_TIMEOUT;

}

$ret = null;

$cxContext = null;

if($timeout > 0)

{

ini_set('default_socket_timeout', $timeout);

}

if($disableWarnings)

{

error_reporting(E_ERROR);

}

if($maxlength == null)

{

$ret = file_get_contents($url, False, $cxContext);

}

else

{

$ret = file_get_contents($url, False, $cxContext, 0, $maxlength);

}

if($ret !== FALSE)

{

if($ret != null)

{

$ret = trim($ret);

}

}

return $ret;

}

 

 

function nextpayXMLClient_getRates(&$errorMessage)

{

$url = NEXTPAY_XML_CLIENT_SERVER_URL."?command=rates_product_xml&product_id=".NEXTPAY_XML_CLIENT_PRODUCT_ID;

$xml = nextpayXMLClient_getFileContentByURL($url);

if($xml === FALSE)

{

$errorMessage = "Не удалось установить связь с сервером курсов";

return null;

}

$vals = null;

$index = null;

$p = xml_parser_create();

xml_parse_into_struct($p, $xml, $vals, $index);

xml_parser_free($p);

$ret = array();

$currencyId = null;

$currencyName = null;

$currencyRate = null;

$currencyDesc = null;

foreach ($vals as $key => $value)

{

$array = $value;

$tagName = $array['tag'];

$tagName = strtolower($tagName);

switch($tagName)

{

case "id":

{

$currencyId = $array['value'];

$currencyId = intval($currencyId);

$currencyData = array();

$currencyData['name'] = $currencyName;

$currencyData['rate'] = $currencyRate;

$currencyData['description'] = $currencyDesc;

$ret[$currencyId] = $currencyData;

break;

}

case "name":

{

$currencyName = $array['value'];

$currencyName = nextpayXMLClient_convFromUTF($currencyName);

break;

}

case "rate":

{

$currencyRate = $array['value'];

break;

}

case "description":

{

$currencyDesc = $array['value'];

$currencyDesc = nextpayXMLClient_convFromUTF($currencyDesc);

break;

}

case "error":

{

$errorMessage = $array['value'];

$errorMessage = nextpayXMLClient_convFromUTF($errorMessage);

return null;

}

default:

{

break;

}

}

}

return $ret;

}

 

function nextpayXMLClient_getProductData(&$errorMessage)

{

$url = NEXTPAY_XML_CLIENT_SERVER_URL."?command=product_xml&product_id=".NEXTPAY_XML_CLIENT_PRODUCT_ID;

$xml = nextpayXMLClient_getFileContentByURL($url);

if($xml === FALSE)

{

$errorMessage = "Не удалось установить связь с сервером";

return null;

}

$vals = null;

$index = null;

$p = xml_parser_create();

xml_parse_into_struct($p, $xml, $vals, $index);

xml_parser_free($p);

$ret = array();

$formAttributes = array();

$formAttribuiteId = null;

foreach ($vals as $key => $value)

{

$array = $value;

$tagName = $array['tag'];

$tagName = strtolower($tagName);

switch($tagName)

{

case "price":

{

$productPrice = $array['value'];

$productPrice = nextpayXMLClient_formatCostValue($productPrice);

$ret['price'] = $productPrice;

break;

}

case "countable":

case "name":

case "beeline_prefix":

case "beeline_number":

case "wm_term_form":

case "error":

{

$value = $array['value'];

$value = nextpayXMLClient_convFromUTF($value);

$ret[$tagName] = $value;

break;

}

case "form-attribute":

{

$key = 'attributes';

if(array_key_exists($key, $array))

{

$formAttribuiteId = $array[$key]['ID'];

$attributeData = array();

$attributeData['id'] = $formAttribuiteId;

$attributeData['type'] = $array[$key]['TYPE'];

$attributeData['required'] = $array[$key]['REQUIRED'];

$attributeData['name'] = $array[$key]['NAME'];

$attributeData['hidden'] = $array[$key]['HIDDEN'];

$formAttributes[$formAttribuiteId] = $attributeData;

}

break;

}

case "form-attribute-label":

case "form-attribute-default-value":

case "form-attribute-values-array":

case "form-attribute-labels-array":

{

if(array_key_exists($formAttribuiteId, $formAttributes))

{

$attributeData = $formAttributes[$formAttribuiteId];

$val = $array['value'];

$val = nextpayXMLClient_convFromUTF($val);

$attributeData[$tagName] = $val;

$formAttributes[$formAttribuiteId] = $attributeData;

}

break;

}

default:

{

break;

}

}

}

$ret['form_attributes'] = $formAttributes;

return $ret;

}

 

function nextpayXMLClient_getFormAttributes($productData, &$url)

{

$formAttributes = $productData['form_attributes'];

foreach ($formAttributes as $key => $row)

{

$attrName = $row["name"];

$attrName = urlencode($attrName);

$attrValue = nextpayXMLClient_getRequestValue($attrName);

$attrValue = nextpayXMLClient_prepareURLParam($attrValue);

$url .= "&$attrName=$attrValue";

}

}

 

function nextpayXMLClient_showFormAttributes($productData)

{

$formAttributes = $productData['form_attributes'];

$reqField = NEXTPAY_XML_CLIENT_REQ_FIELD_MARK;

foreach ($formAttributes as $key => $row)

{

$attrId = $key;

$attrId = intval($attrId);

 

$attrType = $row["type"];

$attrType = intval($attrType);

 

$attrRequired = $row["required"];

$attrRequired = intval($attrRequired);

 

$attrHidden = $row["hidden"];

$attrHidden = intval($attrHidden);

 

$attrName = $row["name"];

$attrName = nextpayXMLClient_htmlEncode($attrName);

 

$attrLabel = $row["form-attribute-label"];

$attrLabel = nextpayXMLClient_htmlEncode($attrLabel);

 

$attrDefaultValue = $row["form-attribute-default-value"];

$attrDefaultValue = nextpayXMLClient_htmlEncode($attrDefaultValue);

 

$attrValues = $row["form-attribute-values-array"];

 

$attrLabels = $row["form-attribute-labels-array"];

 

$attrValue = nextpayXMLClient_getRequestValue($attrName, false);

if($attrValue == null)

{

$attrValue = $attrDefaultValue;

}

$attrValueEnc = nextpayXMLClient_htmlEncode($attrValue);

 

if($attrHidden)

{

nextpayXMLClient_echoContent("

 

");

}

else

{

nextpayXMLClient_echoContent("$attrLabel");

if($attrRequired)

{

nextpayXMLClient_echoContent(" ");

nextpayXMLClient_echoContent($reqField);

}

nextpayXMLClient_echoContent("");

switch ($attrType)

{

case NEXTPAY_XML_API_ATTR_TYPE_ARRAY:

{

nextpayXMLClient_showSelectOptions($attrName, $attrValue, $attrValues, $attrLabels, $attrLabel);

break;

}

default:

{

nextpayXMLClient_echoContent(

"");

break;

}

}

nextpayXMLClient_echoContent("");

}

}

}

 

function nextpayXMLClient_getMiltiValues($string)

{

$ret = explode(NEXTPAY_XML_API_MILTI_OPTIONS_SEPATATOR, $string);

return $ret;

}

 

function nextpayXMLClient_showSelectOptions($attrName, $selectedValue, $valuesString, $labelsString, $attrLabel)

{

$values = nextpayXMLClient_getMiltiValues($valuesString);

$labels = nextpayXMLClient_getMiltiValues($labelsString);

if(count($values) == count($labels))

{

$attrName = nextpayXMLClient_htmlEncode($attrName);

$selectedValueEnc = nextpayXMLClient_htmlEncode($selectedValue);

nextpayXMLClient_echoContent(

""); for($i = 0; $i < count($values); $i++) { $label = $labels[$i]; $label = nextpayXMLClient_htmlEncode($label); $value = $values[$i]; $valueEnc = nextpayXMLClient_htmlEncode($value); nextpayXMLClient_echoContent("if($selectedValue == $value) { nextpayXMLClient_echoContent(" selected "); } nextpayXMLClient_echoContent(">$label"); } nextpayXMLClient_echoContent("");

}

else

{

nextpayXMLClient_echoContent("nextpayXMLClient_showSelectOptions error.

Labels count != Values count");

}

}

 

function nextpayXMLClient_getServerResponse($url)

{

$xml = nextpayXMLClient_getFileContentByURL($url);

if($xml === FALSE)

{

nextpayXMLClient_errorMessage("Не удалось установить связь с сервером");

return null;

}

$vals = null;

$index = null;

$p = xml_parser_create();

xml_parse_into_struct($p, $xml, $vals, $index);

xml_parser_free($p);

$ret = array();

foreach ($vals as $key => $value)

{

$array = $value;

$tagName = $array['tag'];

$tagName = strtolower($tagName);

switch($tagName)

{

case "result":

{

$result = $array['value'];

$result = intval($result);

$ret['result'] = $result;

break;

}

case "data":

{

$data = $array['value'];

$ret['data'] = $data;

break;

}

case "comment":

{

$comment = $array['value'];

$comment = nextpayXMLClient_convFromUTF($comment);

$ret['comment'] = $comment;

break;

}

default:

{

break;

}

}

}

return $ret;

}

 

 

 

 

 

function nextpayXMLClient_convFromUTF($text)

{

$text = iconv("UTF-8", NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET, $text);

return $text;

}

 

function nextpayXMLClient_showRatesHTML($rates, $selectedCurrencyId)

{

nextpayXMLClient_echoContent(""); foreach ($rates as $key => $value) { $array = $value; $currencyName = $array['name']; $currencyName = nextpayXMLClient_htmlEncode($currencyName); $currencyRate = $array['rate']; $currencyRate = 1 / $currencyRate; $currencyRate = nextpayXMLClient_formatCostValue($currencyRate); if($selectedCurrencyId == $key) { nextpayXMLClient_echoContent("$currencyName"); } else { nextpayXMLClient_echoContent("$currencyName"); } } nextpayXMLClient_echoContent("");

}

 

 

/**

* Считывает значение целочисленного параметра в запросе

*

* @param string $name Имя параметра в запросе

* @param string $fieldName Имя параметра для отображения ошибки

* @param boolean $mySQLEscape экранировать или нет значение параметра,

* c помощью mysql_escape_string при считывании

* @param Значение параметра, если параметр передан

* и удалось привести его к целому числу

* @return bool true в случае успеха, false в случае неудачи

*/

function nextpayXMLClient_getRequestIntegerValue($name, $fieldName, &$value, $printErrorMessage = true)

{

$value = nextpayXMLClient_getRequestStringValue($name, $fieldName, true, $printErrorMessage);

if($value == null)

{

return false;

}

else

{

if($value == "0")

{

$value = 0;

return true;

}

else

{

$value = intval($value);

if($value == 0)

{

if($printErrorMessage)

{

nextpayXMLClient_errorMessage("Поле '".$fieldName."' не заполнено!");

}

return false;

}

else

{

return true;

}

}

}

}

 

function nextpayXMLClient_getRequestValue($paramName, $trimInput = true)

{

if(isset($_REQUEST[$paramName]))

{

$ret = $_REQUEST[$paramName];

if($ret != NULL)

{

if($trimInput)

{

$ret = trim($ret);

}

}

$ret = iconv(NEXTPAY_XML_CLIENT_REQUEST_CHARACTER_SET, NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET, $ret);

return $ret;

}

else

{

return NULL;

}

}

 

function nextpayXMLClient_getRequestStringValue($name, $fieldName, $trimInput = true, $printErrorMessage = true)

{

$value = nextpayXMLClient_getRequestValue($name, $trimInput);

$ret = nextpayXMLClient_checkStringValue($value, $fieldName, $printErrorMessage);

if($ret)

{

return $value;

}

else

{

return null;

}

}

 

function nextpayXMLClient_checkStringValue($value, $fieldName, $printErrorMessage = true)

{

if($value == "" || $value == null)

{

if($printErrorMessage)

{

nextpayXMLClient_errorMessage ("Поле '".$fieldName."' не заполнено!");

}

return false;

}

else

{

return true;

}

}

 

function nextpayXMLClient_htmlEncode($string)

{

return htmlentities($string, ENT_COMPAT, NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET);

}

 

 

function nextpayXMLClient_errorMessage($message)

{

$cssStyle = NEXTPAY_XML_CLIENT_ERROR_CSS_STYLE;

nextpayXMLClient_echoContent("$message");

}

 

function nextpayXMLClient_formatCostValue($value)

{

return number_format($value, 2, '.', '');

}

 

function nextpayXMLClient_onQuantityChangeJS($productPrice, $exchangeRate, $currencyDescr)

{

$exchangeRateRev = 1 / $exchangeRate;

$exchangeRateRev = nextpayXMLClient_formatCostValue($exchangeRateRev);

nextpayXMLClient_echoContent("

");

}

 

function nextpayXMLClient_onCurrencyChangeJS()

{

$action = NEXTPAY_XML_CLIENT_ACTION_RECALC;

nextpayXMLClient_echoContent("

");

}

 

function nextpayXMLClient_printKIWIOrder($orderId, $productPrice, $cost, $productCountable, $exchRate, $productName)

{

$orderId = nextpayXMLClient_htmlEncode($orderId);

$priceCurrencyName = NEXTPAY_XML_CLIENT_PRODUCT_PRICE_CURRENCY;

$productPriceRated = $productPrice * $exchRate;

$productPriceRated = nextpayXMLClient_formatCostValue($productPriceRated);

nextpayXMLClient_echoContent("

Спасибо за заказ! Для получения заказа оплатите заказ с помощью терминала ОСМП.

 

При оплате заказа введите этот код: $orderId

 

");

if($productCountable)

{

nextpayXMLClient_echoContent("

В зависимости от внесённой суммы, вы получите товар из расчёта $productPriceRated

$priceCurrencyName за $productName. С округлением до полного количества $productName.

");

}

else

{

nextpayXMLClient_echoContent("

При оплате заказа Вам необходимо внести сумму не менее $cost $priceCurrencyName

");

}

nextpayXMLClient_echoContent("

В дальнейшем вы можете ипользовать этот же код $orderId при оплате, не оформляя заказ на nextpay.ru заново.

 

За более детальной информацией по оплате через терминалы ОСМП обращайтесь на сайт ОСМП

http://www.osmp.ru/

");

}

 

function nextpayXMLClient_printBeelineOrder($data, $number)

{

nextpayXMLClient_echoContent("

Для оплаты заказа отправьте SMS c текстом $data на номер $number

 

SMS бесплатная, деньги спишутся после успешной оплаты заказа.

 

Услуга доступна для абонентов Билайн, физических лиц тарифных планов любой системы расчётов.

Для абонентов предоплатной системы расчётов сумма платежа будет списана с основного счёта или со Специального Авансового Счёта, если на нем есть средства.

Абонентам постоплатной системы расчётов для использования услуги необходимо иметь средства на Специальном Авансовом Счёте, так как денежные средства могут быть списаны только с него.

После оплаты на счете должно оставаться не менее 10 руб.

Дополнительную информацию читайте на сайте Билайн.

");

}

 

function nextpayXMLClient_printKIWIBill($data)

{

nextpayXMLClient_echoContent($data);

$currencyId = NEXTPAY_XML_CLIENT_KIWI_MOBILE_CURRENCY;

nextpayXMLClient_echoContent("

 

 

 

 

 

");

}

 

 

 

function nextpayXMLClient_kiwiBillForm()

{

$inputName = "nextpayXMLClient_kiwi_bill_to_account";

$toAccountLen = NEXTPAY_CORE_KIWI_XML_API_TO_ACCOUNT_LEN;

$toAccount = nextpayXMLClient_getRequestValue($inputName);

$toAccount = nextpayXMLClient_htmlEncode($toAccount);

$reqSymbol = NEXTPAY_XML_CLIENT_REQ_FIELD_MARK;

nextpayXMLClient_echoContent(

"

 

 

 

 

 

 

 

 

 

Номер телефона $reqSymbol

 

 

 

 

 

8

style='width:100%'

maxlength='$toAccountLen'

type=\"text\"

name=\"$inputName\"

value=\"$toAccount\"/>

Введите номер Вашего мобильного телефона (десять цифр, без кода страны и пробелов)

(Ваш логин в личном кабинете QIWI. Если Вы не зарегистрированны в личном кабинете,

то можете зарегистрироваться в самом терминале и Вам придёт SMS сообщение с паролем

для входа в личный кабинет).

");

}

 

function nextpayXMLClient_wmTermForm($productData)

{

$reqSymbol = NEXTPAY_XML_CLIENT_REQ_FIELD_MARK;

 

$payCode = nextpayXMLClient_getRequestValue("nextpayXMLClient_pay_code");

$payCode = nextpayXMLClient_htmlEncode($payCode);

 

$atmDateD = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_d");

$atmDateD = nextpayXMLClient_htmlEncode($atmDateD);

 

$atmDateM = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_m");

$atmDateM = nextpayXMLClient_htmlEncode($atmDateM);

 

$atmDateY = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_date_y");

$atmDateY = nextpayXMLClient_htmlEncode($atmDateY);

 

$atmKioskId = nextpayXMLClient_getRequestValue("nextpayXMLClient_atm_kiosk_id");

$atmKioskId = nextpayXMLClient_htmlEncode($atmKioskId);

 

$form = $productData['wm_term_form'];

$form = str_replace("%p1", $reqSymbol, $form);

$form = str_replace("%p2", $payCode, $form);

$form = str_replace("%p3", $atmKioskId, $form);

$form = str_replace("%p4", $atmDateD, $form);

$form = str_replace("%p5", $atmDateM, $form);

$form = str_replace("%p6", $atmDateY, $form);

 

nextpayXMLClient_echoContent($form);

}

 

 

function nextpayXMLClient_echoContent($string)

{

if(NEXTPAY_XML_CLIENT_ECHO_IN_STRING)

{

global $nextpayXMLClientResponse;

$nextpayXMLClientResponse .= $string;

}

else

{

$string = iconv(NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET, NEXTPAY_XML_CLIENT_RESPONSE_CHARACTER_SET, $string);

echo $string;

}

}

 

/**

* Подготавливает параметр к передаче в запрос на сервер nextpay через URL

*

* nextpay всегда принимает данные в запросе в кодировке windows-1251!

*

* @param string $paramValue Параметр (имя или значение)

* @return string Подготовленный параметр

*/

function nextpayXMLClient_prepareURLParam(&$paramValue)

{

$paramValue = iconv(NEXTPAY_XML_CLIENT_SOURCE_SCRIPT_CHARACTER_SET, 'windows-1251', $paramValue);

$paramValue = urlencode($paramValue);

return $paramValue;

}

 

 

//Вызов тела скрипта

nextpayXMLClient_Main();

$tpl->SetResult( 'content', ob_get_clean() );

?>

 

У них же на офф сайте лежит скрипт. Там настроить кфг, и запрос в базу поменять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У них же на офф сайте лежит скрипт. Там настроить кфг, и запрос в базу поменять.

https://nextpay.ru/gamesdoc.php  ты вот тут? 

ну сейчас попробую розобраться 

спасибо 

еще 1 вопросик там файл nextpay_xml_client.php когда я заполню закинуть в sw  в папку модуль ?

а там еще есть папка типа mysql там 1 файл sql в базу залить ,а остальные файлы (config.php , core.php  delivery.php

main.php validate.php  тоже в модуль или в корень сайта ?

Изменено пользователем Arrow

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

https://nextpay.ru/gamesdoc.php  ты вот тут? 

ну сейчас попробую розобраться 

спасибо 

еще 1 вопросик там файл nextpay_xml_client.php когда я заполню закинуть в sw  в папку модуль ?

а там еще есть папка типа mysql там 1 файл sql в базу залить ,а остальные файлы (config.php , core.php  delivery.php

main.php validate.php  тоже в модуль или в корень сайта ?

Вы не то скачали. 

Скрипты для подключения игрового сервера l2 версии hellbound и выше на Java эмуляторе с поддержкой русских ников

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

короче вроде все сделал как  нужно вроде 

pay.sql залил в базу 

в l2_delivery_config.php прописал 

Секретный ключ продавца

//Доступ к БД заказов
$SQL_SERVER_ITEMS = array("host"=>"185.154.12.56", "db"=>"Тут названия базы прописал ", "login"=>"root", "pass"=>"тут прописал пас от бд");
 
//Доступ к БД заказов
$SQL_SERVER_SMS = array("host"=>"185.154.12.56", "db"=>"Тут названия базы прописал", "login"=>"root", "pass"=>"тут прописал пас от бд");
залил папку wmz на хост 
в л2 некст пая в URL доставки заказа
URL валидации заказа
жму тест заказа  а там 
 Ошибка Не удалось установить соединение с сервером продавца. URL валидации заказа https://bloody-world.ru/wmz/testchar.php?1&character=test1&currency=1&cost_general=30.00&cost=30.00&product_id=7715
Изменено пользователем Arrow

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...