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 / Actions / CreatePaymentIntent.php
give / src / PaymentGateways / Gateways / Stripe / Actions Last commit date
CreateCheckoutSession.php 4 years ago CreatePaymentIntent.php 2 years ago GetOrCreateStripeCustomer.php 4 years ago GetPaymentMethodFromRequest.php 4 years ago SaveDonationSummary.php 4 years ago UpdateStripeAccountStatementDescriptor.php 4 years ago ValidatePaymentMethod.php 4 years ago
CreatePaymentIntent.php
91 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\Stripe\Actions;
4
5 use Give\Donations\Models\Donation;
6 use Give\Donations\Models\DonationNote;
7 use Give\Framework\Exceptions\Primitives\Exception;
8 use Give\Framework\PaymentGateways\DonationSummary;
9 use Give\PaymentGateways\Exceptions\InvalidPropertyName;
10 use Give\PaymentGateways\Gateways\Stripe\ValueObjects\PaymentIntent;
11 use Give\PaymentGateways\Gateways\Stripe\ValueObjects\PaymentMethod;
12
13 /**
14 * @since 2.19.0
15 */
16 class CreatePaymentIntent
17 {
18 /** @var array */
19 protected $defaultIntentArgs;
20
21 /**
22 * @since 2.19.0
23 */
24 public function __construct(array $paymentIntentArgs = [])
25 {
26 $this->defaultIntentArgs = $paymentIntentArgs;
27 }
28
29 /**
30 * @since 3.5.0 remove descriptor as Stripe automatically adds it, per Stripe API changes (https://support.stripe.com/questions/use-of-the-statement-descriptor-parameter-on-paymentintents-for-card-charges)
31 * @since 2.33.0 no longer store the payment intent secret
32 * @since 2.19.0
33 *
34 * @throws InvalidPropertyName
35 * @throws Exception
36 */
37 public function __invoke(
38 Donation $donation,
39 DonationSummary $donationSummary,
40 \Give_Stripe_Customer $giveStripeCustomer,
41 PaymentMethod $paymentMethod
42 ): PaymentIntent {
43 /**
44 * This filter hook is used to update the payment intent arguments.
45 *
46 * @since 2.5.0
47 */
48 $intent_args = apply_filters(
49 'give_stripe_create_intent_args',
50 array_merge([
51 'amount' => $donation->amount->formatToMinorAmount(),
52 'currency' => $donation->amount->getCurrency(),
53 'payment_method_types' => ['card'],
54 'description' => $donationSummary->getSummaryWithDonor(),
55 'metadata' => give_stripe_prepare_metadata($donation->id),
56 'customer' => $giveStripeCustomer->get_id(),
57 'payment_method' => $paymentMethod->id(),
58 'confirm' => true,
59 'return_url' => give_get_success_page_uri(),
60 ], $this->defaultIntentArgs)
61 );
62
63 // Send Stripe Receipt emails when enabled.
64 if (give_is_setting_enabled(give_get_option('stripe_receipt_emails'))) {
65 $intent_args['receipt_email'] = $donation->email;
66 }
67
68 $intent = give(PaymentIntent::class)->create($intent_args);
69
70 DonationNote::create([
71 'donationId' => $donation->id,
72 'content' => sprintf(__('Stripe Charge/Payment Intent ID: %s', 'give'), $intent->id())
73 ]);
74
75 if ('requires_action' === $intent->status()) {
76 DonationNote::create([
77 'donationId' => $donation->id,
78 'content' => __('Stripe requires additional action to be fulfilled. Check your Stripe account.', 'give')
79 ]);
80
81 give_update_meta(
82 $donation->id,
83 '_give_stripe_payment_intent_require_action_url',
84 $intent->nextActionRedirectUrl()
85 );
86 }
87
88 return $intent;
89 }
90 }
91