PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.27.2
GiveWP – Donation Plugin and Fundraising Platform v2.27.2
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 / GatewaySubscriptionController.php
give / src / Framework / PaymentGateways / Controllers Last commit date
GatewayPaymentController.php 3 years ago GatewaySubscriptionController.php 3 years ago
GatewaySubscriptionController.php
83 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\HandleGatewaySubscriptionCommand;
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 use Give\Subscriptions\Models\Subscription;
14
15 /**
16 * @since 2.27.0
17 */
18 class GatewaySubscriptionController
19 {
20 use HandleHttpResponses;
21
22 /**
23 * @var PaymentGateway
24 */
25 protected $gateway;
26
27 /**
28 * @since 2.27.0
29 */
30 public function __construct(PaymentGateway $gateway)
31 {
32 $this->gateway = $gateway;
33 }
34
35 /**
36 * @since 2.27.0
37 */
38 public function create(Donation $donation, Subscription $subscription, array $gatewayData = [])
39 {
40 try {
41 $command = $this->gateway->createSubscription($donation, $subscription, $gatewayData);
42 $this->handleGatewayCommand($command, $donation, $subscription);
43 } catch (\Exception $exception) {
44 PaymentGatewayLog::error(
45 $exception->getMessage(),
46 [
47 'Payment Gateway' => $this->gateway::id(),
48 'Donation' => $donation->toArray(),
49 'Subscription' => $subscription->toArray(),
50 ]
51 );
52
53 $message = __(
54 'An unexpected error occurred while processing the subscription. Please try again or contact the site administrator.',
55 'give'
56 );
57
58 $this->handleExceptionResponse($exception, $message);
59 }
60 }
61
62 /**
63 * Handle gateway subscription command
64 *
65 * @since 2.27.0 move logic into action
66 * @since 2.26.0 add RespondToBrowser command
67 * @since 2.21.0 Handle RedirectOffsite response.
68 * @since 2.18.0
69 *
70 * @throws TypeNotSupported
71 * @throws Exception
72 */
73 public function handleGatewayCommand(
74 GatewayCommand $command,
75 Donation $donation,
76 Subscription $subscription
77 ) {
78 $response = (new HandleGatewaySubscriptionCommand())($command, $donation, $subscription);
79
80 $this->handleResponse($response);
81 }
82 }
83