PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.33.0
GiveWP – Donation Plugin and Fundraising Platform v2.33.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 / Framework / PaymentGateways / Controllers / GatewayPaymentController.php
give / src / Framework / PaymentGateways / Controllers Last commit date
GatewayPaymentController.php 3 years ago GatewaySubscriptionController.php 2 years ago
GatewayPaymentController.php
105 lines
1 <?php
2
3 namespace Give\Framework\PaymentGateways\Controllers;
4
5 use Give\Donations\Models\Donation;
6 use Give\Framework\Exceptions\Primitives\Exception;
7 use Give\Framework\FieldsAPI\Exceptions\TypeNotSupported;
8 use Give\Framework\PaymentGateways\Actions\HandleGatewayPaymentCommand;
9 use Give\Framework\PaymentGateways\Commands\GatewayCommand;
10 use Give\Framework\PaymentGateways\Log\PaymentGatewayLog;
11 use Give\Framework\PaymentGateways\PaymentGateway;
12 use Give\Framework\PaymentGateways\Traits\HandleHttpResponses;
13
14 /**
15 * @since 2.27.0
16 */
17 class GatewayPaymentController
18 {
19 use HandleHttpResponses;
20
21 /**
22 * @var PaymentGateway
23 */
24 protected $gateway;
25
26 /**
27 * @since 2.27.0
28 */
29 public function __construct(PaymentGateway $gateway)
30 {
31 $this->gateway = $gateway;
32 }
33
34 /**
35 * @since 2.27.0
36 */
37 public function create(Donation $donation, array $gatewayData = [])
38 {
39 try {
40 $command = $this->gateway->createPayment($donation, $gatewayData);
41 $this->handleGatewayCommand($command, $donation);
42 } catch (\Exception $exception) {
43 PaymentGatewayLog::error(
44 $exception->getMessage(),
45 [
46 'Payment Gateway' => $this->gateway::id(),
47 'Donation' => $donation->toArray(),
48 ]
49 );
50
51 $message = __(
52 'An unexpected error occurred while processing the donation. Please try again or contact a site administrator.',
53 'give'
54 );
55
56 $this->handleExceptionResponse($exception, $message);
57 }
58 }
59
60 /**
61 * @since 2.29.0
62 */
63 public function refund(Donation $donation)
64 {
65 try {
66 $command = $this->gateway->refundDonation($donation);
67
68 if ($command instanceof GatewayCommand) {
69 $this->handleGatewayCommand($command, $donation);
70 }
71 } catch (\Exception $exception) {
72 PaymentGatewayLog::error(
73 $exception->getMessage(),
74 [
75 'Payment Gateway' => $this->gateway::id(),
76 'Donation' => $donation->toArray(),
77 ]
78 );
79
80 $message = __(
81 'An unexpected error occurred while refunding the donation. Please try again or contact a site administrator.',
82 'give'
83 );
84
85 $this->handleExceptionResponse($exception, $message);
86 }
87 }
88
89 /**
90 * Handle gateway command
91 *
92 * @since 2.27.0 move logic into action
93 * @since 2.18.0
94 *
95 * @throws TypeNotSupported
96 * @throws Exception
97 */
98 protected function handleGatewayCommand(GatewayCommand $command, Donation $donation)
99 {
100 $response = (new HandleGatewayPaymentCommand())($command, $donation);
101
102 $this->handleResponse($response);
103 }
104 }
105