PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 1.9.0
GiveWP – Donation Plugin and Fundraising Platform v1.9.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
149 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 ['give-donation-id' => $paymentData->donationId]
89 );
90
91 return new RedirectOffsite($redirectUrl);
92 }
93
94 /**
95 * An example of using a routeMethod for extending the Gateway API to handle a redirect.
96 *
97 * @since 2.19.0
98 *
99 * @param array $queryParams
100 * @throws PaymentGatewayException
101 */
102 public function returnFromOffsiteRedirect($queryParams)
103 {
104 $donationId = $queryParams['give-donation-id'];
105
106 if (!get_post($donationId)) {
107 throw new PaymentGatewayException('Donation does not exist');
108 }
109
110 $this->updateDonation($donationId);
111
112 return response()->redirectTo(give_get_success_page_uri());
113 }
114
115 /**
116 * An example of using a secureRouteMethod for extending the Gateway API to handle a redirect.
117 *
118 * @since 2.19.0
119 *
120 * @param array $queryParams
121 * @throws PaymentGatewayException
122 */
123 public function securelyReturnFromOffsiteRedirect($queryParams)
124 {
125 $donationId = $queryParams['give-donation-id'];
126
127 if (!get_post($donationId)) {
128 throw new PaymentGatewayException('Donation does not exist');
129 }
130
131 $this->updateDonation($donationId);
132
133 return response()->redirectTo(give_get_success_page_uri());
134 }
135
136 /**
137 * Helper for updating donation
138 *
139 * @param $donationId
140 * @return void
141 */
142 private function updateDonation($donationId)
143 {
144 give_insert_payment_note($donationId, 'NOTE GOES HERE');
145 give_update_payment_status($donationId);
146 give_set_payment_transaction_id($donationId, "test-gateway-transaction-id");
147 }
148 }
149