Задать вопрос
dark_firewall
@dark_firewall
Программист C#

Почему $_SESSION не доступна при callback?

Всем здорова, я решил подключить оплату через cryptomus, но он не видит данные из $_SESSION и не добавляет запись в базу, я использую всё как сказано в документации код ниже
$configResult = $db->query("SELECT * FROM `config`");
$config = mysqli_fetch_assoc($configResult);

$lastIdResult = $db->query("SELECT * FROM `payments` ORDER BY id DESC LIMIT 1");
$lastId = mysqli_fetch_assoc($lastIdResult);

$payment = \Cryptomus\Api\Client::payment($config["token"], $config["mid"]);
$data = [
  'amount' => '7',
  "network"=>"tron",
  'currency' => 'RUB',
  'order_id' => $lastId['id'],
  'url_callback' => 'https://mytestwebsitesss.000webhostapp.com/callback',
];

$result = $payment->create($data);

echo "<meta http-equiv='refresh' content='0 URL={$result['url']}'>";


callback
<?php
$data = file_get_contents('php://input');
$data = json_decode($data, true);

if(!in_array($data['status'], ['paid', 'paid_over'])) return; //неуспех

$order_id = $data['order_id'];
$db->query("INSERT INTO `payments` VALUES(NULL, '{$_SESSION['id']}', '$order_id')");
?>
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой 3 комментария
Решения вопроса 1
dark_firewall
@dark_firewall Автор вопроса
Программист C#
я понял, я просто в место $_SESSION использовал проверку по order_id и status
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
Подозреваю, что callback дёргается не браузером пользователя, а платёжным шлюзом, потому никаких куки там не будет.
Ответ написан
Ваш ответ на вопрос

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

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