Доброго дня столкнулся с проблемой, по API tinkoff
При успешной оплате они прислыают JSON массив с данными
Пример:
ТЫК{
"TerminalKey":"1510572937960",
"OrderId":"test2",
"Success":true,
"Status":"CONFIRMED",
"PaymentId":2006896,
"ErrorCode":"0",
"Amount":102120,
"CardId":867911,
"Pan":"430000**0777",
"ExpDate":"1122",
"Token":"d0815e288f121255d5d6b77831fb486cc5e9f91914a3f58a99b6118b54676d84"
}
И говорят что остальные данные кладут в DATA
DATA String Дополнительные параметры платежа, переданные при создании заказа
Но не пишут как получить оттуда допустим поле Email
Я так понимаю это должно выглядеть так?
"DATA" : {"Email": "mail@bk.ru", "Another":"Test"}
Или не так, вобщем не могу получить данные об Email
Код скрипта обработчика:
ТЫК<?php
require '../bot/vendor/autoload.php'; //Подключаем библиотеку
use Telegram\Bot\Api;
$telegram = new Api('API_TOKEN'); //Устанавливаем токен, полученный у BotFather
$result = json_decode(file_get_contents('php://input'));
if($result->Status == CONFIRMED ){
$Amount = $result->Amount/100;
echo "OK"; // Отсылаем ответ тинькову что получили нотификацию
/*
echo $result->Status.'<br>';
echo 'Новый платеж: '.$result->OrderId;
echo '<br>Сумма: '.$Amount;
echo '<br>Информация : '.$result->DATA;
*/
if ($result->Success == true) {
$reply = "
<code>Новый платеж: </code>$result->Status
<code>Сумма: </code> $Amount р.
<code>Номер заказа: </code>$result->OrderId
<code>Информация: </code>$result->DATA";
$telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'text' => $reply ]);
}
}
elseif($result->Status == AUTHORIZED ){
echo "OK"; // Отсылаем ответ тинькову что получили нотификацию
/*
echo '<br>'.$result->Status.'<br>';
echo 'Деньги захолдированы на карте клиента. Ожидается подтверждение операции*';
*/
}
elseif($result->Status == REVERSED ){
echo "OK"; // Отсылаем ответ тинькову что получили нотификацию
/*
echo $result->Status.'<br>';
echo 'Операция отменена';
*/
}
elseif($result->Status == REFUNDED ){
echo "OK"; // Отсылаем ответ тинькову что получили нотификацию
/*
echo $result->Status.'<br>';
echo 'Произведён возврат';
*/
}
elseif($result->Status == PARTIAL_REFUNDED ){
echo "OK"; // Отсылаем ответ тинькову что получили нотификацию
/*
echo $result->Status.'<br>';
echo 'Произведён частичный возврат';
*/
}
elseif($result->Status == REJECTED ){
echo "OK"; // Отсылаем ответ тинькову что получили нотификацию
/*
echo $result->Status.'<br>';
echo 'Списание денежных средств закончилась ошибкой';
*/
}
?>
Документация
Все остальные данные получаю, кроме тех что содержатся в DATA