pub struct SendInvoice {
Show 28 fields pub chat_id: Recipient, pub title: String, pub description: String, pub payload: String, pub provider_token: String, pub currency: String, pub prices: Vec<LabeledPrice, Global>, pub message_thread_id: Option<i32>, pub max_tip_amount: Option<u32>, pub suggested_tip_amounts: Option<Vec<u32, Global>>, pub start_parameter: Option<String>, pub provider_data: Option<String>, pub photo_url: Option<Url>, pub photo_size: Option<String>, pub photo_width: Option<String>, pub photo_height: Option<String>, pub need_name: Option<bool>, pub need_phone_number: Option<bool>, pub need_email: Option<bool>, pub need_shipping_address: Option<bool>, pub send_phone_number_to_provider: Option<bool>, pub send_email_to_provider: Option<bool>, pub is_flexible: Option<bool>, pub disable_notification: Option<bool>, pub protect_content: Option<bool>, pub reply_to_message_id: Option<i32>, pub allow_sending_without_reply: Option<bool>, pub reply_markup: Option<InlineKeyboardMarkup>,
}
Expand description

Use this method to send invoices. On success, the sent Message is returned.

Fields§

§chat_id: Recipient

Unique identifier for the target private chat

§title: String

Product name, 1-32 characters

§description: String

Product description, 1-255 characters

§payload: String

Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.

§provider_token: String

Payments provider token, obtained via Botfather

§currency: String

Three-letter ISO 4217 currency code, see more on currencies

§prices: Vec<LabeledPrice, Global>

Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.)

§message_thread_id: Option<i32>

Unique identifier for the target message thread (topic) of the forum; for forum supergroups only

§max_tip_amount: Option<u32>

The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0

§suggested_tip_amounts: Option<Vec<u32, Global>>

A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount.

§start_parameter: Option<String>

Unique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter

§provider_data: Option<String>

A JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider.

§photo_url: Option<Url>

URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for.

§photo_size: Option<String>

Photo size in bytes

§photo_width: Option<String>

Photo width

§photo_height: Option<String>

Photo height

§need_name: Option<bool>

Pass True, if you require the user’s full name to complete the order

§need_phone_number: Option<bool>

Pass True, if you require the user’s phone number to complete the order

§need_email: Option<bool>

Pass True, if you require the user’s email address to complete the order

§need_shipping_address: Option<bool>

Pass True, if you require the user’s shipping address to complete the order

§send_phone_number_to_provider: Option<bool>

Pass True, if user’s phone number should be sent to provider

§send_email_to_provider: Option<bool>

Pass True, if user’s email address should be sent to provider

§is_flexible: Option<bool>

Pass True, if the final price depends on the shipping method

§disable_notification: Option<bool>

Sends the message silently. Users will receive a notification with no sound.

§protect_content: Option<bool>

Protects the contents of sent messages from forwarding and saving

§reply_to_message_id: Option<i32>

If the message is a reply, ID of the original message

§allow_sending_without_reply: Option<bool>

Pass True, if the message should be sent even if the specified replied-to message is not found

§reply_markup: Option<InlineKeyboardMarkup>

A JSON-serialized object for an inline keyboard. If empty, one ‘Pay total price’ button will be shown. If not empty, the first button must be a Pay button.

Implementations§

source§

impl SendInvoice

source

pub fn new( chat_id: impl Into<Recipient>, title: impl Into<String>, description: impl Into<String>, payload: impl Into<String>, provider_token: impl Into<String>, currency: impl Into<String>, prices: impl IntoIterator<Item = <Vec<LabeledPrice, Global> as IntoIterator>::Item> ) -> SendInvoice

Trait Implementations§

source§

impl Clone for SendInvoice

source§

fn clone(&self) -> SendInvoice

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SendInvoice

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Hash for SendInvoice

source§

fn hash<__H>(&self, state: &mut __H)where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<SendInvoice> for SendInvoice

source§

fn eq(&self, other: &SendInvoice) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Payload for SendInvoice

§

type Output = Message

The return type of a Telegram method. Read more
source§

const NAME: &'static str = "SendInvoice"

Name of a Telegram method. Read more
source§

fn timeout_hint(&self) -> Option<Duration>

If this payload may take long time to execute (e.g. GetUpdates with big timeout), the minimum timeout that should be used.
source§

impl Serialize for SendInvoice

source§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for SendInvoice

source§

