0.0.63 • Published 6 years ago

cashlez-wrapper-android-library v0.0.63

Weekly downloads
3
License
MIT
Repository
-
Last release
6 years ago

Cashlez Wrapper Android

This project serves as a android-cashlez-wrapper to create custom react native native modules that can later be installed through NPM and easily be used in production.

Support

  • React Native >= 0.48.3
  • Cashlez SDK 1.5.2.7
  • Android SDK 25

How to Use

1. Install

Install the library via npm.

npm install --save git+https://git.ecommchannels.com/Anka.Wirawan/cashlez-wrapper-android-library.git

2. Link the library:

Add the following to android/settings.gradle:

include ':cashlez-wrapper-android-library'
project(':cashlez-wrapper-android-library').projectDir = new File(settingsDir, '../node_modules/cashlez-wrapper-android-library/android')

Add the following to android/app/build.gradle:

dependencies {
    compile project(':cashlez-wrapper-android-library')
}

Add the following to android/app/src/main/java/**/MainApplication.java:

package com.your.package;

import com.btpn.lib.cashlezwrapper.CashlezPackage;  // add this for cashlez-wrapper-android-library

public class MainApplication extends Application implements ReactApplication {

    @Override
    protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            new CashlezPackage()     // add this for cashlez-wrapper-android-library
        );
    }
}

3. Import module

Simply import/require it by the name defined in your library's package.json:

import { 
    CashlezAuthentication,
    CashlezPayment, 
    CashlezPrint 
    } from 'cashlez-wrapper-android-library';

4. Usage

Below is list of some function and how to integrate with your project.

Authentication Module

// constants

// used for register listener / callback from cashlez login response
CashlezPayment.AUTHENTICATION_LOGIN_ON_RESPONSE
CashlezpaymentAUTHENTICATION_LOGIN_ON_START_ACTIVATION
// initialize
const {
    code,
    message,
    success
} = await CashlezAuthentication.initialize();

// submit login
CashlezAuthentication.login(username, pin);

// register listener
DeviceEventEmitter.addListener(
    CashlezAuthentication.AUTHENTICATION_LOGIN_ON_START_ACTIVATION, (data) => {
    console.log(data);
});

DeviceEventEmitter.addListener(
    CashlezAuthentication.AUTHENTICATION_LOGIN_ON_RESPONSE, (data) => {
    console.log(data);
});

Payment Module

// constants

// used for payment litener / callback from cashlez payment response
CashlezPayment.PAYMENT_PAY_ON_GET_READER_COMPANION
CashlezPayment.PAYMENT_PAY_ON_GET_PAYMENT_RESPONSE
CashlezPayment.PAYMENT_PAY_ON_PROVIDE_SIGNATURE
CashlezPayment.PAYMENT_PAY_ON_CAPTURE_SIGNATURE

// type of cashlez transaction
CashlezPayment.PAYMENT_TRANSACTION_TYPE_CASH
CashlezPayment.PAYMENT_TRANSACTION_TYPE_CREDIT
CashlezPayment.PAYMENT_TRANSACTION_TYPE_DEBIT
CashlezPayment.PAYMENT_TRANSACTION_TYPE_ECOMM
CashlezPayment.PAYMENT_TRANSACTION_TYPE_DIMOPAY
CashlezPayment.PAYMENT_TRANSACTION_TYPE_INSTALLMENT
CashlezPayment.PAYMENT_TRANSACTION_TYPE_RECURRING
CashlezPayment.PAYMENT_TRANSACTION_TYPE_CASHLEZ_LINK
CashlezPayment.PAYMENT_TRANSACTION_TYPE_PRE_AUTH
CashlezPayment.PAYMENT_TRANSACTION_TYPE_OFFLINE

// type of cashlez verification mode
CashlezPayment.PAYMENT_VERIFICATION_MODE_SIGNATURE
CashlezPayment.PAYMENT_VERIFICATION_MODE_PIN
// initialize
const {
    code,
    message,
    success
} = await CashlezPayment.initialize();

// start payment
CashlezPayment.registerReader();
CashlezPayment.startLocationListener();
CashlezPayment.startPayment();

// stop payment
CashlezPayment.stopLocationListener();
CashlezPayment.unregisterReader();
CashlezPayment.stopPayment();

// register listener 
DeviceEventEmitter.addListener(
    CashlezPayment.PAYMENT_PAY_ON_GET_READER_COMPANION, (data) => {
        console.log(data);
    });

