PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.3
GiveWP – Donation Plugin and Fundraising Platform v4.16.3
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 / Stripe / CheckoutGateway.php
give / src / PaymentGateways / Gateways / Stripe Last commit date
Actions 2 years ago Controllers 4 years ago Exceptions 3 years ago Helpers 4 years ago Migrations 2 years ago StripePaymentElementGateway 1 month ago Traits 3 days ago ValueObjects 4 years ago Webhooks 4 months ago BECSGateway.php 11 months ago CheckoutGateway.php 11 months ago CreditCardGateway.php 11 months ago LegacyStripeAdapter.php 1 year ago SEPAGateway.php 11 months ago
CheckoutGateway.php
127 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\Stripe;
4
5 use Give\Donations\Models\Donation;
6 use Give\Framework\Exceptions\Primitives\Exception;
7 use Give\Framework\PaymentGateways\Commands\GatewayCommand;
8 use Give\Framework\PaymentGateways\Commands\RedirectOffsite;
9 use Give\Framework\PaymentGateways\Exceptions\PaymentGatewayException;
10 use Give\Framework\PaymentGateways\PaymentGateway;
11 use Give\Framework\PaymentGateways\PaymentGatewayRegister;
12 use Give\Helpers\Call;
13 use Give\Helpers\Gateways\Stripe;
14 use Give\PaymentGateways\Gateways\Stripe\Exceptions\CheckoutException;
15 use Give\PaymentGateways\Gateways\Stripe\Exceptions\CheckoutTypeException;
16 use Give\PaymentGateways\Gateways\Stripe\ValueObjects\PaymentMethod;
17
18 /**
19 * @since 2.19.0
20 */
21 class CheckoutGateway extends PaymentGateway
22 {
23 use Traits\CheckoutInstructions;
24 use Traits\CheckoutModal;
25 use Traits\CheckoutRedirect;
26 use Traits\HandlePaymentIntentStatus;
27
28 /**
29 * @inheritDoc
30 * @since 2.19.0
31 *
32 * @param array{stripePaymentMethod: PaymentMethod} $gatewayData
33 *
34 * @throws PaymentGatewayException
35 */
36 public function createPayment(Donation $donation, $gatewayData): GatewayCommand
37 {
38 switch ($this->getCheckoutType()) {
39 case 'modal':
40 return give(PaymentGatewayRegister::class)
41 ->getPaymentGateway(CreditCardGateway::id())
42 ->createPayment($donation, $gatewayData);
43 case 'redirect':
44 return $this->createPaymentRedirect($donation);
45 default:
46 throw new CheckoutException('Invalid Checkout Error');
47 }
48 }
49
50 /**
51 * @since 2.21.2
52 */
53 public function getCheckoutType(): string
54 {
55 return give_stripe_get_checkout_type();
56 }
57
58 /**
59 * @since 2.19.7 fix argument order of CreateCheckoutSession
60 * @since 2.19.0
61 */
62 protected function createPaymentRedirect(Donation $donation): RedirectOffsite
63 {
64 $donationSummary = Call::invoke(Actions\SaveDonationSummary::class, $donation);
65 $stripeCustomer = Call::invoke(Actions\GetOrCreateStripeCustomer::class, $donation);
66 $session = Call::invoke(Actions\CreateCheckoutSession::class, $donation, $donationSummary, $stripeCustomer);
67
68 return new RedirectOffsite(
69 $this->getRedirectUrl($session->id(), give_get_payment_form_id($donation->id))
70 );
71 }
72
73 /**
74 * @inheritDoc
75 */
76 public static function id(): string
77 {
78 return 'stripe_checkout';
79 }
80
81 /**
82 * @inheritDoc
83 */
84 public function getId(): string
85 {
86 return self::id();
87 }
88
89 /**
90 * @inheritDoc
91 */
92 public function getName(): string
93 {
94 return __('Stripe - Checkout', 'give');
95 }
96
97 /**
98 * @inheritDoc
99 */
100 public function getPaymentMethodLabel(): string
101 {
102 return __('Stripe - Checkout', 'give');
103 }
104
105 /**
106 * @inheritDoc
107 *
108 * @since 2.23.1
109 *
110 * @return string|void
111 */
112 public function getLegacyFormFieldMarkup(int $formId, array $args): string
113 {
114 Stripe::canShowBillingAddress($formId, $args);
115
116 switch ($checkoutType = give_stripe_get_checkout_type()) {
117 case 'redirect':
118 return $this->getCheckoutInstructions();
119 case 'modal':
120 return $this->getCheckoutInstructions()
121 . $this->getCheckoutModalHTML($formId, $args);
122 default:
123 throw new CheckoutTypeException($checkoutType);
124 }
125 }
126 }
127