DataSignature::generate()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
ccs 0
cts 0
cp 0
c 0
b 0
f 0
nc 1
1
<?php
2
/**
3
 * @link https://github.com/yiiviet/yii2-payment
4
 * @copyright Copyright (c) 2017 Yii Viet
5
 * @license [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
6
 */
7
8
namespace yiiviet\payment;
9
10
use yii\base\BaseObject;
11
12
/**
13
 * Lớp DataSignature hổ trợ tạo và xác minh tính hợp lệ của chữ ký dữ liệu.
14
 * Nó thường được dùng trong phương thức [[request()]] và [[verifyRequest()]] của [[PaymentGatewayInterface]].
15
 *
16
 * @property string $data Chuỗi dữ liệu cần được ký hoặc xác minh tính hợp lệ.
17
 *
18
 * @author Vuong Minh <[email protected]>
19
 * @since 1.0
20
 */
21
abstract class DataSignature extends BaseObject
22
{
23
    /**
24
     * Thuộc tính chữa dữ liệu cần ký hoặc kiểm tra.
25
     *
26
     * @var string
27
     * @see getData
28
     */
29
    private $_data;
30
31
    /**
32
     * DataSignature constructor.
33
     *
34
     * @param string $data Dữ liệu cần ký hoặc kiểm tra tính hợp lệ.
35
     * @param array $config Mảng cấu hình đối tượng khởi tạo.
36
     */
37 30
    public function __construct(string $data, array $config = [])
38
    {
39 30
        $this->_data = $data;
40 30
        parent::__construct($config);
41 30
    }
42
43
    /**
44
     * Phương thức cung cấp dữ liệu cần ký hoặc xác minh tính hợp lệ.
45
     * Nó sẽ được sử dụng trong phương thức [[generate()]] và [[validate()]].
46
     *
47
     * @return string
48
     */
49 30
    public function getData(): string
50
    {
51 30
        return $this->_data;
52
    }
53
54
    /**
55
     * Phương thức khởi tạo chữ ký dữ liệu từ chuỗi lấy từ [[getData()]].
56
     *
57
     * @return string
58
     */
59
    abstract public function generate(): string;
60
61
    /**
62
     * Phương thức kiểm tra tính hợp lệ của dữ liệu từ chuỗi lấy từ [[getData()]].
63
     *
64
     * @param string $expect Chữ ký của dữ liệu cần được xác minh.
65
     * @return bool Trả về TRUE nếu như chữ ký xác minh hợp lệ và ngược lại.
66
     */
67
    abstract public function validate(string $expect): bool;
68
69
}
70