I'm using stripe checkout. I already collect some userdata and I don't want customers to fill in their name twice. How can I autofill or disable the name field?
const session = await stripe.checkout.sessions.create({
customer_email: !customerFound ? data.email : undefined,
customer: customerFound ? customer.id : undefined,
customer_update: customerFound
? {
address: 'auto',
name: 'auto',
}
: undefined,
line_items: lineItems,
client_reference_id: data.userId,
payment_method_types: ['card', 'bancontact'],
mode: 'payment',
success_url: `${domain}/betaling-gelukt?session_id={CHECKOUT_SESSION_ID}`,
cancel_url: `${domain}/betaling-mislukt`,
locale: 'nl',
billing_address_collection: 'auto',
metadata: {
reservation: data.reservatieId,
},
});
Note that the name
field of the Checkout Session is not necessarily your customer's name, but the name on the Payment Method they are using.
It's not possible to prefill this name
field unless the customer
already has a Payment Method attached that can be reused with setup_future_usage
.
In general I would recommend to let Stripe Checkout collect all the information, and then update your system from that, not the other way around.
In payment mode, the customer's most recent card payment method will be used to prefill the email, name, card details, and billing address on the Checkout page.
In subscription mode, the customer's default payment method will be used if it's a card, and otherwise the most recent card will be used. A valid billing address is required for Checkout to prefill the customer's card details.
This may or may not be ideal for your situation.
Alternatively , you could completely cut out Stripe Checkout and use Stripe.js alongside the backend API that Stripe provides. This method has its pros/cons:
Pros:
Cons :
PaymentIntent
and Subscription
manuallyWe faced similar issues as yourself and though the initial change from Stripe Checkout to Stripe.js was a bit of learning curve it gave us much more control and allowed us to have payments without needing to redirect to an external site.
Note: I've intentionally left out code because the implementation of Stripe.js can vary based on your needs but if needed I can provide some examples.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.