react-stripe-checkout

Load stripe's checkout.js as a react component. Easiest way to use checkout with React.

Github星跟蹤圖

npm version
Dependencies Status
Gitter

React Stripe Checkout Component

Stripe's Checkout makes it almost too easy to take people's money.
This should make it even easier if you're building a react
application.

Installation

Get started by installing with npm

npm install react-stripe-checkout

Requires babel for compiling. If anyone is having issues with that,
open an issue and I'll do my best to better document the build process.

Changes in version 2.0

There used to be a separate .styl file and respective .css output. These have been removed and are now written directly in js.

Requirements

token and stripeKey are the only required props,
everything else is optional as per the stripe docs. See Checkout
Docs
. All props
go through simple validation and are passed to stripe checkout, they're
also documented in StripeCheckout.js.

import React from 'react'
import StripeCheckout from 'react-stripe-checkout';

export default class TakeMoney extends React.Component {
  onToken = (token) => {
    fetch('/save-stripe-token', {
      method: 'POST',
      body: JSON.stringify(token),
    }).then(response => {
      response.json().then(data => {
        alert(`We are in business, ${data.email}`);
      });
    });
  }

  // ...

  render() {
    return (
      // ...
      <StripeCheckout
        token={this.onToken}
        stripeKey="my_PUBLISHABLE_stripekey"
      />
    )
  }
}

This will give you a default Stripe-style button which looks like this:

stripe checkout button

Send all the props!

<StripeCheckout
  name="Three Comma Co." // the pop-in header title
  description="Big Data Stuff" // the pop-in header subtitle
  image="https://www.vidhub.co/assets/logos/vidhub-icon-2e5c629f64ced5598a56387d4e3d0c7c.png" // the pop-in header image (default none)
  ComponentClass="div"
  label="Buy the Thing" // text inside the Stripe button
  panelLabel="Give Money" // prepended to the amount in the bottom pay button
  amount={1000000} // cents
  currency="USD"
  stripeKey="..."
  locale="zh"
  email="info@vidhub.co"
  // Note: Enabling either address option will give the user the ability to
  // fill out both. Addresses are sent as a second parameter in the token callback.
  shippingAddress
  billingAddress={false}
  // Note: enabling both zipCode checks and billing or shipping address will
  // cause zipCheck to be pulled from billing address (set to shipping if none provided).
  zipCode={false}
  alipay // accept Alipay (default false)
  bitcoin // accept Bitcoins (default false)
  allowRememberMe // "Remember Me" option (default true)
  token={this.onToken} // submit callback
  opened={this.onOpened} // called when the checkout popin is opened (no IE6/7)
  closed={this.onClosed} // called when the checkout popin is closed (no IE6/7)
  // Note: `reconfigureOnUpdate` should be set to true IFF, for some reason
  // you are using multiple stripe keys
  reconfigureOnUpdate={false}
  // Note: you can change the event to `onTouchTap`, `onClick`, `onTouchStart`
  // useful if you're using React-Tap-Event-Plugin
  triggerEvent="onTouchTap"
  >
  <button className="btn btn-primary">
    Use your own child component, which gets wrapped in whatever
    component you pass into as "ComponentClass" (defaults to span)
  </button>
</StripeCheckout>

Other info

This was probably terribly written, I'll look at any PR coming my way.

Resources

Contributors

  • @orhan-swe added updates to checkout after instantiation and fixed a loading error
  • @ekalvi added multiple checkout buttons per page
  • @jstaffans adding support for locale
  • @gabestein added billing and shipping options
  • @samcorcos added testing

主要指標

概覽
名稱與所有者azmenak/react-stripe-checkout
主編程語言JavaScript
編程語言JavaScript (語言數: 1)
平台
許可證MIT License
所有者活动
創建於2015-07-08 11:37:42
推送於2020-08-03 18:00:29
最后一次提交2020-02-29 18:43:25
發布數24
最新版本名稱v2.2.5 (發布於 2016-09-07 09:33:06)
第一版名稱v1.0.2 (發布於 2015-07-15 14:45:34)
用户参与
星數1k
關注者數19
派生數159
提交數165
已啟用問題?
問題數110
打開的問題數33
拉請求數33
打開的拉請求數7
關閉的拉請求數9
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?