arlyon / async-stripe

Async (and blocking!) Rust bindings for the Stripe API
https://payments.rs
Apache License 2.0
418 stars 122 forks source link

Confirm Setup Intent is Inconsistent with API Documentation #504

Closed chriskyndrid closed 4 months ago

chriskyndrid commented 5 months ago

Describe the bug

The struct:

#[derive(Clone, Debug, Serialize)]
pub struct ConfirmSetupIntent {
    /// The client secret if on the client side
    #[serde(skip_serializing_if = "Option::is_none")]
    pub client_secret: Option<String>,

    /// Specifies which payment method
    #[serde(skip_serializing_if = "Option::is_none")]
    pub payment_method: Option<String>,

    //Mandate data and payment method options not implemented.  If you want
    //something better, create an issue and lets fix
    /// Where to redirect the user after they log out of their dashboard.
    #[serde(skip_serializing_if = "Option::is_none")]
    pub redirect_url: Option<String>,
}

Outside of missing a number of properties includes a property labelled "redirect_url". According to the documentation:

https://docs.stripe.com/api/setup_intents/confirm

This property is called "return_url" and and not "redirect_url".

To Reproduce

Review setup_intent_ext.rs.

Admittedly I haven't reached a point in our integration where I'm testing calls against stripe, but I assume the incorrect property name will create an issue with the latest API version.

Expected behavior

Having an implementation of this API call consistent with the rest of the library.

I realize it's possible to set the "confirm" flag on the creation of the setup intent.

As I was drafting our implementation of supporting Stripe as a payment processor within our application, I noticed this inconsistency.

Code snippets

No response

OS

LInux

Rust version

1.76

Library version

latest

API version

2023-10-16

Additional context

No response