Ошибка при рапсинге successful_payment #265
|
Всем привет! Столкнулся с такой проблемой. {"ok":true,"result":[{"update_id":94549252, На парсинге этого ответа программа падает вот тут: |
Replies: 2 comments 1 reply
|
Внес изменения в TgTypeParser.cpp, указал значения по умолчанию для парсера Property Tree. Протестировал на платежах, ошибка не повторялась. Сделал Pull request с изменениями. |
|
В актуальной v1.12.3 эта проблема исправлена: старый Boost.PropertyTree parser удалён, Для обработки платежа есть отдельный listener: bot.getEvents().onSuccessfulPayment(
[](TgBot::Message::Ptr message, TgBot::SuccessfulPayment::Ptr payment) {
std::cout << "chat_id=" << message->chat->id
<< " amount=" << payment->totalAmount
<< " currency=" << payment->currency << '\n';
});Событие приходит и для тестовых, и для реальных платежей. До него нужно своевременно отвечать на |
В актуальной v1.12.3 эта проблема исправлена: старый Boost.PropertyTree parser удалён,
successful_paymentразбирается через nlohmann/json.Для обработки платежа есть отдельный listener:
bot.getEvents().onSuccessfulPayment( [](TgBot::Message::Ptr message, TgBot::SuccessfulPayment::Ptr payment) { std::cout << "chat_id=" << message->chat->id << " amount=" << payment->totalAmount << " currency=" << payment->currency << '\n'; });Событие приходит и для тестовых, и для реальных платежей. До него нужно своевременно отвечать на
pre_checkout_query;successful_paymentозначает, что платёж уже завершён.