derm_b/packages/Sarga/Payment/Methods/TFEB.php

73 lines
1.8 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: merdan
* Date: 9/22/2021
* Time: 15:40
*/
namespace Sarga\Payment\Methods;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Log;
use Sarga\Payment\Http\Resoures\Payment\Order;
use Webkul\Payment\Payment\Payment;
class TFEB extends Payment
{
protected $code = 'tfeb';
private function getApiClient():Client{
return new Client([
'base_uri' => $this->getConfigData('api_url'),
'connect_timeout' => 55,//sec
'timeout' => 55,//sec
'verify' => false,
'headers' =>[
'ClientId' => $this->getConfigData('client_id'),
'ClientSecret' => $this->getConfigData('client_secret'),
'Accept' => "application/hal+json",
"Content-Type" => 'application/json'
],
]);
}
public function registerOrder(){
$client = $this->getApiClient();
$cart_order = new Order($this->getCart());
$body = $cart_order->toJson();
$params =[
'body' => $body
];
return $client->post('',$params)->getBody();
}
public function getRedirectUrl()
{
return route('paymentmethod.tfeb.redirect');
}
public function isRegistered(){
$payment = $this->getCart()->payment;
return (!empty($payment) && !empty($payment->orderId));
}
public function getOrderStatus(){
$client = $this->getApiClient();
$payment = $this->getCart()->payment;
return $client->get($payment->order_id)->getBody();
}
public function registerOrderId($orderId){
$payment = $this->getCart()->payment;
$payment->order_id = $orderId;
// dd($payment);
// $payment->paymentFormUrl = $formUrl;
$payment->save();
}
}