impl StructuralEq for SendInvoice

source§

impl StructuralPartialEq for SendInvoice

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CallHasher for Twhere T: Hash + ?Sized,

§

default fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64where H: Hash + ?Sized, B: BuildHasher,

source§

impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<T> Erasable for T

§

unsafe fn unerase(this: NonNull<Erased>) -> NonNull<T>

Unerase this erased pointer. Read more
§

const ACK_1_1_0: bool = true

Available on non-enforce_1_1_0_semantics only.
Whether this implementor has acknowledged the 1.1.0 update to unerase’s documented implementation requirements. Read more
§

fn erase(this: NonNull<Self>) -> NonNull<Erased>

Turn this erasable pointer into an erased pointer. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for Twhere T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
source§

impl<P> HasPayload for Pwhere P: Payload,

§

type Payload = P

The type of the payload contained.
source§

fn payload_mut(&mut self) -> &mut <P as HasPayload>::Payload

Gain mutable access to the underlying payload.
source§

fn payload_ref(&self) -> &<P as HasPayload>::Payload

Gain immutable access to the underlying payload.
source§

fn with_payload_mut<F>(self, f: F) -> Selfwhere Self: Sized, F: FnOnce(&mut Self::Payload),

Update payload with a function
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<P> SendInvoiceSetters for Pwhere P: HasPayload<Payload = SendInvoice>,

source§

fn chat_id<T>(self, value: T) -> Selfwhere T: Into<Recipient>,

Setter for chat_id field.
source§

fn title<T>(self, value: T) -> Selfwhere T: Into<String>,

Setter for title field.
source§

fn description<T>(self, value: T) -> Selfwhere T: Into<String>,

Setter for description field.
source§

fn payload<T>(self, value: T) -> Selfwhere T: Into<String>,

Setter for payload field.
source§

fn provider_token<T>(self, value: T) -> Selfwhere T: Into<String>,

Setter for provider_token field.
source§

fn currency<T>(self, value: T) -> Selfwhere T: Into<String>,

Setter for currency field.
source§

fn prices<T>(self, value: T) -> Selfwhere T: IntoIterator<Item = <Vec<LabeledPrice, Global> as IntoIterator>::Item>,

Setter for prices field.
source§

fn message_thread_id(self, value: i32) -> Self

Setter for message_thread_id field.
source§

fn max_tip_amount(self, value: u32) -> Self

Setter for max_tip_amount field.
source§

fn suggested_tip_amounts<T>(self, value: T) -> Selfwhere T: IntoIterator<Item = <Vec<u32, Global> as IntoIterator>::Item>,

Setter for suggested_tip_amounts field.
source§

fn start_parameter<T>(self, value: T) -> Selfwhere T: Into<String>,

Setter for start_parameter field.
source§

fn provider_data<T>(self, value: T) -> Selfwhere T: Into<String>,

Setter for provider_data field.
source§

fn photo_url(self, value: Url) -> Self

Setter for photo_url field.
source§

fn photo_size<T>(self, value: T) -> Selfwhere T: Into<String>,

Setter for photo_size field.
source§

fn photo_width<T>(self, value: T) -> Selfwhere T: Into<String>,

Setter for photo_width field.
source§

fn photo_height<T>(self, value: T) -> Selfwhere T: Into<String>,

Setter for photo_height field.
source§

fn need_name(self, value: bool) -> Self

Setter for need_name field.
source§

fn need_phone_number(self, value: bool) -> Self

Setter for need_phone_number field.
source§

fn need_email(self, value: bool) -> Self

Setter for need_email field.
source§

fn need_shipping_address(self, value: bool) -> Self

Setter for need_shipping_address field.
source§

fn send_phone_number_to_provider(self, value: bool) -> Self

source§

fn send_email_to_provider(self, value: bool) -> Self

Setter for send_email_to_provider field.
source§

fn is_flexible(self, value: bool) -> Self

Setter for is_flexible field.
source§

fn disable_notification(self, value: bool) -> Self

Setter for disable_notification field.
source§

fn protect_content(self, value: bool) -> Self

Setter for protect_content field.
source§

fn reply_to_message_id(self, value: i32) -> Self

Setter for reply_to_message_id field.
source§

fn allow_sending_without_reply(self, value: bool) -> Self

Setter for allow_sending_without_reply field.
source§

fn reply_markup(self, value: InlineKeyboardMarkup) -> Self

Setter for reply_markup field.
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more