devadamlar/laravel-id3global

Acts as an adapter between Laravel Eloquent and GBG ID3global service
2,046
Install
composer require devadamlar/laravel-id3global
Latest Version:1.0.0
PHP:^7.4|^8.0
License:MIT
Last Updated:Sep 16, 2021
Links: GitHub  ·  Packagist
Maintainer: elnurvl

Introduction

This package converts Eloquent models to an Identity object that can be sent to verify users through ID3global API.

Installation

Install the library:

composer require devadamlar/laravel-id3global

Define the following environment variables:

ID3GLOBAL_USERNAME=
ID3GLOBAL_PASSWORD=

The pilot site will be used if the APP_ENV is other than Production. You can override this by setting the ID3GLOBAL_USE_PILOT variable in the environment file.

Usage

Use the Verifiable trait inside your Eloquent models to convert them into a GlobalInputData object with the makeInputData method. You can now call authenticateSp method of the Id3globalService facade and pass in the created object to do a verification.

You can set the $globalInputData array inside your model to override the names of attributes to be mapped to the ID3global's GlobalInputData properties. If you want to map an attribute from a relationship, put the name of the relationship, and the attribute separated by a dot:

use DevAdamlar\LaravelId3global\Verifiable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;

class User extends Model
{
    use Verifiable;
    
    protected array $globalInputData = [
        'Personal.PersonalDetails.Gender' => 'sex',
        'ContactDetails.MobileTelephone.Number' => 'contact.mobile',
    ];
    
    public function contact(): HasOne
    {
        return $this->hasOne(Contact::class);
    }
}

class Contact extends Model
{

}

Some commonly-used attributes will be automatically mapped to the corresponding fields:

GlobalInputData property Corresponding model attribute
Personal.PersonalDetails.Forename first_name
Personal.PersonalDetails.MiddleName middle_name
Personal.PersonalDetails.Surname last_name
Personal.PersonalDetails.Gender gender
Personal.PersonalDetails.DateOfBirth birthday
Personal.PersonalDetails.CountryOfBirth birth_country
Addresses.CurrentAddress.Street street
Addresses.CurrentAddress.ZipPostcode post_code
Addresses.CurrentAddress.City city
Addresses.CurrentAddress.Country country
ContactDetails.Email email
ContactDetails.LandTelephone.Number landline
ContactDetails.MobileTelephone.Number mobile
ContactDetails.WorkTelephone.Number work_phone

If you need to override some properties on the fly, pass an array with the overridden properties as a value to the corresponding keys:

$user = User::find(1);
$user->makeInputData([
    'ContactDetails.MobileTelephone.Number' => '+994502000000'
]);

Refer to the ID3global's WSDL documentation to see the structure of the GlobalInputData class.

Related Packages

andrevalentin/laravel-onfido

A Laravel wrapper for the Onfido PHP client

170,030 4
avto-dev/identity-laravel

IDEntity for Laravel

31,149 3
filafly/filament-identity-column

A column for Filament Tables to which combines an avatar, name and description.

10,457 7
worksome/laravel-onfido

A Laravel wrapper for the Onfido PHP client

438,826 1
jlorente/laravel-identitystamps

A Laravel plugin to register and keep control of the users who make creations, u...

6,174 1