#loopeando_api
1 messages ยท Page 1 of 1 (latest)
๐ Welcome to your new thread!
โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
๐ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1500859445000015966
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
Hello
Are you seeing that error on the Web or Mobile Devices?
Also, are you using Stripe Connect by any chance?
Hello,
The error occurs on web (desktop and mobile browsers).
We are not using Stripe Connect.
Let me know if you need any additional details.
Hi there, taking over for @thorny birch as they had to step away
My understanding is that an OR_BIBED_06 error comes from Google's side, so it may require reaching out to their support to resolve. But it can occur from invalid information (incorrect currency code, invalid amount, etc...)
Can you share the Stripe code for setting up your Express Checkout Element to attempt this payment? Is this something that was working before? Is this happening for all accounts or specific users, specific devices, etc?
@cursive harness to answer your questions:
Is this something that was working before?
No โ Google Pay via ExpressCheckoutElement has never worked on this domain in live mode. It has always returned OR_BIBED_06. PayPal through the same ExpressCheckoutElement works fine.
Is this happening for all accounts or specific users/devices?
All users, all devices, all browsers (Chrome desktop, Chrome Android). The error comes from Google's side before any payment attempt, so it's not user/device-specific.
Here is the full code for our Express Checkout implementation:
[ExpressCheckoutWrapper.jsx] โ wraps the Elements provider:
import React from 'react';
import { Elements } from '@stripe/react-stripe-js';
import { stripePromise } from '../../../../lib/stripe';
import StripeExpressCheckout from './StripeExpressCheckout';
const ExpressCheckoutWrapper = ({ amount, onConfirm, onClick }) => {
const options = {
mode: 'payment',
amount: Math.round(amount * 100) || 100, // Amount in cents
currency: 'eur',
appearance: {
theme: 'stripe',
},
};
return (
<Elements stripe={stripePromise} options={options}>
<StripeExpressCheckout onConfirm={onConfirm} onClick={onClick} />
</Elements>
);
};
[StripeExpressCheckout.jsx] โ the actual ExpressCheckoutElement:
import { ExpressCheckoutElement, useStripe, useElements } from '@stripe/react-stripe-js';
const StripeExpressCheckout = ({ onConfirm, onClick: parentOnClick }) => {
const stripe = useStripe();
const elements = useElements();
const onClick = ({ resolve }) => {
resolve({
emailRequired: true,
shippingAddressRequired: true,
phoneNumberRequired: true,
billingAddressRequired: true
});
};
const onConfirmPayment = async (event) => {
const { error: submitError } = await elements.submit();
if (submitError) { setErrorMessage(submitError.message); return; }
// Save billing/shipping from Express event to localStorage
if (event?.billingDetails) localStorage.setItem('stripe_express_billing', JSON.stringify(event.billingDetails));
if (event?.shippingAddress) localStorage.setItem('stripe_express_shipping', JSON.stringify(event.shippingAddress));
// Create order on backend, receive clientSecret
const responseData = await onConfirm();
const clientSecret = responseData?.clientSecret;
const { error } = await stripe.confirmPayment({
elements,
clientSecret,
confirmParams: {
return_url: `${window.location.origin}/pago-exitoso?token=${responseData.token}`,
},
});
if (error) setErrorMessage(error.message);
};
return (
<ExpressCheckoutElement
onReady={onReady}
onClick={onClick}
onConfirm={onConfirmPayment}
/>
);
};
Elements configuration:
mode: 'payment'
currency: 'eur'
amount: dynamic (cart total ร 100, integer cents, always > 0)
Got it, will do some digging. Can you share your account ID so I can check the domain registrations?
@cursive harness sure: acct_1TMCk1RpAA0ljOBG
Thanks! Do you have a URL that I can visit to inspect the error on my computer?
Okay, looking at your code, you are setting shippingAddressRequired: true. Our docs state that if this is true, you must also supply a valid shippingRates option in either the create, click, or shippingaddresschange events:
https://docs.stripe.com/js/elements_object/create_express_checkout_element#express_checkout_element_create-options-shippingAddressRequired
You can see an example here:
https://docs.stripe.com/elements/express-checkout-element/accept-a-payment?payment-ui=elements#collect-shipping
I have seen this before, if you don't include shippingRates then it does result in that OR_BIBED_06 error
Awesome, glad this fixed it! Let me know if you see any other issues with this integration. I will push internally to provide a better error message in this situation if we can
@cursive harness absolute lifesaver ๐ The OR_BIBED_06 error was caused by having shippingAddressRequired: true without defining shippingRates. Added them and everything works perfectly now. You saved me hours of debugging, thanks a ton