12
12
#include " tgbot/types/PollAnswer.h"
13
13
#include " tgbot/types/ChatMemberUpdated.h"
14
14
#include " tgbot/types/ChatJoinRequest.h"
15
+ #include " tgbot/types/SuccessfulPayment.h"
15
16
16
17
#include < functional>
17
18
#include < initializer_list>
@@ -43,6 +44,7 @@ friend EventHandler;
43
44
typedef std::function<void (const PollAnswer::Ptr )> PollAnswerListener;
44
45
typedef std::function<void (const ChatMemberUpdated::Ptr )> ChatMemberUpdatedListener;
45
46
typedef std::function<void (const ChatJoinRequest::Ptr )> ChatJoinRequestListener;
47
+ typedef std::function<void (const SuccessfulPayment::Ptr )> SuccessfulPaymentListener;
46
48
47
49
/* *
48
50
* @brief Registers listener which receives new incoming message of any kind - text, photo, sticker, etc.
@@ -202,6 +204,16 @@ friend EventHandler;
202
204
_onChatJoinRequestListeners.push_back (listener);
203
205
}
204
206
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
+
205
217
private:
206
218
template <typename ListenerType, typename ObjectType>
207
219
inline void broadcast (const std::vector<ListenerType>& listeners, const ObjectType object) const {
@@ -278,6 +290,10 @@ friend EventHandler;
278
290
broadcast<ChatJoinRequestListener, ChatJoinRequest::Ptr >(_onChatJoinRequestListeners, result);
279
291
}
280
292
293
+ inline void broadcastSuccessfulPayment (const SuccessfulPayment::Ptr & payment) const {
294
+ broadcast<SuccessfulPaymentListener, SuccessfulPayment::Ptr >(_onSuccessfulPaymentListeners, payment);
295
+ }
296
+
281
297
std::vector<MessageListener> _onAnyMessageListeners;
282
298
std::unordered_map<std::string, MessageListener> _onCommandListeners;
283
299
std::vector<MessageListener> _onUnknownCommandListeners;
@@ -293,6 +309,8 @@ friend EventHandler;
293
309
std::vector<ChatMemberUpdatedListener> _onMyChatMemberListeners;
294
310
std::vector<ChatMemberUpdatedListener> _onChatMemberListeners;
295
311
std::vector<ChatJoinRequestListener> _onChatJoinRequestListeners;
312
+ std::vector<SuccessfulPaymentListener> _onSuccessfulPaymentListeners;
313
+
296
314
};
297
315
298
316
}
0 commit comments