Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-native-card-io

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-card-io

React Native component for card.io

  • 1.0.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
40
decreased by-45.21%
Maintainers
1
Weekly downloads
 
Created
Source

card.io component for React Native

A fully featured implementation of card.io for iOS and Android.

Screenshot of card.io in action

Installation iOS

  1. Run npm install react-native-card-io --save in your project directory
  2. Inside node_modules, unzip react-native-card-io/ios/libs/card.io-iOS-SDK/CardIO/libCardIO.a.zip
  3. Open your project in XCode, right click on Libraries and click Add Files to "Your Project Name"
  4. Within node_modules, find react-native-card-io/ios and add RCTCardIO.xcodeproj to your project.
  5. Add libRTCCardIO.a to Build Phases -> Link Binary With Libraries
  6. Add the -lc++ flag to Build Settings -> Other Linker Flags

Installation Android

TODO: Currently building a react-native app for iOS and Android, so this will be done soon :)

Usage

let CardIO = require('react-native-card-io');
let { CardIOUtilities, CardIOView } = CardIO;

...

componentDidMount() {
  // The preload method prepares card.io to launch faster. Calling preload is optional but suggested.
  // On an iPhone 5S, for example, preloading makes card.io launch ~400ms faster.
  // The best time to call preload is when displaying a view from which card.io might be launched;
  // e.g., inside your view controller's componentDidMount method.
  // preload works in the background; the call to preload returns immediately.
  CardIOUtilities.preload();
},

render() {
  if (CardIOUtilities.canReadCardWithCamera) {
    return (
      <View>
        <CardIOView
          languageOrLocale="en_AU"
          guideColor="red"
          useCardIOLogo={true}
          hideCardIOLogo={false}
          allowFreelyRotatingCardGuide={true}
          scanInstructions={''}
          scanOverlayView={<View />}
          scanExpiry={true}
          scannedImageDuration={2}
          detectionMode={CardIOView.cardImageAndNumber}
          didScanCard={result => console.log(result)} />      
      </View>
    );
  }
  return (
    <View style={styles.noCamera}>
      <Text>card.io requires a camera</Text>
    </View>
  );
}

CardIOView

props

See card_io_view.js for all React.PropTypes. All props are optional and the view can be used with simply:

<CardIOView style={{flex: 1}} />

didScanCard

The didScanCard function returns the following object:

{
  cardNumber: string,
  redactedCardNumber: string,
  expiryMonth: number, // January == 1
  expiryYear: number,
  cvv: string,
  postalCode: string,
  scanned: boolean,
  cardImage: string, // base64
  cardType: string,
  logoForCardType: string, // base64
}

To display the images returned by didScanCard use the following:

<Image source={{uri: 'data:image/png;base64,'+ cardImage, isStatic: true}} />

TODO

  • Android implementation
  • implement CardIOPaymentViewController
  • add rotation notifications

Secure

card.io does not store or transmit credit card numbers. Recommend using the Privacy Snapshot react-native component if using with iOS to blur the screen when the app is backgrounded.

Keywords

FAQs

Package last updated on 08 Nov 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc