diff options
| author | levlam <levlam@telegram.org> | 2024-11-11 23:55:07 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2024-11-11 23:55:07 +0300 |
| commit | be1747d5f790030019a40f4bcb5612b0bef4dc61 (patch) | |
| tree | 41c72d7999ad7563f59e7e162f833bc5fc21f4ef /td/telegram/Payments.cpp | |
| parent | fa7befe7e8d33c52c4340468a3d99e1dea12f6a4 (diff) | |
Add createInvoiceLink.business_connection_id.
Diffstat (limited to 'td/telegram/Payments.cpp')
| -rw-r--r-- | td/telegram/Payments.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/td/telegram/Payments.cpp b/td/telegram/Payments.cpp index e28818cee..edd3a7aa2 100644 --- a/td/telegram/Payments.cpp +++ b/td/telegram/Payments.cpp @@ -7,6 +7,7 @@ #include "td/telegram/Payments.h" #include "td/telegram/AccessRights.h" +#include "td/telegram/BusinessConnectionManager.h" #include "td/telegram/DialogId.h" #include "td/telegram/DialogInviteLink.h" #include "td/telegram/DialogManager.h" @@ -925,8 +926,12 @@ class ExportInvoiceQuery final : public Td::ResultHandler { explicit ExportInvoiceQuery(Promise<string> &&promise) : promise_(std::move(promise)) { } - void send(tl_object_ptr<telegram_api::inputMediaInvoice> &&input_media_invoice) { - send_query(G()->net_query_creator().create(telegram_api::payments_exportInvoice(std::move(input_media_invoice)))); + void send(BusinessConnectionId business_connection_id, + telegram_api::object_ptr<telegram_api::inputMediaInvoice> &&input_media_invoice) { + send_query(G()->net_query_creator().create_with_prefix( + business_connection_id.get_invoke_prefix(), + telegram_api::payments_exportInvoice(std::move(input_media_invoice)), + td_->business_connection_manager_->get_business_connection_dc_id(business_connection_id))); } void on_result(BufferSlice packet) final { @@ -1198,15 +1203,22 @@ void delete_saved_credentials(Td *td, Promise<Unit> &&promise) { td->create_handler<ClearSavedInfoQuery>(std::move(promise))->send(true, false); } -void export_invoice(Td *td, td_api::object_ptr<td_api::InputMessageContent> &&invoice, Promise<string> &&promise) { +void export_invoice(Td *td, BusinessConnectionId business_connection_id, + td_api::object_ptr<td_api::InputMessageContent> &&invoice, Promise<string> &&promise) { if (invoice == nullptr) { return promise.set_error(Status::Error(400, "Invoice must be non-empty")); } TRY_RESULT_PROMISE(promise, input_invoice, InputInvoice::process_input_message_invoice(std::move(invoice), td, DialogId())); + if (business_connection_id.is_valid()) { + TRY_STATUS_PROMISE(promise, td->business_connection_manager_->check_business_connection( + business_connection_id, td->dialog_manager_->get_my_dialog_id())); + } + auto input_media = input_invoice.get_input_media_invoice(td, nullptr, nullptr); CHECK(input_media != nullptr); - td->create_handler<ExportInvoiceQuery>(std::move(promise))->send(std::move(input_media)); + td->create_handler<ExportInvoiceQuery>(std::move(promise)) + ->send(std::move(business_connection_id), std::move(input_media)); } void get_bank_card_info(Td *td, const string &bank_card_number, |
