react-native-stronghold-pay-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-alpha.1 • Public • Published

Build Status

react-native-strongholdpay-sdk

Stronghold Pay SDK for React Native

Installation

npm install react-native-strongholdpay-sdk

Usage

This package is based on the Stronghold Pay Javascript SDK. Check the official documentation for more information.

Import the components

import {
  AddPaymentSource,
  UpdatePaymentSource,
  Charge,
  Tip,
} from 'react-native-strongholdpay-sdk';

AddPaymentSource

<AddPaymentSource
  publishableKey={publishableKey}
  customerToken={customerToken}
  onPress={() => console.log('on press AddPaymentSource')}
  onExit={() => console.log('on exit')}
  onEvent={(event) => console.log('on event', JSON.stringify(event))}
  onSuccess={(paymentSource) => {
    console.log('add payment source successful', JSON.stringify(paymentSource));
  }}
  onError={(error) => console.log('on error', JSON.stringify(error))}
  onReady={() => console.log('on ready')}
>
  <Button
    title="Add Payment Source"
    onPress={() => console.log('onPress child button')}
  />
</AddPaymentSource>

UpdatePaymentSource

<UpdatePaymentSource
  publishableKey={publishableKey}
  customerToken={customerToken}
  data={{
    paymentSourceId,
  }}
  onSuccess={() => console.log('update payment source successful')}
>
  <Button
    title="Update Payment Source"
    onPress={() => console.log('onPress child button')}
  />
</UpdatePaymentSource>

Charge

<Charge
  publishableKey={publishableKey}
  customerToken={customerToken}
  data={{
    charge: { amount: 4950, paymentSourceId, externalId: '12345679' },
    tip: {
        amount: 200,
        beneficiaryName: 'The Beneficiary Person',
    },
  }}
  onSuccess={(charge) => {
    console.log('charge creation successful', JSON.stringify(charge));
  }}
>
  <Button title="Charge" onPress={() => console.log('onPress child button')} />
</Charge>

Tip

<Tip
  publishableKey={publishableKey}
  customerToken={customerToken}
  data={{
    tip: {
      amount: 300,
      paymentSourceId: paymentSourceId,
      chargeId: chargeId,
      beneficiaryName: 'The Beneficiary Person',
    },
  }}
  onSuccess={(tip) => {
    console.log('tip creation successful', JSON.stringify(tip));
  }}
>
  <Button
    title="Tip"
    onPress={() => console.log('onPress child button')}
  />
</Tip>

How to run the example

Install the dependencies

yarn install

Configure the example

// Set your publishable key here
const publishableKey = 'pk_sandbox_0ERwWH6SHT8L2iKMniifHed8';

// Set the customer token generated using the API
const customerToken =
  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiJjdXN0b21lcl9IcHdBbG9FbnAxUTYwb0Y4cTNnT0pMeFYiLCJuYmYiOjE2MTM1Njk4NDIsImV4cCI6MTYxMzYxMzA0MiwiaWF0IjoxNjEzNTY5ODQyfQ.GKTFqF5egEc2Z2Gasf-xvXeXU_gFhTf7MCdK6Zql5ZE';

Starts the demo

yarn example web

The demo is not working on browsers since it is using webviews. Expo is not compatible with webviews currently so you would need to run it on a mobile device (a simulator or a real device).

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

Package Sidebar

Install

npm i react-native-stronghold-pay-sdk

Weekly Downloads

1

Version

1.0.0-alpha.1

License

MIT

Unpacked Size

153 kB

Total Files

82

Last publish

Collaborators

  • adrien_etienne