vahidkaargar/bamboo-card-portal

This is Bamboocardportal.com package

v0.9.6.2 2023-11-19 09:17 UTC

This package is auto-updated.

Last update: 2024-04-19 10:05:57 UTC


README

This is a Laravel package for using Bamboo api

What is Bamboo

BAMBOO ELECTRONIC CARDS TRADING LLC is one of the leading Digital Prepaid Products Distributor and Rewards fulfillment agency in the Middle East.

Requirement

  1. This is a Laravel package
  2. PHP >= 7.4

Installation

composer require "vahidkaargar/bamboo-card-portal"

Environment

You don't need to publish config with adding these constants to .env file

BAMBOO_SANDBOX_USERNAME=
BAMBOO_SANDBOX_PASSWORD=
BAMBOO_SANDBOX_MODE=
BAMBOO_PRODUCTION_USERNAME=
BAMBOO_PRODUCTION_PASSWORD=

Publish config file

php artisan vendor:publish --tag=bamboo-config

Documentation

Initial

/*
 * You have two option to call Bamboo api
 * First way - use helper
 */
$bamboo = bamboo();


/*
 * Second way - call class
 */
use vahidkaargar\BambooCardPortal\Bamboo;
$bamboo = new Bamboo();


/*
 * Bamboo has optional parameters
 * if you enter these parameters, it overwrites on configs
 * @param string username
 * @param string password
 * @param bool sandbox
 */
$bamboo = new Bamboo('username', 'password', true);

// or use helper
$bamboo = bamboo('username', 'password', false);

Catalog

use vahidkaargar\BambooCardPortal\Bamboo;

$bamboo = new Bamboo();
$catalogs = $bamboo->catalogs()->get();

Account

use vahidkaargar\BambooCardPortal\Bamboo;

$bamboo = new Bamboo();
$account = $bamboo->accounts()->get();

Order

use vahidkaargar\BambooCardPortal\Bamboo;

$bamboo = (new Bamboo())->orders();
 
/*
 * checkout and create an order
 * you can add multiple products
 */
$requestedId = Str::uuid();
$checkout = $bamboo->setRequestId($requestedId)
    ->setAccountId($accountId)
    ->setProducts([
        ["ProductId" => $productId, "Quantity" => $quantity, "Value" => $value],
        ["ProductId" => $productId2, "Quantity" => $quantity2, "Value" => $value2],
        ["ProductId" => $productId3, "Quantity" => $quantity3, "Value" => $value3],
    ])
    ->setProduct($productId4, $quantity4, $value4)
    ->checkout();
 
/*
 * get orders between to date e.g. 2022-05-02
 */
$orders = $bamboo->setStartDate('2022-05-02')
    ->setEndDate('2022-05-20')
    ->get();

/*
 * get orders base on $requestedId, its string
 */
$order = $bamboo->get($requestedId);

Exchange rate

use vahidkaargar\BambooCardPortal\Bamboo;

$bamboo = new Bamboo();
$exchange = $bamboo->exchange()
    ->setBaseCurrency('USD')
    ->setCurrency('EUR')
    ->rate();

Transaction

use vahidkaargar\BambooCardPortal\Bamboo;

$bamboo = new Bamboo();
/*
 * get orders between to date e.g. 2022-05-02
 */
$transactions = $bamboo->transactions()
    ->setStartDate('2022-05-02')
    ->setEndDate('2022-05-20')
    ->get();

Notification

use vahidkaargar\BambooCardPortal\Bamboo;

$bamboo = new Bamboo();

/*
 * get notification 
 */
$notification = $bamboo->notifications()->get();

Test

./vendor/bin/phpunit