1. Go to this page and download the library: Download mst-ghi/larapool library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
$order = Order::create([
'paid_price' => 1000
// your data
]);
$resId = \MstGhi\Larapool\LarapoolTransaction::generateResId();
// create new transaction
$order->transactions()->create([
'user_id' => $user->id, // customer id here, this is optional
'port_id' => \MstGhi\Larapool\Larapool::P_IDPAY,
'price' => $order->paid_price,
'res_id' => $resId,
'platform' => \MstGhi\Larapool\Larapool::PLATFORM_WEB,
'last_change_date' => strtotime(now()),
]);
// In the next step, transfer to the bank portal using resId
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Log;
use MstGhi\Larapool\LarapoolTransaction;
use MstGhi\Larapool\Larapool;
use MstGhi\Larapool\IDPay\IDPay;
use MstGhi\Larapool\Exceptions\NotFoundTransactionException;
public function redirect($resId)
{
$exception = null;
$transaction = LarapoolTransaction::with(['transactionable'])->where('res_id', $resId)->first();
if (!$transaction) {
$exception = new NotFoundTransactionException();
} else {
/** @var IDPay $larapool */
$larapool = new Larapool(Larapool::P_IDPAY);
try {
$refId = $larapool->setTransaction($transaction)->ready()->refId();
// any operation on $refId here ...
/**
* redirect by php header() method automatically
*/
$larapool->redirect();
// Or ...
/**
* relevant link and connected to the bank portal in other ways
*/
$link = $larapool->redirectLink();
return response()->json([ 'link' => $link ], Response::HTTP_OK);
} catch (Exception $e) {
$exception = $e;
}
}
if ($exception) {
Log::critical(
"Error in getting payment url: {$exception->getMessage()} #transactionId: {$transaction->id}"
);
throw $exception;
}
}
use Illuminate\Support\Facades\Log;
use MstGhi\Larapool\Exceptions\NotFoundTransactionException;
use MstGhi\Larapool\LarapoolTransaction;
use MstGhi\Larapool\Larapool;
use MstGhi\Larapool\IDPay\IDPay;
use Carbon\Carbon;
public function callback(LarapoolTransaction $transaction, $resId)
{
if (($transaction && !$resId) || ($transaction && $transaction->res_id != $resId)) {
throw new NotFoundTransactionException();
}
// load transactionable, this is use as orderId
$transaction->load(['transactionable']);
try {
/** @var IDPay $larapool */
$larapool = new Larapool(Larapool::P_IDPAY);
/** verify transaction [bank] */
$larapool->setOrderId($transaction->transactionable->id)->verify($transaction);
$trackingCode = $larapool->trackingCode();
$cardNumber = $larapool->cardNumber();
$transaction->update([
'tracking_code' => $trackingCode,
'card_number' => $cardNumber,
'status' => LarapoolTransaction::TRANSACTION_SUCCEED,
'payment_date' => strtotime(Carbon::now()),
'last_change_date' => strtotime(Carbon::now()),
]);
// any operation after success payment here ...
} catch (\Exception $e) {
$message = $e->getMessage();
Log::critical("Error in verifying payment: $message #transactionId: {$transaction->id}");
$transaction->update([
'status' => LarapoolTransaction::TRANSACTION_FAILED,
'last_change_date' => strtotime(Carbon::now()),
]);
// any operation after failed payment here ...
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.