aboutsummaryrefslogtreecommitdiffhomepage
path: root/td/telegram/Payments.cpp
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2024-05-24 14:43:30 +0300
committerlevlam <levlam@telegram.org>2024-05-24 14:43:30 +0300
commitd624f49e43c09f52b8cfd4c7a67bb9293c63caae (patch)
tree68c98ad029b3d3abdab75cb18c5146d22f570872 /td/telegram/Payments.cpp
parent62acb0aecd8df593595b4b243da604fedf91d857 (diff)
Add td_api::refundStarPayment.
Diffstat (limited to 'td/telegram/Payments.cpp')
-rw-r--r--td/telegram/Payments.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/td/telegram/Payments.cpp b/td/telegram/Payments.cpp
index fcc24984a..85724ee10 100644
--- a/td/telegram/Payments.cpp
+++ b/td/telegram/Payments.cpp
@@ -868,6 +868,34 @@ class ExportInvoiceQuery final : public Td::ResultHandler {
}
};
+class RefundStarsChargeQuery final : public Td::ResultHandler {
+ Promise<Unit> promise_;
+
+ public:
+ explicit RefundStarsChargeQuery(Promise<Unit> &&promise) : promise_(std::move(promise)) {
+ }
+
+ void send(telegram_api::object_ptr<telegram_api::InputUser> &&input_user, const string &telegram_payment_charge_id) {
+ send_query(G()->net_query_creator().create(
+ telegram_api::payments_refundStarsCharge(std::move(input_user), telegram_payment_charge_id)));
+ }
+
+ void on_result(BufferSlice packet) final {
+ auto result_ptr = fetch_result<telegram_api::payments_refundStarsCharge>(packet);
+ if (result_ptr.is_error()) {
+ return on_error(result_ptr.move_as_error());
+ }
+
+ auto ptr = result_ptr.move_as_ok();
+ LOG(DEBUG) << "Receive result for RefundStarsChargeQuery: " << to_string(ptr);
+ td_->updates_manager_->on_get_updates(std::move(ptr), std::move(promise_));
+ }
+
+ void on_error(Status status) final {
+ promise_.set_error(std::move(status));
+ }
+};
+
class GetBankCardInfoQuery final : public Td::ResultHandler {
Promise<td_api::object_ptr<td_api::bankCardInfo>> promise_;
@@ -1130,6 +1158,12 @@ void export_invoice(Td *td, td_api::object_ptr<td_api::InputMessageContent> &&in
td->create_handler<ExportInvoiceQuery>(std::move(promise))->send(std::move(input_media));
}
+void refund_star_payment(Td *td, UserId user_id, const string &telegram_payment_charge_id, Promise<Unit> &&promise) {
+ TRY_RESULT_PROMISE(promise, input_user, td->user_manager_->get_input_user(user_id));
+ td->create_handler<RefundStarsChargeQuery>(std::move(promise))
+ ->send(std::move(input_user), telegram_payment_charge_id);
+}
+
void get_bank_card_info(Td *td, const string &bank_card_number,
Promise<td_api::object_ptr<td_api::bankCardInfo>> &&promise) {
td->create_handler<GetBankCardInfoQuery>(std::move(promise))->send(bank_card_number);