PHP, MySQL | Telegram Stars
   
 
 
 
 
  
 
  
  
    
  
    Кто работал с платежами с ботах через Telegram Stars ?
Не понимаю, почему списание не происходит при оплате
Вот код php:
   
  
    
  
 
 
 
Не понимаю, почему списание не происходит при оплате
Вот код php:
php
<?php
$botToken = ''; 
$apiURL = "https://api.telegram.org/bot" . $botToken;
$productTitle = "Звезда";
$productDescription = "Тестовый товар - 1 звезда";
$productPayload = "star_1"; 
$productPrice = 1; 
$currency = 'XTR'; // Валюта
$providerToken = ""; 
function telegramRequest($method, $params = []) {
    global $apiURL;
    $url = $apiURL . "/" . $method;    
    if(!empty($params)){
       $url .= '?' . http_build_query($params);
    }    
    $response = file_get_contents($url);
    return json_decode($response, true);
}
function sendMessage($chatId, $text, $replyMarkup = null) {
    $params = [
        'chat_id' => $chatId,
        'text' => $text,
        'parse_mode' => 'HTML'
    ];
    if($replyMarkup) {
        $params['reply_markup'] = json_encode($replyMarkup);
    }
telegramRequest('sendMessage', $params);
}
function createInvoice($chatId) {
     global $productTitle, $productDescription, $productPayload, $productPrice, $currency, $providerToken;
    $prices = [
        ['label' => '1 звезда', 'amount' => $productPrice]
    ];
    $params = [
        'chat_id' => $chatId,
        'title' => $productTitle,
        'description' => $productDescription,
        'payload' => $productPayload,
        'provider_token' => $providerToken,
        'currency' => $currency,
        'photo_url' => "https://img.freepik.com/free-photo/holographic-reminder-with-star-shape-washi-tape_53876-137585.jpg",
      'photo_width' => 3600,
        'photo_height' => 2338,
        'photo_size' => 262000,
        'is_flexible' => false,
        'prices' => json_encode($prices),
        'start_parameter' => "one-star"
    ];
    return telegramRequest('sendInvoice', $params);
}
function answerPreCheckoutQuery($preCheckoutQueryId, $ok = true, $errorMessage = null) {
     $params = [
        'pre_checkout_query_id' => $preCheckoutQueryId,
        'ok' => $ok ? true : false,
     ];
    if($errorMessage) {
        $params['error_message'] = $errorMessage;
    }
telegramRequest('answerPreCheckoutQuery', $params);
}
$update = json_decode(file_get_contents('php://input'), true);
if (isset($update['message'])) {
    $message = $update['message'];
    $chatId = $message['chat']['id'];
    $text = $message['text'] ?? '';
    if ($text === '/start') {
      $keyboard = [
            'inline_keyboard' => [
                [
                    ['text' => 'Купить 1 звезду ⭐', 'callback_data' => 'buy_star'],
                ]
            ]
      ];
        sendMessage($chatId, 'Привет! Нажми кнопку для покупки 1 звезды.', $keyboard);
    }
} elseif (isset($update['callback_query'])) {
   $callbackQuery = $update['callback_query'];
   $chatId = $callbackQuery['message']['chat']['id'];
   $data = $callbackQuery['data'];
   if($data === 'buy_star') {
        createInvoice($chatId);
   }   telegramRequest('answerCallbackQuery', ['callback_query_id' => $callbackQuery['id']]);
} elseif(isset($update['pre_checkout_query'])) {
    $preCheckoutQuery = $update['pre_checkout_query'];
    $preCheckoutQueryId = $preCheckoutQuery['id'];
    $payload = $preCheckoutQuery['payload'];
    if ($payload === $productPayload) {        answerPreCheckoutQuery($preCheckoutQueryId);
    } else {     answerPreCheckoutQuery($preCheckoutQueryId, false, "Некорректный payload");
    }
} elseif (isset($update['message']['successful_payment'])) {
   $successfulPayment = $update['message']['successful_payment'];
   $chatId = $update['message']['chat']['id'];
   $payload = $successfulPayment['invoice_payload'];
   $telegramPaymentChargeId = $successfulPayment['telegram_payment_charge_id'];
   if($payload === $productPayload) {
     sendMessage($chatId, "Спасибо за покупку звезды!\nId транзакции: ".$telegramPaymentChargeId);
    } else {
      sendMessage($chatId, "Ошибка! Неизвестный payload");
    }
}
?> 
  
  
    
  
    Здравствуйте. Это какой код? Оплата через телеграм старс?   
  
    
  
 
 
 
 Umidjon4457 , да, да я уже все написал
 Umidjon4457 , да, да я уже все написал Толку с этих помогаторов нет, форум вымер видно
 AdRed
 AdRed  
		    