It's Release Day!! ๐
Take a ๐ at @power-elements/stripe-elements
, a package which exposes the Stripe.js API through cross-framework, declarative custom elements.
What that means is that with the help of <stripe-elements>
, you can easily integrate Stripe credit card payments into your site, no matter which framework you're using - if any! Even if your payment form is inside Shadow DOM (not yet officially supported by Stripe.js), you can still take payments securely with these custom elements.
And this latest version adds a nice new feature. Introducing: <stripe-payment-request>
Demo
The above demo will try to use <stripe-payment-request>
for a nicer UX, but if the browser is unable, will fall back to a classic <stripe-elements>
credit card form.
If you want to check out the Payment Request support, you'll need
- A browser which supports the Payment Request API (or Apple Pay for Safari)
- At least one credit card saved in the browser (i.e.
test card
4242424242424242
) - You need a Stripe testing publishable key
To use the fallback form, all you need is the publishable key.
And like I mentioned above, stripe-elements web components work with any framework.
For More Info...
For complete API documentation see the README, and for live demos of various use cases, check out the Storybook
Take it for a spin in your next project:
npm i -S @power-elements/stripe-elements
<script type="module" src="https://unpkg.com/@power-elements/stripe-elements?module"></script>
Top comments (5)
Oooooooh i have two products that use Stripe right now...
will definitely try this out...
Great writeup!
This was on my todo list for this year, thank you so much for checking things off my list for me ;). I'll contribute to this instead once we get to the need for this later this year :)
Looking forward to it!
A few ideas I've been kicking around are adding a
type
attr likeand using
Element#update
to sync form data to the element, maybe declaratively with slotted inputsSomething like this?
PCI requires the inputs to be in Stripe's iframe, but I was thinking more something like
or some such, so that the generated representation (token|source|paymentMethod) has that info inside
see stripe.com/docs/js/tokens_sources/... and stripe.com/docs/js/tokens_sources/...
It would be ideal if, even in a browser that doesn't support the
formdata
event, we could still get data from custom controls in the form.