Giter Site home page Giter Site logo

sridharcool0005 / angular-rave Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ashinzekene/angular-rave

0.0 1.0 0.0 833 KB

💵 An angular2+ module for integrating payments using the rave gateway

Home Page: https://ashinzekene.github.io/angular-rave

License: MIT License

TypeScript 87.89% JavaScript 8.74% HTML 3.09% CSS 0.28%

angular-rave's Introduction

ANGULAR-RAVE

Easily intergrate the rave payment gateway in your angular2+ project

HOW TO USE

You can checkout the demo here

1. INSTALL THE MODULE

Run

npm install --save angular-rave

in the your angular project

2. Import the module into your project like so

import { NgModule } from '@angular/core';
import { AngularRaveModule } from 'angular-rave';
...

@NgModlule({
  imports: [
    AngularRaveModule.forRoot({
      key: 'FLWPUBK-XXXXXXXXXXXXXXXXXXX',
      isTest: true,
    }),
  ]
})

3. Implementing Angular-rave

There are two option available

  • The angular-rave component:
<angular-rave
  [customer_email] = "'[email protected]'"
  [customer_phone] = "'08090909090'"
  [amount]="500000"
  [custom_title]="'Bill Payment'"
  [txref]="'USR1295950'"
  (callback)="paymentSuccess($event)"
  (close)="paymentFailure()"
  (close)="paymentInit()"
></angular-rave>
  1. The angular-rave directive:
<button
  angular-rave
  [customer_email] = "'[email protected]'"
  [customer_phone] = "'08090909090'"
  [amount]="500000"
  [custom_title]="'Bill Payment'"
  [txref]="'USR1295950'"
  (callback)="paymentSuccess($event)"
  (onclose)="paymentFailure()"
  (init)="paymentInit($event)"
>PAY NOW</button>

And then in your component.ts file:

import { Component } from '@angular/core';
import { PaymentInstance } from 'angular-rave';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  paymentInstance: PaymentInstance;
  token :string

  paymentFailure() {
    console.log('Payment Failed');
  }

  paymentSuccess(res) {
    console.log('Payment complete', res);
    this.paymentInstance.close();
  }

  paymentInit(paymentInstance) {
    this.paymentInstance = paymentInstance;
    console.log('Payment about to begin', paymentInstance);
  }
}

Rave Options

You can also pass in an object containing your rave options like so

<button
  angular-rave
  [raveOptions]="paymentOptions"
>
  PAY NOW
</button>

And then you can import the RaveOptions class for help in typing

import { RaveOptions } from 'angular-rave';

...
paymentOptions: RaveOptions = {
  PBFPubKey: 'FLWPUBK-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  customer_email: '[email protected]',
  customer_firstname: 'Ashinze',
  customer_lastname: 'Ekene',
  custom_description: 'Payment for goods',
  amount: 500000,
  customer_phone: '09026464646',
  txref: 'a-unique-reference',
}

Autoclose

By default, you would have to call paymentInstance.close() to close the modal after a transaction is complete. You can pass in the autoClose boolean input to close the modal automatically after a transaction is completed. Use like so

<button
  angular-rave
  [autoClose]="true"
  [raveOptions]="paymentOptions"
>PAY NOW</button>

Rave Key Specificity

Also, you can pass in a key in the component and the directive, in such situation, this key is given a higher preference over the global forRoot key. For example, if you have this is your module file

@NgModule({
  imports: [
    AngularRaveModule.forRoot({
      key: 'FLWPUBK-1000',
      isTest: true,
    }),
  ]
})

and this in your component

<button
  angular-rave
  [PBFPubKey]="FLWPUBK-2000"
  [raveOptions]="paymentOptions"
>
  PAY NOW
</button>

Then FLWPUBK-2000 would be used instead

NOTE:

  • When using the component, the rave's payment popup shows once the component is rendered while using the directive the popup shows on click
  • Always generate a unique reference for every transaction
  • After successful payment always perform server verification

OPTIONS

Name Type Required Default Value Description
PBFPubKey string true - Your merchant public key provided when you create a button.
customer_email string true - ( if customer phone number is not passed ) Email of the customer.
customer_phone string true - phone number of the customer.
txref string true - Unique transaction reference provided by the merchant.
amount number true - Amount to charge.
integrity_hash string false - (temporarily) This is a sha256 hash of your getpaidSetup values, it is used for passing secured values to the payment gateway.
payment_method string false "both" This allows you select the payment option you want for your users, possible values are card, account or both.
payment_options string false - This allows you to select the payment option you want for your users. Possible values are: 'card', 'account', 'ussd'. To use more than one option just add them as comma separated values without spaces e.g. 'card,account', 'card,account,qr' etc.
currency string false "NGN" currency to charge the card in.
country string false "NG" route country.
customer_firstname string false - firstname of the customer.
customer_lastname string false - lastname of the customer.
pay_button_text string false - Text to be displayed on the Rave Checkout Button.
custom_title string false - Text to be displayed as the title of the payment modal.
custom_description string false - Text to be displayed as a short modal description.
redirect_url string false - URL to redirect to when transaction is completed.
custom_logo string false - Link to your custom image.
meta object false - Any other custom data you wish to pass. Eg- [{ metaname: ‘flightid’, metavalue: ‘93849-MK5000’}]
onclose function() false - A function to be called when the pay modal is closed.
callback function(res) true - A function to be called on successful card charge. User’s can always be redirected to a successful or failed page supplied by the merchant here based on response.
subaccounts []{id: string, transaction_split_ratio: string} true - Subaccounts to add for split payments https://developer.flutterwave.com/v2.0/docs/split-payment
init function(res) false - A function to be called when payment is about to begin
autoClose boolean false - If true, the payment modal closes automatically after a transaction is completed

You can get more information from rave's documentation

CONTRIBUTING

This is an open source project, feel free to create issues and submit pull requests to make corrections or enhance functionality

How can I thank you

Why not star the github repo? I'd love the attention! Why not share the link for this repository on Twitter or anywhere? Spread the word!

Don't forget to follow me on twitter!

Thanks! Ashinze Ekene.

License

The MIT License (MIT). Please see License File for more information.

angular-rave's People

Contributors

ashinzekene avatar okeyokoro avatar tyronasaurus-rex avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.