Completed
Push — master ( ac749f...8181ea )
by Vuong
01:54
created

verifyRequestPurchaseSuccess()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 3
crap 1
1
<?php
2
/**
3
 * @link https://github.com/yiiviet/yii2-payment
4
 * @copyright Copyright (c) 2017 Yii2VN
5
 * @license [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
6
 */
7
8
namespace yiiviet\payment;
9
10
use vxm\gatewayclients\DataInterface;
11
use vxm\gatewayclients\GatewayCollection;
12
13
/**
14
 * Lớp PaymentGatewayCollection dùng để tập hợp tất cả các cổng thanh toán thành 1 component trong app,
15
 * khi bạn có nhu cầu sử dụng nhiều cổng thanh toán.
16
 *
17
 * @method BasePaymentGateway getGateway($id)
18
 * @method BasePaymentGateway[] getGateways()
19
 *
20
 * @property BasePaymentGateway $gateway
21
 * @property BasePaymentGateway[] $gateways
22
 *
23
 * @author Vuong Minh <[email protected]>
24
 * @since 1.0
25
 */
26
class PaymentGatewayCollection extends GatewayCollection
27
{
28
    /**
29
     * Đây là phương thức ánh xạ của [[request()]]. Dùng để tạo lệnh thanh toán.
30
     *
31
     * @param array $data Dữ liệu thanh toán.
32
     * @param int|string $gatewayId Id của cổng thanh toán.
33
     * @param null|int|string $clientId Id client của cổng thanh toán dùng đề tạo lệnh.
34
     * Nếu không thiết lập thì [[getDefaultClient()]] sẽ được gọi trong cổng thanh toán.
35
     * @return \vxm\gatewayclients\ResponseData|DataInterface
36
     * @see [[BasePaymentGateway::purchase()]]
37
     * @throws \yii\base\InvalidConfigException
38
     */
39 7
    public function purchase(array $data, $gatewayId, $clientId = null): DataInterface
40
    {
41 7
        return $this->request(BasePaymentGateway::RC_PURCHASE, $data, $gatewayId, $clientId);
42
    }
43
44
    /**
45
     * Đây là phương thức ánh xạ của [[request()]]. Dùng để tạo lệnh truy vấn thông tin giao dịch.
46
     *
47
     * @param array $data Dữ liệu thanh toán.
48
     * @param int|string $gatewayId Id của cổng thanh toán.
49
     * @param null|int|string $clientId Id client của cổng thanh toán dùng đề tạo lệnh.
50
     * Nếu không thiết lập thì [[getDefaultClient()]] sẽ được gọi trong cổng thanh toán.
51
     * @return \vxm\gatewayclients\ResponseData|DataInterface
52
     * @see [[BasePaymentGateway::purchase()]]
53
     * @throws \yii\base\InvalidConfigException
54
     */
55 5
    public function queryDR(array $data, $gatewayId, $clientId = null): DataInterface
56
    {
57 5
        return $this->request(BasePaymentGateway::RC_QUERY_DR, $data, $gatewayId, $clientId);
58
    }
59
60
61
    /**
62
     * Đây là phương thức ánh xạ của [[verifyRequest()]]. Dùng để xác minh tính hợp lệ của dữ liệu khi khách hoàn tất thanh toán.
63
     *
64
     * @param int|string $gatewayId Id cổng thanh toán dùng để chỉ định xác minh.
65
     * @param \yii\web\Request|null $request Đối tượng `request` chứa dữ liệu cần được xác minh.
66
     * @param null|int|string $clientId Id client của cổng thanh toán dùng đề tạo lệnh.
67
     * Nếu không thiết lập thì [[getDefaultClient()]] sẽ được gọi trong cổng thanh toán.
68
     * @return bool|VerifiedData|DataInterface Trả về dữ liệu đã được xác minh hoặc là FALSE nếu dữ liệu không hợp lệ.
69
     * @see [[BasePaymentGateway::verifyRequestPurchaseSuccess()]].
70
     * @throws \yii\base\InvalidConfigException|\ReflectionException
71
     */
72 4
    public function verifyRequestPurchaseSuccess($gatewayId, \yii\web\Request $request = null, $clientId = null)
73
    {
74 4
        return $this->verifyRequest(BasePaymentGateway::VRC_PURCHASE_SUCCESS, $gatewayId, $request, $clientId);
75
    }
76
77
    /**
78
     * Đây là phương thức ánh xạ của [[verifyRequest()]]. Dùng để xác minh tính hợp lệ của dữ liệu khi cổng thanh toán gửi dữ liệu sang,
79
     * khi khách hoàn tất giao dịch.
80
     *
81
     * @param int|string $gatewayId Id cổng thanh toán dùng để chỉ định xác minh.
82
     * @param \yii\web\Request|null $request Đối tượng `request` chứa dữ liệu cần được xác minh.
83
     * @param null|int|string $clientId Id client của cổng thanh toán dùng đề tạo lệnh.
84
     * Nếu không thiết lập thì [[getDefaultClient()]] sẽ được gọi trong cổng thanh toán.
85
     * @return bool|VerifiedData|DataInterface Trả về dữ liệu đã được xác minh hoặc là FALSE nếu dữ liệu không hợp lệ.
86
     * @see [[BasePaymentGateway::verifyRequestIPN()]].
87
     * @throws \yii\base\InvalidConfigException|\ReflectionException
88
     */
89 3
    public function verifyRequestIPN($gatewayId, \yii\web\Request $request = null, $clientId = null)
90
    {
91 3
        return $this->verifyRequest(BasePaymentGateway::VRC_IPN, $gatewayId, $request, $clientId);
92
    }
93
94
    /**
95
     * Phương thức xác minh tính hợp lệ của request mà cổng thanh toán gửi về, đây là phương thức ánh xạ của
96
     * [[BasePaymentGateway::verifyRequest()]].
97
     *
98
     * @param int|string $command Lệnh yêu cầu xác minh.
99
     * @param \yii\web\Request $request Đối tượng `request` chứa dữ liệu cần xác minh.
100
     * @param int|string $gatewayId Id của cổng thanh toán dùng để tạo lệnh.
101
     * @param null|int|string $clientId Id client của cổng thanh toán dùng đề tạo lệnh.
102
     * Nếu không thiết lập thì [[BasePaymentGateway::getDefaultClient()]] sẽ được gọi trong cổng thanh toán.
103
     * @return bool|VerifiedData|DataInterface
104
     * @see [[BasePaymentGateway::verifyRequest()]]
105
     * @throws \yii\base\InvalidConfigException|\ReflectionException
106
     */
107 7
    public function verifyRequest($command, $gatewayId, \yii\web\Request $request = null, $clientId = null)
108
    {
109 7
        return $this->getGateway($gatewayId)->verifyRequest($command, $request, $clientId);
110
    }
111
}
112