Answer the question
In order to leave comments, you need to log in
How to pull data from JSON?
Good afternoon, I ran into a problem, according to the tinkoff API.
Upon successful payment, they send a JSON array with data
. Example:
{
"TerminalKey":"1510572937960",
"OrderId":"test2",
"Success":true,
"Status":"CONFIRMED",
"PaymentId":2006896,
"ErrorCode":"0",
"Amount":102120,
"CardId":867911,
"Pan":"430000**0777",
"ExpDate":"1122",
"Token":"d0815e288f121255d5d6b77831fb486cc5e9f91914a3f58a99b6118b54676d84"
}
DATA String Дополнительные параметры платежа, переданные при создании заказа
"DATA" : {"Email": "[email protected]", "Another":"Test"}
<?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 'Списание денежных средств закончилась ошибкой';
*/
}
?>
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question