#alex_unexpected
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/1305856130022510683
đ Have more to share? Add more details, code, screenshots, videos, etc. below.
hi! not aware of any problem/outage no. Do you have more details like code/a simple page to repro the problem?
yes sure i'll try to provide a link on our test env checkout page
try to buy using google pay method
I'm not seeing Google Pay as an option.
can you send me an screenshot please
ok go to the browser - > applications choose right domain and try to find ab_test_checkout_type cookie
looking at it now
set it too the value new
you'll see a new version of our checkout page and Google pay as well
please share the exact code you're using to mount the element and confirm the payment
I tried to pay and you clearly have a bug and there's a console warning that indiciates it
[Stripe.js] Timed out waiting for a call to complete(). Once you have processed the payment in the "paymentmethod" handler, you must call event.complete within 30 seconds.
ok give me e few minutes please
//create paymentRequest
paymentRequest = await this.stripeApi.paymentRequest({
country: 'ES',
currency: this.order.currency.toLowerCase(),
total: {
label: this.performance.name,
amount: this.walletAmount,
},
requestPayerName: true,
requestPayerEmail: true,
});
// show google pay modal
startPayment() {
if (this.pending) {
return;
}
this.paymentRequest.show();
this.pending = true;
this.paymentRequest.on('cancel', () => {
this.pending = false;
});
gtmService.checkoutPayButtonClicked(this.paymentMethod);
},
this.paymentRequest.on('paymentmethod', this.handlerPaymentmethod);
handlerPaymentmethod(ev) {
if (this.pending) {
return;
}
this.pending = true;
this.$emit('openModalPendingPurchase');
const { paymentMethod } = ev;
const cardInfo = {
last4: paymentMethod.card.last4 || null,
last6: null,
address_line1_check: paymentMethod.card.address_line1_check || null,
address_line2_check: paymentMethod.card.address_line2_check || null,
stripe_address_zip_check: paymentMethod.card.address_zip_check || null,
cvc: '',
cvc_check: paymentMethod.card.cvc_check || null,
brand: paymentMethod.card.brand || null,
stripeToken: paymentMethod.id,
card: null,
couponCode: this.order.couponCode || null,
subType: this.paymentRequest._buttonTypeName.toLowerCase(),
};
this.confirmPayment(cardInfo)
.then(response => {
return this.reservePayment(response);
})
.then(response => {
return this.processPayment();
})
.then(response => {
return this.finishPayment();
})
.then(response => {
return this.handlePaymentSuccess(response);
})
.then(() => {
ev.complete('success');
})
.catch(response => {
ev.complete('fail');
const message = response.message;
this.$emit('error', { message });
this.pending = false;
this.$emit('closeModalPendingPurchase');
})
.finally(() => {
this.pending = false;
});
seems like your code never gets to that ev.complete(success) I suggest you add some logs and debug this and what your reservePayment/processPayment/finishPayments functions all do
it might also be easier to debug if you rewrite this to use await instead of all the chaining
thx a lot we will try!
the odd think here is that we didn't change anything from yesterday but yesterday everything was working as expected
nevertheless it seems like the code never gets to the point of calling ev.complete('success')