Срочно требуется помощь в php
Значит мне нужно обработать POST запрос от walet one результат должен быть это запись данных в БД mysql с данными
сделала так:
<?php
// Секретный ключ интернет-магазина (настраивается в кабинете)
$skey = "скрытый текст";
// Функция, которая возвращает результат в Единую кассу
///// Дальше идет наш модуль
//
$host="localhost";
$user="test";
$pass="test1."; //установленный вами пароль
$db_name="bd2";
$link=mysql_connect($host,$user,$pass);
mysql_select_db($db_name,$link);
$sql = mysql_query("INSERT INTO `pay` (`number`, `sum`,`state`)
VALUES ('".$_POST["WMI_PAYMENT_NO"]."','".$_POST['WMI_PAYMENT_AMOUNT']."','".$_POST['"WMI_ORDER_STATE']."')");
function print_answer($result, $description)
{
print "WMI_RESULT=" . strtoupper($result) . "&";
print "WMI_DESCRIPTION=" .urlencode($description);
exit();
}
// Проверка наличия необходимых параметров в POST-запросе
if (!isset($_POST["WMI_SIGNATURE"]))
print_answer("Retry", "Отсутствует параметр WMI_SIGNATURE");
if (!isset($_POST["WMI_PAYMENT_NO"]))
print_answer("Retry", "Отсутствует параметр WMI_PAYMENT_NO");
if (!isset($_POST["WMI_ORDER_STATE"]))
print_answer("Retry", "Отсутствует параметр WMI_ORDER_STATE");
// Извлечение всех параметров POST-запроса, кроме WMI_SIGNATURE
foreach($_POST as $name => $value)
{
if ($name !== "WMI_SIGNATURE") $params[$name] = urldecode($value);
}
// Сортировка массива по именам ключей в порядке возрастания
// и формирование сообщения, путем объединения значений формы
uksort($params, "strcasecmp"); $values = "";
foreach($params as $name => $value)
{
$values .= $value;
}
// Формирование подписи для сравнения ее с параметром WMI_SIGNATURE
$signature = base64_encode(pack("H*", md5($values . $skey)));
//Сравнение полученной подписи с подписью W1
if ($signature == $_POST["WMI_SIGNATURE"])
{
if (strtoupper($_POST["WMI_ORDER_STATE"]) == "ACCEPTED")
{
// TODO: Пометить заказ, как «Оплаченный» в системе учета магазина
print_answer("Ok", "Заказ #" . $_POST["WMI_PAYMENT_NO"] . " оплачен!");
}
else
{
// Случилось что-то странное, пришло неизвестное состояние заказа
print_answer("Retry", "Неверное состояние ". $_POST["WMI_ORDER_STATE"]);
}
}
else
{
// Подпись не совпадает, возможно вы поменяли настройки интернет-магазина
print_answer("Retry", "Неверная подпись " . $_POST["WMI_SIGNATURE"]);
}
?>
Но тут проблема
параметр WMI_ORDER_STATE пустой, как будто wallet one его не передает и плюс если платеж не прошел то в бд записывается куча строк с этими данными. как исправить помогите
цена вопроса?
интегрируешь платежную систему? тут так просто подсказать не получится ибо надо читать доки оп API платежной системы - что и когда она шлет.
цена вопроса $50 = пишу крипт + объясняю как оно работает, за безопасность не парься просто вставишь потом свой секретный ключ в строчку которую скажу и доступы поменяешь - все честно )))
заплати фрилансеру. сэкономь время и нервы.