PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.15.5
GiveWP – Donation Plugin and Fundraising Platform v4.15.5
4.18.0 4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 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 All 257 releases
give / src / PaymentGateways / Gateways / Stripe / CreditCardGateway.php

CreditCardGateway.php in GiveWP – Donation Plugin and Fundraising Platform 4.15.5, at src/PaymentGateways/Gateways/Stripe/CreditCardGateway.php

110 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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\Exceptions\PaymentGatewayException;
9 use Give\Framework\PaymentGateways\PaymentGateway;
10 use Give\Framework\PaymentGateways\SubscriptionModule;
11 use Give\Helpers\Call;
12 use Give\PaymentGateways\Gateways\Stripe\ValueObjects\PaymentMethod;
13
14 /**
15 * @since 2.19.0
16 */
17 class CreditCardGateway extends PaymentGateway
18 {
19 use Traits\CreditCardForm;
20 use Traits\HandlePaymentIntentStatus;
21
22 /** @var array */
23 protected $errorMessages = [];
24
25 public function __construct(SubscriptionModule $subscriptionModule = null)
26 {
27 parent::__construct($subscriptionModule);
28
29 $this->errorMessages['accountConfiguredNoSsl'] = esc_html__(
30 'Credit Card fields are disabled because your site is not running securely over HTTPS.',
31 'give'
32 );
33 $this->errorMessages['accountNotConfiguredNoSsl'] = esc_html__(
34 'Credit Card fields are disabled because Stripe is not connected and your site is not running securely over HTTPS.',
35 'give'
36 );
37 $this->errorMessages['accountNotConfigured'] = esc_html__(
38 'Credit Card fields are disabled. Please connect and configure your Stripe account to accept donations.',
39 'give'
40 );
41 }
42
43 /**
44 * @inheritDoc
45 * @since 2.19.7 fix handlePaymentIntentStatus not receiving extra param
46 * @since 2.19.0
47 *
48 * @param array{stripePaymentMethod: PaymentMethod} $gatewayData
49 *
50 * @throws PaymentGatewayException
51 */
52 public function createPayment(Donation $donation, $gatewayData): GatewayCommand
53 {
54 $donationSummary = Call::invoke(Actions\SaveDonationSummary::class, $donation);
55 $stripeCustomer = Call::invoke(Actions\GetOrCreateStripeCustomer::class, $donation);
56
57 $createIntentAction = new Actions\CreatePaymentIntent([]);
58
59 return $this->handlePaymentIntentStatus(
60 $createIntentAction(
61 $donation,
62 $donationSummary,
63 $stripeCustomer,
64 $gatewayData['stripePaymentMethod']
65 ),
66 $donation
67 );
68 }
69
70 /**
71 * @inheritDoc
72 */
73 public static function id(): string
74 {
75 return 'stripe';
76 }
77
78 /**
79 * @inheritDoc
80 */
81 public function getId(): string
82 {
83 return self::id();
84 }
85
86 /**
87 * @inheritDoc
88 */
89 public function getName(): string
90 {
91 return __('Stripe - Credit Card', 'give');
92 }
93
94 /**
95 * @inheritDoc
96 */
97 public function getPaymentMethodLabel(): string
98 {
99 return __('Stripe - Credit Card', 'give');
100 }
101
102 /**
103 * @inheritDoc
104 */
105 public function getLegacyFormFieldMarkup(int $formId, array $args): string
106 {
107 return $this->getCreditCardFormHTML($formId, $args);
108 }
109 }
110