Skip to content

Latest commit

 

History

History
124 lines (95 loc) · 4.99 KB

File metadata and controls

124 lines (95 loc) · 4.99 KB

@nativescript/square-in-app-payments

Build remarkable payments experiences in your own apps with Square's In-App Payments SDK for NativeScript.

npm install @nativescript/square-in-app-payments

Usage

An after-prepare.js hook is added by this plugin to handle a build phase for the SDK to run.

You will see the following logs in the console:

✅ Square SDK Build Phase Script Added to Xcode Build Phases

If you do not see these logs, prepare the ios platform again prior to build

ns prepare ios

Example

init must be called in the app.ts or main.ts (bootstrap file).

import { SquareInAppPayments } from '@nativescript/square-in-app-payments';
SquareInAppPayments.init();

You can then setup the SDK options wherever needed.

import { SquareInAppPayments } from '@nativescript/square-in-app-payments';

const square = new SquareInAppPayments();
// The application ID is required to be set before any other methods from the SDK are called.
square.squareApplicationID = process.env.production ? 'prod-key' : 'sandbox-key';
console.log('Square Application ID:', square.squareApplicationID);

// call from your view bindings top open card entry screen
function startCardEntry() {
  square.startCardEntry({
    collectPostalCode: true,
    isGiftCard: false,
    // theme configuration is only available on iOS
    ...(__APPLE__
      ? {
          themeConfig: {
            tintColor: UIColor.systemBlueColor,
            backgroundColor: UIColor.whiteColor,
            saveButtonTitle: 'Submit',
          },
        }
      : {}),
  });
}

// configure response and completion callbacks
SquareInAppPayments.onResponse = (cardDetails, onComplete) => {
  console.log('Card Details:', cardDetails);

  // handle with your own backend
  fetch('https://randomuser.me/api/')
    .then((response) => {
      onComplete();
    })
    .catch((error) => {
      onComplete('Failed');
    });
};

SquareInAppPayments.onComplete = (cancelled, cardDetails) => {
  console.log('Cancelled:', cancelled);
  console.log('Card Details:', cardDetails);
};

Test Cards

Brand Number CVV
Visa 4111 1111 1111 1111 111
Mastercard 5105 1051 0510 5100 111
Discover 6011 0000 0000 0004 111
Diners Club 3000 000000 0004 111
JCB 3569 9900 1009 5841 111
American Express 3400 000000 00009 1111
China UnionPay 6222 9888 1234 0000 123
Square Gift Card 7783 3200 0000 0000

References

Square Overview

iOS Documentation

Android Documentation

License

Apache License Version 2.0