Viewing file: Uddoktapay.php (3.71 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Modules\PaymentGateway\WHNPurchaseGateway;
use App\Models\BillingRequest;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Modules\PaymentGateway\Services\PaymentCredentials;
class Uddoktapay implements PaymentInterface
{
public $planReq;
public $redirect_url;
public $error_message;
public $return_view;
public $will_redirect= false;
public function __construct()
{
}
public function pay()
{
// TODO: Implement pay() method.
}
public function getCredentials()
{
$credentials= json_decode(get_settings('payment_gateway'));
if (!isset($credentials->uddoktapay_url) || !isset($credentials->uddoktapay_apikey) || !isset($credentials->uddoktapay_status) ||
$credentials->uddoktapay_status =='inactive'){
throw new \Exception('Setup gateway credentials first. Please contact with the administrator');
}
return $credentials;
}
public function request($request)
{
$this->request = $request;
return $this;
}
public function number($number)
{
$this->number = $number;
return $this;
}
public function number_request($numberReq)
{
$this->numberReq = $numberReq;
return $this;
}
public function will_redirect()
{
// TODO: Implement will_redirect() method.
return $this->will_redirect;
}
public function redirect_url()
{
// TODO: Implement redirect_url() method.
return $this->redirect_url;
}
public function return_view()
{
// TODO: Implement redirect_url() method.
return $this->return_view;
}
public function error_message()
{
// TODO: Implement error_message() method.
return $this->error_message;
}
public function process()
{
$customer= auth('customer')->user();
try {
$credentials = $this->getCredentials();
$headers = array(
'Content-Type'=> 'application/json',
'RT-UDDOKTAPAY-API-KEY'=> $credentials->uddoktapay_apikey,
);
$client = new \GuzzleHttp\Client();
$postBody=[
'full_name'=> $customer->fullname,
'email'=> $customer->email,
'amount'=> $this->number->sell_price,
'metadata'=>[
'order_id'=>$this->numberReq->id,
'product_id'=>$this->number->id,
],
"redirect_url"=> route('paymentgateway::number.uddoktapay.success'),
"cancel_url"=> route('paymentgateway::payment.process.cancel'),
"webhook_url"=> route('paymentgateway::payment.process.cancel')
];
$response = $client->request('POST', "$credentials->uddoktapay_url", array(
'headers' => $headers,
'json' => $postBody,
)
);
$code=$response->getStatusCode();
$response=$response->getBody()->getContents();
if(!isset(json_decode($response)->payment_url)){
throw new \Exception('Invalid payment request. Please try again');
}
if(isset($code) && $code=='200') {
$this->redirect_url = json_decode($response)->payment_url;
$this->will_redirect = true;
$this->return_view = null;
}
}catch(\Exception $ex){
Log::error($ex);
$this->error_message= $ex->getMessage();
}
}
}
|