Parsian   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 7
eloc 20
c 1
b 0
f 0
dl 0
loc 39
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A init() 0 22 5
A verify() 0 13 2
1
<?php
2
3
namespace Sinarajabpour1998\Gateway\Drivers;
4
5
use Sinarajabpour1998\ParsianGateway\ParsianIpg;
6
use Sinarajabpour1998\Gateway\Abstracts\Driver;
7
8
class Parsian extends Driver
9
{
10
    public function init($amount, $orderId, $callbackUrl, $detail = [])
11
    {
12
        // Create new transaction
13
        $transaction = $this->createNewTransaction($orderId, $amount);
14
15
        // Create object from Parsian Driver
16
        $class = new ParsianIpg($this->getInformation());
17
        $result = $class->paymentRequest($amount, $transaction->id, $callbackUrl);
18
19
        if(isset($detail['auto_redirect']) && $detail['auto_redirect'] == false && $result->status == 'success') {
20
            $result->token  = $result->token;
21
            $result->url    = 'https://pec.shaparak.ir/NewIPG/?Token=' . $result->token;
22
            return $result;
23
24
        } elseif($result->status == 'success') {
25
            $this->updateTransactionData($transaction->id, ['token' => $result->token]);
26
            header( 'Location: https://pec.shaparak.ir/NewIPG/?Token=' . $result->token );
27
            die();
28
29
        }
30
31
        return $result;
32
    }
33
34
    public function verify($request)
35
    {
36
        $class = new ParsianIpg($this->getInformation());
37
38
        $result = $class->confirmPayment( $request['Token'] );
39
40
        if ($result->status == 'success') {
41
            $this->updateTransactionData($request['OrderId'], ['status' => 'successful', 'ref_no' => $request['RRN']]);
42
        } else {
43
            $this->updateTransactionData($request['OrderId'], ['status' => 'failed']);
44
        }
45
46
        return $result;
47
    }
48
}
49