Files
opensem/app/Repositories/Shop/Paybox.php
2024-01-04 15:43:02 +01:00

53 lines
1.8 KiB
PHP

<?php
namespace App\Repositories\Shop;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Log;
use Bnb\PayboxGateway\Requests\Paybox\AuthorizationWithCapture;
use Bnb\PayboxGateway\Requests\PayboxDirect\Capture;
use Bnb\PayboxGateway\Responses\Paybox\Verify;
use Bnb\PayboxGateway\Responses\Exceptions\InvalidSignature;
class Paybox
{
public static function makeAuthorizationRequest($order, $customer_email = 'test@example.com')
{
$authorizationRequest = App::make(AuthorizationWithCapture::class);
$invoiceId = $order->invoice->id;
return $authorizationRequest->setAmount($order->total_shipped)->setCustomerEmail($customer_email)
->setPaymentNumber($invoiceId)->send('paybox.send');
}
public static function verifyPayment($invoiceId)
{
$invoice = Invoices::get($invoiceId);
$payboxVerify = App::make(Verify::class);
try {
$success = $payboxVerify->isSuccess($invoice->total_shipped);
if ($success) {
// process order here after making sure it was real payment
}
echo 'OK';
} catch (InvalidSignature $e) {
Log::alert('Invalid payment signature detected');
}
}
public static function getPreviousAuthorizedRequest()
{
$payment = Payment::where('number', $request->input('order_number'))->firstOrFail();
$captureRequest = App::make(Capture::class);
$response = $captureRequest->setAmount($payment->amount)
->setPayboxCallNumber($payment->call_number)
->setPayboxTransactionNumber($payment->transaction_number)
->setDayRequestNumber(2)
->send();
if ($response->isSuccess()) {
// process order here
}
}
}