PHPackages                             mainul12501/fraudbd-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. mainul12501/fraudbd-laravel

ActiveLibrary[API Development](/categories/api)

mainul12501/fraudbd-laravel
===========================

Laravel package for integrating FraudBD API services to check courier information and detect fraud

v1.1.1(6mo ago)07MITPHPPHP ^8.1|^8.2|^8.3

Since Oct 20Pushed 6mo agoCompare

[ Source](https://github.com/Mainul12501/fraudbd-laravel)[ Packagist](https://packagist.org/packages/mainul12501/fraudbd-laravel)[ RSS](/packages/mainul12501-fraudbd-laravel/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (4)Used By (0)

FraudBD Laravel Package
=======================

[](#fraudbd-laravel-package)

A Laravel package for integrating FraudBD API services to check courier information and detect fraud in e-commerce deliveries.

Features
--------

[](#features)

- Easy integration with FraudBD API
- Support for Laravel 10.x, 11.x and 12.x
- Check courier information for phone numbers
- Bulk courier information checking
- Process status tracking
- Comprehensive error handling
- Facade support for easy access
- Configuration via `.env` file

Requirements
------------

[](#requirements)

- PHP 8.1 or higher
- Laravel 10.x, 11.x or 12.x
- Guzzle HTTP client 7.x

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require mainul12501/fraudbd-laravel
```

### Publish Configuration

[](#publish-configuration)

Publish the configuration file:

```
php artisan vendor:publish --tag=fraudbd-config
```

This will create a `config/fraudbd.php` file in your application.

Configuration
-------------

[](#configuration)

Add the following environment variables to your `.env` file:

```
FRAUDBD_API_KEY=your-api-key-here
FRAUDBD_USERNAME=your-username-here
FRAUDBD_PASSWORD=your-password-here
FRAUDBD_BASE_URL=https://fraudbd.com
FRAUDBD_TIMEOUT=30
FRAUDBD_VERIFY_SSL=true
```

### Configuration Options

[](#configuration-options)

- `FRAUDBD_API_KEY`: Your FraudBD API key (required)
- `FRAUDBD_USERNAME`: Your FraudBD account username (required)
- `FRAUDBD_PASSWORD`: Your FraudBD account password (required)
- `FRAUDBD_BASE_URL`: The base URL for the FraudBD API (default: )
- `FRAUDBD_TIMEOUT`: Request timeout in seconds (default: 30)
- `FRAUDBD_VERIFY_SSL`: Whether to verify SSL certificates (default: true)

Usage
-----

[](#usage)

### Using Facade

[](#using-facade)

The easiest way to use the package is through the `FraudBD` facade:

```
use Mainul12501\Laravel\Facades\FraudBD;

// Check courier information for a phone number
$result = FraudBD::checkCourierInfo('01712345678');

// Check courier information for a specific courier
$result = FraudBD::checkCourierInfoByCourier('steadfast', '01712345678');

// Bulk check courier information
$result = FraudBD::bulkCheckCourierInfo([
    '01712345678',
    '01812345678',
    '01912345678',
]);

// Check process status
$result = FraudBD::checkProcessStatus('process-id-123');
```

### Using Dependency Injection

[](#using-dependency-injection)

You can also inject the `FraudBD` class into your controllers or services:

```
use Mainul12501\Laravel\FraudBD;

class OrderController extends Controller
{
    public function checkCourier(FraudBD $fraudbd)
    {
        try {
            $result = $fraudbd->checkCourierInfo('01712345678');

            return response()->json($result);
        } catch (\Mainul12501\Laravel\Exceptions\ApiException $e) {
            return response()->json([
                'error' => $e->getMessage()
            ], 500);
        }
    }
}
```

### Using Helper

[](#using-helper)

You can also use the helper function:

```
$result = app('fraudbd')->checkCourierInfo('01712345678');
```

Available Methods
-----------------

[](#available-methods)

### Check Courier Info

[](#check-courier-info)

Check courier information for a specific phone number across all supported couriers:

```
FraudBD::checkCourierInfo(string $phone, array $additionalData = []): array
```

**Example:**

```
$result = FraudBD::checkCourierInfo('01712345678', [
    'additional_field' => 'value'
]);
```

### Check Courier Info by Courier

[](#check-courier-info-by-courier)

Check courier information for a specific courier service:

```
FraudBD::checkCourierInfoByCourier(string $courierName, string $phone, array $additionalData = []): array
```

**Example:**

```
$result = FraudBD::checkCourierInfoByCourier('steadfast', '01712345678');
```

**Supported Couriers:**

- steadfast
- pathao
- redx
- paperfly
- (and more - check FraudBD documentation)

### Bulk Check Courier Info

[](#bulk-check-courier-info)

Check courier information for multiple phone numbers:

```
FraudBD::bulkCheckCourierInfo(array $phones, array $additionalData = []): array
```

**Example:**

```
$result = FraudBD::bulkCheckCourierInfo([
    '01712345678',
    '01812345678',
    '01912345678',
]);
```

### Check Process Status

[](#check-process-status)

Check the status of a processing request:

```
FraudBD::checkProcessStatus(string $processId, array $additionalData = []): array
```

**Example:**

```
$result = FraudBD::checkProcessStatus('process-id-123');
```

Runtime Configuration
---------------------

[](#runtime-configuration)

You can override configuration at runtime:

```
use Mainul12501\Laravel\Facades\FraudBD;

// Set custom API key
FraudBD::setApiKey('custom-api-key');

// Set custom credentials
FraudBD::setCredentials('username', 'password');

// Set custom base URL
FraudBD::setBaseUrl('https://custom-api.fraudbd.com');

// Chain methods
FraudBD::setApiKey('custom-key')
       ->setCredentials('user', 'pass')
       ->checkCourierInfo('01712345678');
```

Error Handling
--------------

[](#error-handling)

The package throws specific exceptions for different error scenarios:

```
use Mainul12501\Laravel\Exceptions\InvalidConfigException;
use Mainul12501\Laravel\Exceptions\ApiException;
use Mainul12501\Laravel\Exceptions\FraudBDException;

try {
    $result = FraudBD::checkCourierInfo('01712345678');
} catch (InvalidConfigException $e) {
    // Handle configuration errors (missing API key, username, or password)
    Log::error('FraudBD configuration error: ' . $e->getMessage());
} catch (ApiException $e) {
    // Handle API errors (rate limit, authentication failure, etc.)
    Log::error('FraudBD API error: ' . $e->getMessage());
} catch (FraudBDException $e) {
    // Handle general FraudBD errors
    Log::error('FraudBD error: ' . $e->getMessage());
}
```

### Exception Types

[](#exception-types)

- `InvalidConfigException`: Thrown when configuration is missing or invalid
- `ApiException`: Thrown when API requests fail
- `FraudBDException`: Base exception class for all FraudBD exceptions

Example Usage in Laravel
------------------------

[](#example-usage-in-laravel)

### Controller Example

[](#controller-example)

```
