Viewing file: Uddoktapay.php (3.59 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(); } }
}
|