@zpxp/handcash-connect
TypeScript icon, indicating that this package has built-in type declarations

0.4.8 • Public • Published

Install

npm i @handcash/handcash-connect

Initialize the SDK

To start, you will need to create an instance of HandCashConnect. This object allows you to interact with the SDK.

Don't have an app yet? Sign-up for dashboard.handcash.dev and create your first app.

A HandCashConnect requires a appId that represents your application, as well as an appSecret to ensure the SDK is invoked under your domain.

const { HandCashConnect } = require('@handcash/handcash-connect');

const handCashConnect = new HandCashConnect({ 
   appId: 'your-app-id', 
   appSecret: 'your-app-secret',
});

Accessing User Accounts

In order to access to user account and trigger payments on their behalf, you need to obtain an authToken that represents such permissions. You can find more about the user authorization process.

  1. Get the redirectionUrl that redirects to HandCash to obtain the authToken
  2. Redirect the user to the redirectionUrl.
const redirectionUrl = handCashConnect.getRedirectionUrl();
  1. Once the user is redirected back to your app with the authToken, you are ready to go!
const account = handCashConnect.getAccountFromAuthToken(authToken);

Your first payment

The following code shows how to make a simple payment:

const { HandCashConnect } = require('@handcash/handcash-connect');

const handCashConnect = new HandCashConnect({ appId: 'your-app-id', appSecret: 'your-app-secret' });
const account = handCashConnect.getAccountFromAuthToken(authToken);

const paymentParameters = {
  description: 'Hold my beer!🍺',
  appAction: 'drink',
  payments: [
    { to: 'eyeone', currencyCode: 'USD', amount: 0.25 },
    { to: 'apagut', currencyCode: 'EUR', amount: 0.05 },
    { to: 'satoshi', currencyCode: 'SAT', amount: 50000 },
  ]
};

const paymentResult = await account.wallet.pay(paymentParameters);
console.log(paymentResult);
{
   "transactionId":"0a25cc07953de261e2f7dbc3601a61d4e74f96b99cd55c0755df9b9888cdccbc",
   "note":"Hold my beer!🍺",
   "appAction":"drink",
   "type":"send",
   "time":1599223479,
   "satoshiFees":288,
   "satoshiAmount":5332,
   "fiatExchangeRate":165.4370470109637,
   "fiatCurrencyCode":"EUR",
   "participants":[
      {
         "type":"user",
         "alias":"eyeone",
         "displayName":"Eye One",
         "profilePictureUrl":"https://handcash-cloud-production.herokuapp.com/users/profilePicture/eyeone"
      },
      {
         "type":"user",
         "alias":"apagut",
         "displayName":"Alex",
         "profilePictureUrl":"https://handcash-cloud-production.herokuapp.com/users/profilePicture/apagut"
      },
      {
         "type":"user",
         "alias":"satoshi",
         "displayName":"Satoshi Nakamoto",
         "profilePictureUrl":"https://handcash-cloud-production.herokuapp.com/users/profilePicture/satoshi"
      }
   ],
   "attachments":[]
}

Readme

Keywords

none

Package Sidebar

Install

npm i @zpxp/handcash-connect

Weekly Downloads

4

Version

0.4.8

License

ISC

Unpacked Size

73.2 kB

Total Files

53

Last publish

Collaborators

  • zpxp