MCPcopy Create free account
hub / github.com/Botloader/botloader / create_checkout_session

Method create_checkout_session

components/stripe-premium/src/lib.rs:52–88  ·  view source on GitHub ↗
(
        &self,
        discord_user_id: Id<UserMarker>,
        tier: PremiumSlotTier,
        return_url: &str,
    )

Source from the content-addressed store, hash-verified

50 }
51
52 pub async fn create_checkout_session(
53 &self,
54 discord_user_id: Id<UserMarker>,
55 tier: PremiumSlotTier,
56 return_url: &str,
57 ) -> anyhow::Result<String> {
58 let customer_id = self.init_user_stripe_customer_id(discord_user_id).await?;
59
60 let price = match tier {
61 PremiumSlotTier::Lite => &self.lite_price_id,
62 PremiumSlotTier::Premium => &self.premium_price_id,
63 };
64
65 let session = CheckoutSession::create(
66 &self.client,
67 CreateCheckoutSession {
68 customer: Some(CustomerId::from_str(&customer_id).unwrap()),
69 mode: Some(CheckoutSessionMode::Subscription),
70 success_url: Some(return_url),
71 cancel_url: Some(return_url),
72 line_items: Some(vec![CreateCheckoutSessionLineItems {
73 adjustable_quantity: Some(CreateCheckoutSessionLineItemsAdjustableQuantity {
74 enabled: true,
75 minimum: Some(1),
76 ..Default::default()
77 }),
78 price: Some(price.to_owned()),
79 quantity: Some(1),
80 ..Default::default()
81 }]),
82 ..Default::default()
83 },
84 )
85 .await?;
86
87 Ok(session.url.unwrap())
88 }
89
90 #[instrument(skip_all)]
91 pub async fn create_customer_portal_link(

Callers 1

Calls 2

createFunction · 0.85

Tested by

no test coverage detected