项目作者: kingflamez

项目描述 :
To integrate Rave easily with Javascript Libraries and Frameworks
高级语言: JavaScript
项目地址: git://github.com/kingflamez/Rave-Javascript-SDK.git
创建时间: 2018-03-27T09:38:58Z
项目社区:https://github.com/kingflamez/Rave-Javascript-SDK

开源协议:MIT License

下载


Rave-Javascript-SDK

License: MIT
npm version
npm

Implement Rave by Flutterwave easily with Javascript frameworks and Libraries

Tested on

  • VueJS
  • NuxtJS
  • ReactJS

Installation

  1. npm install rave-javascript-sdk --save

ReactJS and VueJS

Add this Rave Inline Script to your index.html for a test account

  1. <script src="https://rave-api-v2.herokuapp.com/flwv3-pug/getpaidx/api/flwpbf-inline.js"></script>

Add this Rave Inline Script to your index.html for a live account

  1. <script src="https://api.ravepay.co/flwv3-pug/getpaidx/api/flwpbf-inline.js"></script>

Nuxt

Add this to your nuxt.config.js or in Vue Page head for a test account

  1. head: {
  2. script: [
  3. ---
  4. { src: 'https://rave-api-v2.herokuapp.com/flwv3-pug/getpaidx/api/flwpbf-inline.js', body: true }
  5. ---
  6. ]
  7. },

Add this to your nuxt.config.js or in Vue Page head for a live account

  1. head: {
  2. script: [
  3. ---
  4. { src: 'https://api.ravepay.co/flwv3-pug/getpaidx/api/flwpbf-inline.js', body: true }
  5. ---
  6. ]
  7. },

Basic Usage

VueJS Sample

  1. <template>
  2. <button v-on:click="buy">Buy</button>
  3. </template>
  4. <script>
  5. import Rave from 'rave-javascript-sdk'
  6. export default {
  7. methods: {
  8. buy() {
  9. var rave = new Rave();
  10. rave.setEmail('flamekeed@gmail.com')
  11. .setAmount("3000")
  12. .setPublicKey("FLWPUBK-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-X")
  13. .setModalTitle("Flamez fresh")
  14. .setMeta([
  15. { metaname: 'Room', metavalue: "36A" },
  16. { metaname: 'Colour', metavalue: "Blue" }
  17. ])
  18. .initialize()
  19. }
  20. }
  21. }
  22. </script>

ReactJS Sample

  1. import React, { Component } from 'react';
  2. import Rave from 'rave-javascript-sdk';
  3. class Events extends Component {
  4. constructor(props) {
  5. super(props);
  6. this.buy = this.buy.bind(this);
  7. }
  8. buy() {
  9. var rave = new Rave();
  10. rave.setEmail('flamekeed@gmail.com')
  11. .setAmount("3000")
  12. .setPublicKey("FLWPUBK-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-X")
  13. .setModalTitle("Flamez fresh")
  14. .setMeta([
  15. { metaname: 'Room', metavalue: "36A" },
  16. { metaname: 'Colour', metavalue: "Blue" }
  17. ])
  18. .initialize()
  19. }
  20. render() {
  21. return (
  22. <div>
  23. <button onClick={this.buy}>Buy</button>
  24. </div>
  25. )
  26. }
  27. }

Available Rave methods

Name Type Default Required Description
setPublicKey String Yes Your merchant public key provided when you sign up for rave.
setEmail String Yes Email of the customer.
setAmount String Yes Amount to charge.
setPhone String No Phone number of the customer.
setPaymentMethod String both No This allows you select the payment option you want for your users, this can be both, card, ussd or account.
setMeta Object Array [] No These are additional information you want to pass through the payment gateway .
setCurrency String NGN No The currency you want to charge the customer.
setRedirectURL String No URL to redirect to when transaction is completed.
setCountry String NG No The country of operation.
setFirstname String No First name of the customer.
setLastName String No Last name of the customer.
setModalTitle String No Text to be displayed as the title of the payment modal.
setDescription String No Text to be displayed as a short modal description.
setLogo String No Link to the Logo image.
setTransactionReference String It will be generated automatically when left blank No Unique transaction reference provided by the merchant.
setCallback Function No 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.
setCancel Function No A function to be called when the pay modal is closed.

Available Functions

  1. RequeryTransaction({ live, txref, SECKEY })

