#salonMonster
1 messages ยท Page 1 of 1 (latest)
Hey apologies for the delay, just catching up
No worries - I thought that was fast ๐
Capturing a charge should be more based on whether you are designating that you want to place a hold on the card. Do you know if you are designating capture_method: manual here? https://stripe.com/docs/payments/place-a-hold-on-a-payment-method
And do you have the ID of a payment intent that went in to a requires_capture state?
We aren't specifying manual.
We are using the following code:
.confirmCardPayment(clientSecret, {
payment_method: {
card: this.card
}
})```
yes, I'll grab the id of one
This one returned as uncaptured:
pi_3MhHlADsBwzFEnWE1Uf2J8Oq
I think it was caused by me playing around with the postal code and cvv. We were trying to cause different failures because clients had reported that we weren't displaying all errors correctly.
I'd never seen this type of response before.
We wanted to handle all edge cases
If this is a situation that is unlikely to happen we can just display a generic error message for now "Sorry we couldn't charge that card, please try again or use a different card"
But we thought we should learn more about it in case we should be handling this response with another step (capturing the payment)
Gotcha, thanks for the info. Checking in to that intent now
Actually I do see that payment intent as being created with capture_mehtod: "manual" so it does look like your integration is specifying that under some circumstances at least https://dashboard.stripe.com/logs/req_5kZsyzqxciPveI
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
Interesting - i'll try and track that down
Ok, I've found that ref in our api
So we're creating the payment intent with the manual flag.
Then we are trying to complete the payment with:
.confirmCardPayment(clientSecret, {
payment_method: {
card: this.card
}
})```
using the client secret and card
Hi there ๐ taking over, as my colleague needs to step away
Give me a few minutes to get caught up.
No worries
So we are creating the initial intent in our api using:
amount,
currency,
on_behalf_of: stripeInfo[0].stripeUserID,
payment_method_types,
capture_method: "manual",
application_fee_amount: applicationFeeAmount,
transfer_data: {
destination: stripeInfo[0].stripeUserID,
}
}
}
const intent = await stripe.paymentIntents.create(paymentIntentObject);
Then trying to process the charge on our front end:
.confirmCardPayment(clientSecret, {
payment_method: {
card: this.card
}
})```
Is the issue that it's not capturing automatically? Or is the issue something else?
I just have to run to a meeting unfortunately - can you add ken#1134 to the conversation? He can continue on my behalf
Feel free to share the URL of the thread with him. It's a public thread so anyone can jump in
Thanks - Ken here from salonMonster as well, we were working on this issue together.
Hey Ken. I'm just trying to get caught up on the issue you're solving for. Can you give a brief summary of what's going wrong? The thread seems to allude to a couple different problems and I want to make sure I'm starting off on the right foot and not getting caught up in the "XY Problem"
Fair enough, here's the background: we're trying to enable billing for more of our hair salons, today just using the web interface (POS system next week hopefully). We were working today on making sure error messages are being displayed correctly (such as the common insufficient funds). During our testing, we got the somewhat confusing capture error.
We want to make sure we can respond correctly to "requires_capture" status.
Do you have a Request ID for the API call you made which gave you requires_capture?
Here's how you can find a request ID: https://support.stripe.com/questions/finding-the-id-for-an-api-request
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
I assume this is the request id: pi_3MhHlADsBwzFEnWE1Uf2J8Oq
Again, we may have triggered a fraud report as we were testing a lot of $1 charges.
That's a Payment Intent ID. Specifically I'm looking for a Request ID (it's formatted like this --> req_abc123)
It may be this: req_5kZsyzqxciPveI
(posted by Pompey above)
This one has requires_source
Apologies if this seems short. I'm just trying to understand the problem and it's hard to gauge what's wrong from the context of the thread or your responses
Basically our goal is to display the error to the user is this happens to a real customer, or even better if there is a way to help the charge go through using additional verification or something.
I guess clarification of what "requires_capture" means would help too.
Also, just to know if this is something that happens often, as we want a reliable system: people just got their haircut and want to pay before leaving, so being unable to pay would cause some difficultly for all parties involved.
I mean, as soon as it moves to requires_capture you should try to capture the payment.
The workflow is outlined here: https://stripe.com/docs/payments/place-a-hold-on-a-payment-method
The step you're looking for is specifically here: https://stripe.com/docs/payments/place-a-hold-on-a-payment-method#capture-funds