Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

React components for Stripe.js and Stripe Elements

License

NotificationsYou must be signed in to change notification settings

stripe/react-stripe-js

Repository files navigation

React components forStripe.js and Elements.

build statusnpm version

Requirements

The minimum supported version of React is v16.8. If you use an older version,upgrade React to use this library. If you prefer not to upgrade your Reactversion, we recommend using legacyreact-stripe-elements.

Getting started

Documentation

Minimal example

First, install React Stripe.js andStripe.js.

npm install @stripe/react-stripe-js @stripe/stripe-js

Using hooks

importReact,{useState}from'react';importReactDOMfrom'react-dom';import{loadStripe}from'@stripe/stripe-js';import{PaymentElement,Elements,useStripe,useElements,}from'@stripe/react-stripe-js';constCheckoutForm=()=>{conststripe=useStripe();constelements=useElements();const[errorMessage,setErrorMessage]=useState(null);consthandleSubmit=async(event)=>{event.preventDefault();if(elements==null){return;}// Trigger form validation and wallet collectionconst{error:submitError}=awaitelements.submit();if(submitError){// Show error to your customersetErrorMessage(submitError.message);return;}// Create the PaymentIntent and obtain clientSecret from your server endpointconstres=awaitfetch('/create-intent',{method:'POST',});const{client_secret:clientSecret}=awaitres.json();const{error}=awaitstripe.confirmPayment({//`Elements` instance that was used to create the Payment Element      elements,      clientSecret,confirmParams:{return_url:'https://example.com/order/123/complete',},});if(error){// This point will only be reached if there is an immediate error when// confirming the payment. Show error to your customer (for example, payment// details incomplete)setErrorMessage(error.message);}else{// Your customer will be redirected to your `return_url`. For some payment// methods like iDEAL, your customer will be redirected to an intermediate// site first to authorize the payment, then redirected to the `return_url`.}};return(<formonSubmit={handleSubmit}><PaymentElement/><buttontype="submit"disabled={!stripe||!elements}>        Pay</button>{/* Show error message to your customers */}{errorMessage&&<div>{errorMessage}</div>}</form>);};conststripePromise=loadStripe('pk_test_6pRNASCoBOKtIshFeQd4XMUh');constoptions={mode:'payment',amount:1099,currency:'usd',// Fully customizable with appearance API.appearance:{/*...*/},};constApp=()=>(<Elementsstripe={stripePromise}options={options}><CheckoutForm/></Elements>);ReactDOM.render(<App/>,document.body);

Using class components

importReactfrom'react';importReactDOMfrom'react-dom';import{loadStripe}from'@stripe/stripe-js';import{PaymentElement,Elements,ElementsConsumer,}from'@stripe/react-stripe-js';classCheckoutFormextendsReact.Component{handleSubmit=async(event)=>{event.preventDefault();const{stripe, elements}=this.props;if(elements==null){return;}// Trigger form validation and wallet collectionconst{error:submitError}=awaitelements.submit();if(submitError){// Show error to your customerreturn;}// Create the PaymentIntent and obtain clientSecretconstres=awaitfetch('/create-intent',{method:'POST',});const{client_secret:clientSecret}=awaitres.json();const{error}=awaitstripe.confirmPayment({//`Elements` instance that was used to create the Payment Element      elements,      clientSecret,confirmParams:{return_url:'https://example.com/order/123/complete',},});if(error){// This point will only be reached if there is an immediate error when// confirming the payment. Show error to your customer (for example, payment// details incomplete)}else{// Your customer will be redirected to your `return_url`. For some payment// methods like iDEAL, your customer will be redirected to an intermediate// site first to authorize the payment, then redirected to the `return_url`.}};render(){const{stripe}=this.props;return(<formonSubmit={this.handleSubmit}><PaymentElement/><buttontype="submit"disabled={!stripe}>          Pay</button></form>);}}constInjectedCheckoutForm=()=>(<ElementsConsumer>{({stripe, elements})=>(<CheckoutFormstripe={stripe}elements={elements}/>)}</ElementsConsumer>);conststripePromise=loadStripe('pk_test_6pRNASCoBOKtIshFeQd4XMUh');constoptions={mode:'payment',amount:1099,currency:'usd',// Fully customizable with appearance API.appearance:{/*...*/},};constApp=()=>(<Elementsstripe={stripePromise}options={options}><InjectedCheckoutForm/></Elements>);ReactDOM.render(<App/>,document.body);

TypeScript support

React Stripe.js is packaged with TypeScript declarations. Some types are pulledfrom@stripe/stripe-js—be sure to add@stripe/stripe-js as a dependency to your project for full TypeScript support.

Typings in React Stripe.js follow the sameversioning policy as@stripe/stripe-js.

Contributing

If you would like to contribute to React Stripe.js, please make sure to read ourcontributor guidelines.


[8]ページ先頭

©2009-2025 Movatter.jp