stripe/resources/
setup_intent_ext.rs1use serde::Serialize;
2
3use crate::client::{Client, Response};
4use crate::params::Expand;
5use crate::resources::SetupIntent;
6use crate::{PaymentMethodId, SetupIntentCancellationReason, SetupIntentId};
7
8#[derive(Clone, Debug, Serialize)]
12pub struct ConfirmSetupIntent {
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub payment_method: Option<PaymentMethodId>,
16
17 #[serde(skip_serializing_if = "Option::is_none")]
19 pub mandate_data: Option<MandateData>,
20
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub payment_method_data: Option<crate::UpdatePaymentIntentPaymentMethodData>,
24
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub payment_method_options: Option<crate::UpdatePaymentIntentPaymentMethodOptions>,
28
29 #[serde(skip_serializing_if = "Option::is_none")]
31 pub return_url: Option<String>,
32
33 pub use_stripe_sdk: bool,
35}
36
37#[derive(Clone, Debug, Default, Serialize)]
38pub struct MandateData {
39 pub customer_acceptance: crate::CustomerAcceptance,
40}
41
42#[derive(Clone, Debug, Default, Serialize)]
46pub struct CancelSetupIntent {
47 #[serde(skip_serializing_if = "Option::is_none")]
48 pub cancellation_reason: Option<SetupIntentCancellationReason>,
49}
50
51#[derive(Clone, Debug, Default, Serialize)]
55pub struct VerifyMicrodeposits<'a> {
56 #[serde(skip_serializing_if = "Option::is_none")]
58 pub amounts: Option<Vec<i64>>,
59
60 #[serde(skip_serializing_if = "Option::is_none")]
62 pub descriptor_code: Option<&'a str>,
63
64 #[serde(skip_serializing_if = "Expand::is_empty")]
66 pub expand: &'a [&'a str],
67}
68
69impl SetupIntent {
70 pub fn confirm(
71 client: &Client,
72 setup_id: &SetupIntentId,
73 params: ConfirmSetupIntent,
74 ) -> Response<SetupIntent> {
75 #[allow(clippy::needless_borrows_for_generic_args)]
76 client.post_form(&format!("/setup_intents/{}/confirm", setup_id), ¶ms)
77 }
78
79 pub fn verify_micro_deposits(
80 client: &Client,
81 setup_id: &SetupIntentId,
82 params: VerifyMicrodeposits,
83 ) -> Response<SetupIntent> {
84 #[allow(clippy::needless_borrows_for_generic_args)]
85 client.post_form(&format!("/setup_intents/{}/verify_microdeposits", setup_id), ¶ms)
86 }
87
88 pub fn cancel(
92 client: &Client,
93 setup_id: &SetupIntentId,
94 params: CancelSetupIntent,
95 ) -> Response<SetupIntent> {
96 client.post_form(&format!("/setup_intents/{}/cancel", setup_id), params)
97 }
98}
99
100#[cfg(test)]
101mod test {}