#drew_wallee

1 messages · Page 1 of 1 (latest)

remote walrusBOT
reef narwhal
#
  1. You created a Source by providing mandate client-side https://dashboard.stripe.com/test/logs/req_kLgULeimUwnMtA
  2. You created a PaymentIntent using that Source server-side https://dashboard.stripe.com/test/logs/req_WQUOQyB51SCOmk
  3. You confirmed the PaymentIntent again client-side https://dashboard.stripe.com/test/logs/req_YrCkhMjDO9yBYr

On step 3, you can try confirming on server-side instead, or even better in step 2, pass in confirm = true to confirm immediately

proper rapids
#

thanks i'll try this

proper rapids
#

the thing is, as i mentioned previously, we don't have any reference to any of the mandate fields (you can see in the post data) in our code. below is the payload that is not generated in our code:

mandate_data[customer_acceptance][type]: online
mandate_data[customer_acceptance][online][infer_from_client]: true
heady prism
#

sorry it's really hard to help you when the conversation is over multiple days and threads like this.

Ultimately, you should not be using the Sources API at all, why are you?

#

I guess because your account is quite old and you have an older integration that used Sources for SEPA when that was the default integration.
What I think I'd suggest is moving completely to PaymentMethods and PaymentIntents per our current guides, creating Sources on the frontend and then using them with PaymentIntents I suppose has some compatibility problems, you should try to migrate entirely to PaymentMethods.

#

we don't have any reference to any of the mandate fields (you can see in the post data) in our code. below is the payload that is not generated in our code:
what's the frontend code that corresponds to https://dashboard.stripe.com/test/logs/req_YrCkhMjDO9yBYr for example? Maybe you call some function in our stripe.js library which is what is adding those.

#

@proper rapids are you there?

proper rapids
#

ah perfect

#

thanks

#

i appreciate you taking the time

#

by the looks of it we're making this call: Stripe.confirmSepaDebitPayment()

#

and you're correct in our solution being quite old and needs modernising

heady prism
#

I don't quite follow why you even confirm on the frontend in this case

#

if you're using the legacy approach(create payment method details on frontend and send to the backend for processing), as my colleague mentioned you'd usually use confirm:true on the backend to attempt the payment processing there

#

you use confirmSepaDebitPayment in the modern flow which is
a) create unconfirmedPaymentIntent
b) pass to frontend
c) confirm that PaymentIntent with an instance of Elements or other payment details, which collects the mandate and processes the payment in one step