DeviceEventEmitter.addListener(
    CashlezPayment.PAYMENT_PAY_ON_GET_PAYMENT_RESPONSE, (data) => {
        console.log(data);
    });

DeviceEventEmitter.addListener(
    CashlezPayment.PAYMENT_PAY_ON_PROVIDE_SIGNATURE, (data) => {
        console.log(data);
    });

// submit payment
cashPayment() {
    CashlezPayment.proceedPayment(amount, description, CashlezPayment.PAYMENT_TRANSACTION_TYPE_CASH, "", "");
}

debitPinPayment() {
    CashlezPayment.proceedPayment(amount, description, CashlezPayment.PAYMENT_TRANSACTION_TYPE_DEBIT, CashlezPayment.PAYMENT_VERIFICATION_MODE_PIN, "");
}

debitSignaturePayment() {
    CashlezPayment.proceedPayment(amount, description, CashlezPayment.PAYMENT_TRANSACTION_TYPE_DEBIT, CashlezPayment.PAYMENT_VERIFICATION_MODE_SIGNATURE, "");
}

creditPinPayment() {
    CashlezPayment.proceedPayment(amount, description, CashlezPayment.PAYMENT_TRANSACTION_TYPE_CREDIT, CashlezPayment.PAYMENT_VERIFICATION_MODE_PIN, "");
}

creditSignaturePayment() {
    CashlezPayment.proceedPayment(amount, description, CashlezPayment.PAYMENT_TRANSACTION_TYPE_CREDIT, CashlezPayment.PAYMENT_VERIFICATION_MODE_SIGNATURE, "");
}

// capture signature
CashlezPayment.captureSignature();

// submit signature
CashlezPayment.proceedSignature(stringSignature);

Print Module

// constants

// used for register listerner / call back from cashlez printing
CashlezPrint.PRINT_PRINTING_ON_GET_PRINTING_RESPONSE

// text format that supported by cashlez sdk
CashlezPrint.PRINT_FORMAT_NORMAL
CashlezPrint.PRINT_FORMAT_NORMAL_BIG
CashlezPrint.PRINT_FORMAT_BOLD
CashlezPrint.PRINT_FORMAT_TITLE
CashlezPrint.PRINT_FORMAT_BARCODE
CashlezPrint.PRINT_FORMAT_QR_CODE
CashlezPrint.PRINT_FORMAT_SMALL_LOGO

// text aligment that supported by cashlez sdk
CashlezPrint.PRINT_ALIGNMENT_LEFT
CashlezPrint.PRINT_ALIGNMENT_CENTER
CashlezPrint.PRINT_ALIGNMENT_RIGHT
// initialize
const {
    code,
    message,
    success
} = await CashlezPrint.initialize();

// start print
CashlezPrint.registerPrinterListener();
CashlezPrint.registerPrinter();

// stop print
CashlezPrint.unregisterPrinter();

// register listener
DeviceEventEmitter.addListener(
    CashlezPrint.PRINT_PRINTING_ON_GET_PRINTING_RESPONSE, (data) => {
    console.log(data);

});

// submit print free text
var receipts = [
    { text: '=========================', align: CashlezPrint.PRINT_ALIGNMENT_LEFT, format: CashlezPrint.PRINT_FORMAT_NORMAL},
    { text: 'Javscript', align: CashlezPrint.PRINT_ALIGNMENT_LEFT, format: CashlezPrint.PRINT_FORMAT_NORMAL },
    { text: 'React Native', align: CashlezPrint.PRINT_ALIGNMENT_RIGHT, format: CashlezPrint.PRINT_FORMAT_BOLD },
    { text: 'Kotlin', align: CashlezPrint.PRINT_ALIGNMENT_CENTER, format: CashlezPrint.PRINT_FORMAT_TITLE },
    { text: '=========================', align: CashlezPrint.PRINT_ALIGNMENT_LEFT, format: CashlezPrint.PRINT_FORMAT_NORMAL}
];

CashlezPrint.printText(JSON.stringify(receipts));

Data Response

console.log(data);

{
    "code": 200,
    "message": "Message/data/signature",
    "success": true
}

5. Example

https://git.ecommchannels.com/Anka.Wirawan/cashlez-wrapper-android-example

K E E P C A L M A N D S H A R E K N O W L E D G E