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