#BJ
1 messages · Page 1 of 1 (latest)
why not just take the customer details like say, if you store their email in a database on your end, fetch the customer, and then said data?
At least that is how I do it on my integration on my capstone project as my ERD has an email column to help with that.
Yes, all details data like email I stored it in DB but my point is the payment method data..
normally I do not directly worry about payment method data on my capstone project as I modeled it as an auto renewing subscription for everything on it.
However, yeah not all projects are like that.
-
sure. You can get details of the Customer on the platform account via the API, and you can use the ephemeral key integration with that Customer. Ultimately, you kind of have to clone the customer right? You can't do a Direct Charge unless the objects(PaymentMethod pm_xxx) exist on the connected account
-
yes, that's possible, they can charge the cloned customer themselves.
-
nothing automatic, you would have to build a solution for that. I generally recommend not trying to do that, and keeping a "master" copy of the customer on the platform account that you manage and update, and only clone a PaymentMethod to a connected account when you need a payment.
-
Yes that's fine(it's what I'm suggesting above)
note that what we call "cloning a customer" in our docs does not actually involve cloning a Customer object cus_xxx ; rather it's just that you can take a PaymentMethod pm_xxx from a Customer on a platform account, and copy that PaymentMethod to a connected account(and then on the connected account you can charge it directly, or attach to a Customer there); which is a building block that could be used for a "shared customers" system.
Thank you for answer and details!
Can I ask more? well, I describe the my situation more, I used future payment for store card data in our user(platform customer), and we implemented off-session charge. But we have problem with 3DS, some card was rejected by bank in off-session charge. So I should create payment intent for on-session now.
But the requirement is that the customer should be controlled or managed by our stripe account only(platform). So connected account(seller) must not be create some payment with cloned payment method data.(We use standard account for connect).
So according to answer 2, I cannot clone the customer into connected account.
that requirement is not possible, if you use Standard Connect and create a cus_xxx in the connected account with a saved pm_xxx, the owner of that account can initiate a payment against them(using their dashboard, or their own API keys), though that might be unlikely unless they have a specific reason to do so.
generally that shouldn't happen(setting up on the platform should allow an exemption from 3DS on the connected account), but it's possible, and I'd need an example to say much more. For example if your platform is in a country like the US and the connected account is in Europe sometimes these exemptions won't work.
if you don't want the connected account to be able to charge, I would again mention:
I generally recommend not trying to do that, and keeping a "master" copy of the customer on the platform account that you manage and update, and only clone a PaymentMethod to a connected account when you need a payment.
if you clone a PaymentMethod and use it for a one-off PaymentIntent, that's it, that cloned PaymentMethod, it can't be used again on the connected account.
it's only a problem if you save the PaymentMethod to Customers on the connected account.
Thank you for answer. 🙂 I guess I misunderstand some point. My situation is like using test card 4000 0027 6000 3184. off-session was decline because of 3DS. So I created on-session but unfortunately, I cannot clone the customer into connect account. How can I show the stored card data from customer on frontend? When I just tried to with platform customer's ephemeralkey's secret, I got the No such customer. This is right because connect account doesn't have customer. So Is there some way to show? or should I clone the customer?
that test card always requires authentication regardless of what you do with it
use the 3155 card to test "setup and then not needing 3DS off-session".
When I just tried to with platform customer's ephemeralkey's secret, I got the No such customer. This is right because connect account doesn't have customer
well you'd have to use the secret key of your platform to create the ephemeral key, naturally
and when you say frontend, I assume you are talking about a mobile app using our mobile SDKs, and the publishable key of the platform too.
unfortunately it's really hard/impossible to do this really where you show the payment methods saved to a customer on the platform and then create a PaymentIntent on the connected account, it doesn't really work as the SDKs don't really support switching accounts like that.
so it's likely better to not use our frontend components like PaymentSheet and instead implement your own UI for showing cards and then doing the payment, it's a lot of custom work unfortunately. The Stripe product here for handling this type of setup with Connect + cloning is quite poor.