#henning83_code
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/1291002189686374460
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- henning83_code, 1 day ago, 21 messages
Can you share the webiste and the steps needed in order to reproduce the issue ?
after that you need to add an ticket to the cart and go to the shopping cart. You can enter some random data and on the last page you should get the apple pay button
in chrome on windows, the google pay button is working, but not the apple pay button on safari
i have testet the function with 5 different customers and on their websites, the apple pay button is showing. Only for this customer of us, its not working. If i add the canMakePayment, i know thats from the request payment button and not from the express payment, it shows null for this customer. For all other customers i get the info which payment method is working.
I'm getting this
sorry you need to select a date in the future, maybe friday or something like that
the time/slot needs to be green
I see Google Pay...
You need to double check with your customers, do they have a real card in their wallets and using a supported browser for Google Pay
Yes the google pay button is working, but not the apple pay button.
So on safari it should show the apple pay button, which is working on other websites that are using our shop, but for this seller its not working. We have already removed the domain verifications from their accounts and have added the domain through the connect api, but still the button is not showing and i dont get any error message.
Hi! I'm taking over from my colleague. Please, give me a moment to catch up.
I'll try in Safari now...
I don't see the Apple Pay button, and I see in your Dashboard that the domain registration is disabled:
If you enable it it should work.
is that in our dashboard or in the dashboard of our connected account?
because your colleague yesterday told me that our customer (the connected account) has to delete the domain from their dashboard and we have to add that domain through the connect api
Are you using direct charges or destination charges?
Then you will also need to register the domain on the Connected account: https://docs.stripe.com/payments/payment-methods/pmd-registration?dashboard-or-api=dashboard#register-your-domain-while-using-connect
this is what we do:
Stripe.RequestOptions requestOptions = new Stripe.RequestOptions();
requestOptions.StripeAccount = this.ACCESSDATA.STRIPE_USER_ID;
var options = new ApplePayDomainCreateOptions
{
DomainName = System.Web.HttpUtility.UrlEncode(domainName),
};
var service = new ApplePayDomainService();
var domain = service.Create(options, requestOptions);
And this is returning the domain with LiveMode==true
Stripe.RequestOptions requestOptions = new Stripe.RequestOptions();
requestOptions.StripeAccount = this.ACCESSDATA.STRIPE_USER_ID;
var options = new ApplePayDomainListOptions()
{
};
var service = new ApplePayDomainService();
var domains = service.List(options, requestOptions);
What account ID you're passing as StripeAccount ?
acct_1NA9BTLBFUffGjSu
I see teamx.koeln registered on the account
not sure what you mean by that...
i mean if the tld .koeln is causing the problem
I don't think so
ok
How do I get to your checkout page where apple pay should be rendered?
I don't speak german and I'd like to skip past required form fields.
Do you have any test credentials or can you disable required form fields for now?
sorry, https://www.teamx.koeln/escape_raum_zeitreise/?lang=en that should show the shop in english. You need to select a date in the future, so that the time/slot is green then click on a green slot, then selecting a random price, add it to the basket at the bottom. After that you need to click on checkout and enter some random data. On the last page should be the apple pay button
Du liebst ausgefeilte Stories und detailreiche Settings? Mission Zeitreise ist DEIN Escape Room in Kรถln. Komplexer Top-Raum.
it should be there where the google pay button is on my windows pc:
The button is rendered on the main page and is then overlaying the iframe, so its not inside the iframe.
Are you using your own iframe on the page?
The customer is adding an js script to their website and that is rendering the shop. In that script, that is running directly on the website, the stripe script is added and is loading the express payment element. The shop script is adding an iframe where the payment window is rendered and on the last page we are placing the express element above the iframe. So its still on the website, not in the iframe. That is working for all other customers of us, only for that customer its not working.
so its just postion:absolute and has a higher z-index and then its just with top/left placed at the spot where we want it above the iframe
so on this website its the same script from us and the apple pay button is working: https://mysteria-escape.de/booking/
The reason I ask is because there are logs in the console which suggest there is a different iframe involved. When embedding express checkout element in iframe, you also need to set allow="payment" attribute - https://docs.stripe.com/elements/express-checkout-element#:~:text=2When using an iframe%2C its origin must match the top-level origin (except for Safari 17 when specifying allow%3D"payment" attribute). Two pages have the same origin if the protocol%2C host (full domain name)%2C and port (if specified) are the same for both pages
Yes we have reimplemented the express button in the last week and we have testet stuff like rendering it in the iframe.
But as i sayed, its not inside the iframe, its above the iframe. As you can see here: its on the same level as the iframe, not inside it
I see
is your site down? I can't load https://www.teamx.koeln/escape_raum_zeitreise/?lang=en anymore
no its working for me
Hmm It isn't loading for me anymore ๐ฆ
do you have a max height or width set on the express checkout element?
we have set a width to the parent div, yes
like you can see in the screenshot, but not on the element which is created by the stripe script
vd_express_parent is the element where i mount the express element
Can you share the code you're using to initialize Stripe.js ?
Where you provide your publishable key
Venuedoo.Shop.stripe = Stripe(Venuedoo.Shop.config.stripe_api_key, {
stripeAccount: Venuedoo.Shop.config.stripe_account_id,
locale: language
});
var paymentRequest = Venuedoo.Shop.stripe.paymentRequest({
country: Venuedoo.Shop.config.vendor.country,
currency: Venuedoo.Shop.CalculateCartResult.order.Currency.shortname.toLowerCase(),
total: {
label: 'Gesamtsumme',
amount: Math.round((Venuedoo.Shop.CalculateCartResult.order.total * 100))
}
});
paymentRequest.canMakePayment().then(function (result) {
console.log('canMakePayment: ', result);
if(result == null || (result.googlePay == false && result.applePay == false)) {
$('#vd_express_parent').removeClass('vd-hidden').addClass('vd-hidden');
$('#vd_express_place').removeClass('vd-hidden').addClass('vd-hidden');
}
});
const options = {
mode: 'payment',
amount: Math.round((Venuedoo.Shop.CalculateCartResult.order.total * 100)),
currency: Venuedoo.Shop.CalculateCartResult.order.Currency.shortname.toLowerCase(),
paymentMethodCreation: 'manual'
};
Venuedoo.Shop.stripe_elements = Venuedoo.Shop.stripe.elements(options);
Venuedoo.Shop.stripe.stripecard = Venuedoo.Shop.stripe_elements.create('expressCheckout', {
buttonType: {
applePay: 'order',
googlePay: 'order'
},
buttonHeight: 50,
buttonTheme: {
applePay: 'white',
googlePay: 'white'
}
});
Venuedoo.Shop.stripe.stripecard.mount('#vd_express_parent');
this?
Yup, are you passing the same account ID in
stripeAccount: Venuedoo.Shop.config.stripe_account_id, ?
Hmm.. The code looks fine and the registration is looking fine too. I'm not sure what's missing..
Yes thats why iam here ๐ Also as i told your colleague, the canMakePayment, i know its for the Request Payment button, not for the express, but it returns for all other customers something like { appleplay: true, googlepay: false} but for this customer it returns NULL.
Can you try deleting the domain and registering it again using the API?
It seems like the account added the domain via the dashboard
yes
is there a delete function? Cant find the documentation for the ApplePayDomainService, i think you have changed it to the PaymentMethodDomainService
i can only disable it with the Update call
You can delete it from the dashboard I think
yes thats what i told the customer, did they have only disabled it?
It is still enabled.. What needs to happen here is that -
1/ Connected account should delete the domain using the dashboard
2/ Your platform will then create the domain on the connected account using the API (using the code you shared previously)
but your colleague send me this today. So it should be disabled and i have called
var service = new ApplePayDomainService();
var domain = service.Create(options, requestOptions);
after the customer told me he has deleted/disabled the domain in their dashboard
also when you register the domain can you please use PaymentMethodDomainService like in the docs and not the older ApplePayDomainService ? it does make a difference
ok i will try that, one minute.
okay i have to update the Stripe .Net SDK for that i think...
yeah I thought you would say that unfortunately
jumping from v40->v46 is pretty complex to do. So if it's easier you can try and make the call manually(maybe copy the curl example from the docs and use that), for a one-off.
ok, yes that upgrade is not doable in a couple of minutes. I will try it manually
ok done, but still no apple-pay button
can you share the response from when you made the API call to register the domain?
{
"id": "pmd_1Px7M6LBFUffGjSu57YY7mlN",
"object": "payment_method_domain",
"apple_pay": {
"status": "active"
},
"created": 1725887410,
"domain_name": "teamx.koeln",
"enabled": true,
"google_pay": {
"status": "active"
},
"link": {
"status": "active"
},
"livemode": true,
"paypal": {
"status": "active"
}
}
thanks. Ok yeah that's what I was afraid of, it just returns the existing registration object
I think this is just broken on our side and you can't register the domain for Connect if the account itself already registered it for themselves.
You'll need to write to https://support.stripe.com/?contact=true so we can manually delete that registration pmd_1Px7M6LBFUffGjSu57YY7mlN and then you can call the API to register the domain again but for your platform
Sorry
ok, thanks for the help. I hope that will work.