You can install the package via composer:
composer require artisanpay/artisanpay-laravel
Install package
php artisan artisanpay:install
Add artisanpay api token in config file in .env
ARTISANPAY_TOKEN=xxxxxxxxxxxxxxxxxx
Generate Job to handle payment
php artisan make:job ArtisanpayHookHandleJob
Add Job to config file in dispatcher section
<?php
return [
/**
* -------------------------------------------
* Api Token provide buy ArtisanPay
* -------------------------------------------
*/
'token' => env('ARTISANPAY_TOKEN'),
'base_url' => env('ARTISANPAY_BASE_URL', 'https://app.artisanpay.com/api/v1'),
/**
* --------------------------------------------
* A Job to Handler Hook Payment
* ---------------------------------------------
*/
'job' => \App\Jobs\ArtisanpayHookChargeJob::class, // ArtisanWebookHandler::class ,
/**
* ----------------------------------------------
* URL route to handle payment
* ----------------------------------------------
*
*/
'url_webhook' => env('ARTISANPAY_WEBHOOK', 'api/artisanpay/hooks'),
'process_manuelly' => false // indicate if you to define your own controller and route
];
Create payment artisanpay support for this version 2 operator
NB: Phone without prefix ( 691131446) OrangeMoney ==> 'om' MTN Mobile Money => 'momo'
$data = $request->validate([
'phone' => 'required', // 6911131446, 651881356
'amount' => 'required',
'operator' => 'required'
]);
// for operator you can use const class Operator
try{
$chargeResponse = ArtisanPay::charge( (new ChargeRequest($request->phone,
$request->amount, $request->operator ,
"my-internal-id")) );
}catch(Exception $exception){
}
without Exception
$chargeResponse = ArtisanPay::withoutException()->charge(ChargeRequest("691131446", 500, Operator::OM, "my-internal-id"));
Job To handle payment hook
<?php
namespace App\Jobs;
use ChargeHookResponse;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class ArtisanpayHookChargeJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private ChargeHookResponse $chargeHookResponse
/**
* Create a new job instance.
* @param ChargeHookResponse $name
* @return void
*/
public function __construct(ChargeHookResponse $chargeHookResponse)
{
$this->chargeHookResponse = $chargeHookResponse;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$myInternalId = $this->getRefId();
$artisanPayId = $this->getId();
$amount = $this->getAmount();
$amountCharge = $this->getAmountCharge();
// etc ...
if($this->chargeHookResponse->getStatus() === ChargeStatus::SUCCESS){
$this->proccessSuccess();
}else{
$this->proccessFailed();
}
}
private function proccessSuccess()
{
// make operation in case success
}
private function proccessFailed()
{
// make operation in case failed
}
}
composer test
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email artisanpay@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.