PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.8
GiveWP – Donation Plugin and Fundraising Platform v2.19.8
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 / PaymentGateways / Gateways / TestGateway / TestGatewayOffsite.php
give / src / PaymentGateways / Gateways / TestGateway Last commit date
Views 4 years ago TestGateway.php 4 years ago TestGatewayOffsite.php 4 years ago
TestGatewayOffsite.php
150 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\TestGateway;
4
5 use Give\Framework\PaymentGateways\Commands\RedirectOffsite;
6 use Give\Framework\PaymentGateways\Exceptions\PaymentGatewayException;
7 use Give\Framework\PaymentGateways\PaymentGateway;
8 use Give\Helpers\Form\Utils as FormUtils;
9 use Give\PaymentGateways\DataTransferObjects\GatewayPaymentData;
10 use Give\PaymentGateways\Gateways\TestGateway\Views\LegacyFormFieldMarkup;
11
12 use function Give\Framework\Http\Response\response;
13
14 /**
15 * Class TestGatewayOffsite
16 * @since 2.18.0
17 */
18 class TestGatewayOffsite extends PaymentGateway
19 {
20 /**
21 * @inheritDoc
22 */
23 public $routeMethods = [
24 'returnFromOffsiteRedirect'
25 ];
26
27 /**
28 * @inheritDoc
29 */
30 public $secureRouteMethods = [
31 'securelyReturnFromOffsiteRedirect'
32 ];
33
34 /**
35 * @inheritDoc
36 */
37 public static function id()
38 {
39 return 'test-gateway-offsite';
40 }
41
42 /**
43 * @inheritDoc
44 */
45 public function getId()
46 {
47 return self::id();
48 }
49
50 /**
51 * @inheritDoc
52 */
53 public function getName()
54 {
55 return __('Test Gateway Offsite', 'give');
56 }
57
58 /**
59 * @inheritDoc
60 */
61 public function getPaymentMethodLabel()
62 {
63 return __('Test Gateway Offsite', 'give');
64 }
65
66 /**
67 * @inheritDoc
68 */
69 public function getLegacyFormFieldMarkup($formId, $args)
70 {
71 if (FormUtils::isLegacyForm($formId)) {
72 return false;
73 }
74
75 /** @var LegacyFormFieldMarkup $legacyFormFieldMarkup */
76 $legacyFormFieldMarkup = give(LegacyFormFieldMarkup::class);
77
78 return $legacyFormFieldMarkup();
79 }
80
81 /**
82 * @inheritDoc
83 */
84 public function createPayment(GatewayPaymentData $paymentData)
85 {
86 $redirectUrl = $this->generateSecureGatewayRouteUrl(
87 'securelyReturnFromOffsiteRedirect',
88 $paymentData->donationId,
89 ['give-donation-id' => $paymentData->donationId]
90 );
91
92 return new RedirectOffsite($redirectUrl);
93 }
94
95 /**
96 * An example of using a routeMethod for extending the Gateway API to handle a redirect.
97 *
98 * @since 2.19.0
99 *
100 * @param array $queryParams
101 * @throws PaymentGatewayException
102 */
103 public function returnFromOffsiteRedirect($queryParams)
104 {
105 $donationId = $queryParams['give-donation-id'];
106
107 if (!get_post($donationId)) {
108 throw new PaymentGatewayException('Donation does not exist');
109 }
110
111 $this->updateDonation($donationId);
112
113 return response()->redirectTo(give_get_success_page_uri());
114 }
115
116 /**
117 * An example of using a secureRouteMethod for extending the Gateway API to handle a redirect.
118 *
119 * @since 2.19.0
120 *
121 * @param array $queryParams
122 * @throws PaymentGatewayException
123 */
124 public function securelyReturnFromOffsiteRedirect($queryParams)
125 {
126 $donationId = $queryParams['give-donation-id'];
127
128 if (!get_post($donationId)) {
129 throw new PaymentGatewayException('Donation does not exist');
130 }
131
132 $this->updateDonation($donationId);
133
134 return response()->redirectTo(give_get_success_page_uri());
135 }
136
137 /**
138 * Helper for updating donation
139 *
140 * @param $donationId
141 * @return void
142 */
143 private function updateDonation($donationId)
144 {
145 give_insert_payment_note($donationId, 'NOTE GOES HERE');
146 give_update_payment_status($donationId);
147 give_set_payment_transaction_id($donationId, "test-gateway-transaction-id");
148 }
149 }
150