PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.8
GiveWP – Donation Plugin and Fundraising Platform v2.19.8
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 / BECSGateway.php
give / src / PaymentGateways / Gateways / Stripe Last commit date
Actions 4 years ago Controllers 4 years ago Exceptions 4 years ago Helpers 4 years ago Migrations 4 years ago Traits 4 years ago ValueObjects 4 years ago BECSGateway.php 4 years ago CheckoutGateway.php 4 years ago CreditCardGateway.php 4 years ago SEPAGateway.php 4 years ago
BECSGateway.php
121 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\Stripe;
4
5 use Give\Framework\PaymentGateways\Commands\GatewayCommand;
6 use Give\Framework\PaymentGateways\Contracts\SubscriptionModuleInterface;
7 use Give\Framework\PaymentGateways\Exceptions\PaymentGatewayException;
8 use Give\Framework\PaymentGateways\PaymentGateway;
9 use Give\Helpers\Call;
10 use Give\PaymentGateways\DataTransferObjects\GatewayPaymentData;
11 use Give\PaymentGateways\Gateways\Stripe\Traits\BECSMandateForm;
12 use Give\PaymentGateways\Gateways\Stripe\Traits\HandlePaymentIntentStatus;
13
14 /**
15 * @since 2.19.0
16 */
17 class BECSGateway extends PaymentGateway
18 {
19 use BECSMandateForm;
20 use HandlePaymentIntentStatus;
21
22 /** @var array */
23 protected $errorMessages = [];
24
25 public function __construct(SubscriptionModuleInterface $subscriptionModule = null)
26 {
27 parent::__construct($subscriptionModule);
28
29 $this->errorMessages['accountConfiguredNoSsl'] = esc_html__( 'Mandate form fields are disabled because your site is not running securely over HTTPS.', 'give' );
30 $this->errorMessages['accountNotConfiguredNoSsl'] = esc_html__( 'Mandate form fields are disabled because Stripe is not connected and your site is not running securely over HTTPS.', 'give' );
31 $this->errorMessages['accountNotConfigured'] = esc_html__( 'Mandate form fields are disabled. Please connect and configure your Stripe account to accept donations.', 'give' );
32 }
33
34 /**
35 * @inheritDoc
36 * @since 2.19.7 fix handlePaymentIntentStatus not receiving extra param
37 * @since 2.19.0
38 * @return GatewayCommand
39 * @throws PaymentGatewayException
40 */
41 public function createPayment( GatewayPaymentData $paymentData )
42 {
43 $paymentMethod = Call::invoke( Actions\GetPaymentMethodFromRequest::class, $paymentData );
44 $donationSummary = Call::invoke( Actions\SaveDonationSummary::class, $paymentData );
45 $stripeCustomer = Call::invoke( Actions\GetOrCreateStripeCustomer::class, $paymentData );
46
47 $createIntentAction = new Actions\CreatePaymentIntent( $this->getPaymentIntentArgs() );
48
49 return $this->handlePaymentIntentStatus(
50 $createIntentAction(
51 $paymentData,
52 $donationSummary,
53 $stripeCustomer,
54 $paymentMethod
55 ),
56 $paymentData->donationId
57 );
58 }
59
60 /**
61 * @inheritDoc
62 */
63 public static function id()
64 {
65 return 'stripe_becs';
66 }
67
68 /**
69 * @inheritDoc
70 */
71 public function getId()
72 {
73 return self::id();
74 }
75
76 /**
77 * @inheritDoc
78 */
79 public function getName()
80 {
81 return __('Stripe - BECS Direct Debit', 'give');
82 }
83
84 /**
85 * @inheritDoc
86 */
87 public function getPaymentMethodLabel()
88 {
89 return __('Stripe - BECS Direct Debit', 'give');
90 }
91
92 /**
93 * @inheritDoc
94 */
95 public function getLegacyFormFieldMarkup($formId, $args)
96 {
97 return $this->getMandateFormHTML( $formId, $args );
98 }
99
100 /**
101 * @since 2.19.0
102 * @return array
103 */
104 protected function getPaymentIntentArgs()
105 {
106 return [
107 'payment_method_types' => [ 'au_becs_debit' ],
108 'setup_future_usage' => 'off_session', // @TODO Is this correct? Maybe should be `on_session` - need to confirm.
109 'mandate_data' => [
110 'customer_acceptance' => [
111 'type' => 'online',
112 'online' => [
113 'ip_address' => give_stripe_get_ip_address(),
114 'user_agent' => give_get_user_agent(),
115 ],
116 ],
117 ],
118 ];
119 }
120 }
121