1212#include " tgbot/types/PollAnswer.h"
1313#include " tgbot/types/ChatMemberUpdated.h"
1414#include " tgbot/types/ChatJoinRequest.h"
15+ #include " tgbot/types/SuccessfulPayment.h"
1516
1617#include < functional>
1718#include < initializer_list>
@@ -43,6 +44,7 @@ friend EventHandler;
4344 typedef std::function<void (const PollAnswer::Ptr)> PollAnswerListener;
4445 typedef std::function<void (const ChatMemberUpdated::Ptr)> ChatMemberUpdatedListener;
4546 typedef std::function<void (const ChatJoinRequest::Ptr)> ChatJoinRequestListener;
47+ typedef std::function<void (const SuccessfulPayment::Ptr)> SuccessfulPaymentListener;
4648
4749 /* *
4850 * @brief Registers listener which receives new incoming message of any kind - text, photo, sticker, etc.
@@ -202,6 +204,16 @@ friend EventHandler;
202204 _onChatJoinRequestListeners.push_back (listener);
203205 }
204206
207+ /* *
208+ * @brief Registers listener which receives information about successful payments.
209+ * This listener is triggered when a successful payment is received by the bot.
210+ *
211+ * @param listener Listener.
212+ */
213+ inline void onSuccessfulPayment (const SuccessfulPaymentListener& listener) {
214+ _onSuccessfulPaymentListeners.push_back (listener);
215+ }
216+
205217private:
206218 template <typename ListenerType, typename ObjectType>
207219 inline void broadcast (const std::vector<ListenerType>& listeners, const ObjectType object) const {
@@ -278,6 +290,10 @@ friend EventHandler;
278290 broadcast<ChatJoinRequestListener, ChatJoinRequest::Ptr>(_onChatJoinRequestListeners, result);
279291 }
280292
293+ inline void broadcastSuccessfulPayment (const SuccessfulPayment::Ptr& payment) const {
294+ broadcast<SuccessfulPaymentListener, SuccessfulPayment::Ptr>(_onSuccessfulPaymentListeners, payment);
295+ }
296+
281297 std::vector<MessageListener> _onAnyMessageListeners;
282298 std::unordered_map<std::string, MessageListener> _onCommandListeners;
283299 std::vector<MessageListener> _onUnknownCommandListeners;
@@ -293,6 +309,8 @@ friend EventHandler;
293309 std::vector<ChatMemberUpdatedListener> _onMyChatMemberListeners;
294310 std::vector<ChatMemberUpdatedListener> _onChatMemberListeners;
295311 std::vector<ChatJoinRequestListener> _onChatJoinRequestListeners;
312+ std::vector<SuccessfulPaymentListener> _onSuccessfulPaymentListeners;
313+
296314};
297315
298316}
0 commit comments