PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.8
GiveWP – Donation Plugin and Fundraising Platform v4.16.8
4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / PaymentGateways / DataTransferObjects / GatewayRouteData.php
give / src / Framework / PaymentGateways / DataTransferObjects Last commit date
GatewayRouteData.php 3 days ago
GatewayRouteData.php
89 lines
1 <?php
2
3 namespace Give\Framework\PaymentGateways\DataTransferObjects;
4
5 /**
6 * Class GatewayRouteData
7 * @since 2.18.0
8 * @since 2.23.1 Make class final to avoid unsafe usage of `new static()`.
9 */
10 final class GatewayRouteData
11 {
12 /**
13 * @var string
14 */
15 public $gatewayId;
16 /**
17 * @var string
18 */
19 public $gatewayMethod;
20 /**
21 * @var array
22 */
23 public $queryParams;
24 /**
25 * @var string|null
26 */
27 public $routeSignature;
28 /**
29 * @var string|null
30 */
31 public $routeSignatureId;
32 /**
33 * @var string|null
34 */
35 public $routeSignatureExpiration;
36 /**
37 * Keys of the query args the signature covers.
38 *
39 * @since 4.16.8
40 * @var string[]
41 */
42 public $routeSignatureArgKeys = [];
43
44 /**
45 * Query args the route framework itself sets. A gateway arg with one of these names would be
46 * overwritten on the URL and excluded from queryParams on the way back, so a signature covering
47 * it could never validate.
48 *
49 * @since 4.16.8
50 */
51 const ROUTE_PARAMS = [
52 'give-listener',
53 'give-gateway-id',
54 'give-gateway-method',
55 'give-route-signature',
56 'give-route-signature-id',
57 'give-route-signature-expiration',
58 'give-route-signature-args',
59 ];
60
61 /**
62 * Convert data from request into DTO
63 *
64 * @since 4.16.8 add routeSignatureArgKeys
65 * @since 2.19.5 add routeSignatureExpiration
66 * @since 2.19.4 add give-route-signature-id
67 * @since 2.18.0
68 *
69 * @return self
70 */
71 public static function fromRequest(array $request)
72 {
73 $self = new static();
74
75 $self->gatewayId = $request['give-gateway-id'];
76 $self->gatewayMethod = $request['give-gateway-method'];
77 $self->routeSignature = isset($request['give-route-signature']) ? $request['give-route-signature'] : null;
78 $self->routeSignatureId = isset($request['give-route-signature-id']) ? $request['give-route-signature-id'] : null;
79 $self->routeSignatureExpiration = isset($request['give-route-signature-expiration']) ? $request['give-route-signature-expiration'] : null;
80 $self->routeSignatureArgKeys = empty($request['give-route-signature-args'])
81 ? []
82 : explode(',', $request['give-route-signature-args']);
83
84 $self->queryParams = array_diff_key($request, array_flip(self::ROUTE_PARAMS));
85
86 return $self;
87 }
88 }
89