This requeries a transaction, useful to check if a failed transaction is successful

  • live: false or true Set to true if you are using a live account and vice versa
  • txref: The transaction reference
  • SECKEY: Your API secret key
  1. RequeryTransaction({ live: false, txref: response.tx.txRef, SECKEY: "FLWSECK-XXXXXXXXXXXXXXXXXXXXXXXXXXXX-X" })
  2. .then(function (resp) {
  3. // console.log(resp);
  4. })
  5. .catch(function (error) {
  6. // console.log(error);
  7. });
  1. VerifyTransaction({ live, txref, SECKEY })

This validates a transaction, you can get your metas passed through this

  • live: false or true Set to true if you are using a live account and vice versa
  • txref: The transaction reference
  • SECKEY: Your API secret key
  1. var currency = "NGN"; //Gotten from server or hardcoded
  2. var amount = "3000"; //Gotten from server or hardcoded
  3. VerifyTransaction({ live: false, txref: response.tx.txRef, SECKEY: "FLWSECK-XXXXXXXXXXXXXXXXXXXXXXXXXXXX-X" })
  4. .then(function (resp) {
  5. // console.log(resp);
  6. var chargeResponse = resp.data.data.flwMeta.chargeResponse;
  7. var chargeAmount = resp.data.data.amount;
  8. var chargeCurrency = resp.data.data.transaction_currency;
  9. if ((chargeResponse == "00" || chargeResponse == "0") && (chargeAmount == amount) && (chargeCurrency == currency)) {
  10. console.log("Successful");
  11. console.log(resp.data);
  12. //Give Value and return to Success page
  13. } else {
  14. console.log("Error");
  15. console.log(resp);
  16. //Dont Give Value and return to Failure page
  17. }
  18. })
  19. .catch(function (error) {
  20. // console.log(error);
  21. });

More Samples

VueJS with Transaction Verification

  1. <template>
  2. <button v-on:click="buy">Buy</button>
  3. </template>
  4. <script>
  5. import Rave from 'rave-javascript-sdk'
  6. export default {
  7. methods: {
  8. buy() {
  9. var rave = new Rave();
  10. rave.setEmail('flamekeed@gmail.com')
  11. .setAmount("3000")
  12. .setPublicKey("FLWPUBK-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-X")
  13. .setModalTitle("Flamez fresh")
  14. .setCancel(this.cancel)
  15. .setCallback(this.callback)
  16. .setMeta([
  17. { metaname: 'Room', metavalue: "36A" },
  18. { metaname: 'Colour', metavalue: "Blue" }
  19. ])
  20. .initialize()
  21. },
  22. callback(resp) {
  23. return VerifyTransaction({ live: false, txref: resp.tx.txRef, SECKEY: "FLWSECK-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-X" })
  24. .then(function (response) {
  25. console.log(response);
  26. ;
  27. })
  28. .catch(function (error) {
  29. console.log(error);
  30. });
  31. },
  32. cancel() {
  33. console.log("closed");
  34. }
  35. }
  36. }
  37. }
  38. </script>

ReactJS with Transaction Verification

  1. import React, { Component } from 'react';
  2. import Rave, { VerifyTransaction } from 'rave-javascript-sdk';
  3. class Events extends Component {
  4. constructor(props) {
  5. super(props);
  6. this.buy = this.buy.bind(this);
  7. }
  8. buy() {
  9. var rave = new Rave();
  10. rave.setEmail('flamekeed@gmail.com')
  11. .setAmount("3000")
  12. .setPublicKey("FLWPUBK-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-X")
  13. .setModalTitle("Flamez fresh")
  14. .setCancel(this.cancel)
  15. .setCallback(this.callback)
  16. .setMeta([
  17. { metaname: 'Room', metavalue: "36A" },
  18. { metaname: 'Colour', metavalue: "Blue" }
  19. ])
  20. .initialize()
  21. }
  22. callback(resp) {
  23. return VerifyTransaction({ live: false, txref: resp.tx.txRef, SECKEY: "FLWSECK-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-X" })
  24. .then(function (response) {
  25. console.log(response);
  26. })
  27. .catch(function (error) {
  28. console.log(error);
  29. });
  30. }
  31. cancel() {
  32. console.log("closed");
  33. }
  34. render() {
  35. return (
  36. <div>
  37. <button onClick={this.buy}>Buy</button>
  38. </div>
  39. )
  40. }
  41. }

Contributing

Please feel free to fork this package and contribute by submitting a pull request to enhance the functionalities.

Kindly star the GitHub repo and share ❤️. I ❤️ Flutterwave

Kindly follow me on twitter!

Credits

License

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