PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.2
GiveWP – Donation Plugin and Fundraising Platform v2.19.2
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 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 / SEPAGateway.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 Workflow.php 4 years ago WorkflowAction.php 4 years ago
SEPAGateway.php
119 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\Form\Utils as FormUtils;
10 use Give\PaymentGateways\DataTransferObjects\GatewayPaymentData;
11 use Give\PaymentGateways\Gateways\Stripe\Traits\HandlePaymentIntentStatus;
12 use Give\PaymentGateways\Gateways\Stripe\Traits\SEPAMandateForm;
13 use Give\PaymentGateways\Gateways\Stripe\ValueObjects\PaymentIntent;
14
15 /**
16 * @since 2.19.0
17 */
18 class SEPAGateway extends PaymentGateway
19 {
20 use SEPAMandateForm;
21 use HandlePaymentIntentStatus;
22
23 /** @var array */
24 protected $errorMessages = [];
25
26 public function __construct(SubscriptionModuleInterface $subscriptionModule = null)
27 {
28 parent::__construct($subscriptionModule);
29
30 $this->errorMessages['accountConfiguredNoSsl'] = esc_html__( 'IBAN fields are disabled because your site is not running securely over HTTPS.', 'give' );
31 $this->errorMessages['accountNotConfiguredNoSsl'] = esc_html__( 'IBAN fields are disabled because Stripe is not connected and your site is not running securely over HTTPS.', 'give' );
32 $this->errorMessages['accountNotConfigured'] = esc_html__( 'IBAN fields are disabled. Please connect and configure your Stripe account to accept donations.', 'give' );
33 }
34
35 /**
36 * @inheritDoc
37 * @since 2.19.0
38 * @return GatewayCommand
39 * @throws PaymentGatewayException
40 */
41 public function createPayment( GatewayPaymentData $paymentData )
42 {
43 $workflow = new Workflow();
44 $workflow->bind( $paymentData );
45
46 $workflow->action( new Actions\SaveDonationSummary );
47 $workflow->action( new Actions\GetPaymentMethodFromRequest );
48 $workflow->action( new Actions\GetOrCreateStripeCustomer );
49 $workflow->action( new Actions\CreatePaymentIntent(
50 $this->getPaymentIntentArgs()
51 ));
52
53 return $this->handlePaymentIntentStatus(
54 $workflow->resolve( PaymentIntent::class )
55 );
56 }
57
58 /**
59 * @inheritDoc
60 */
61 public static function id()
62 {
63 return 'stripe_sepa';
64 }
65
66 /**
67 * @inheritDoc
68 */
69 public function getId()
70 {
71 return self::id();
72 }
73
74 /**
75 * @inheritDoc
76 */
77 public function getName()
78 {
79 return __('Stripe - SEPA Direct Debit', 'give');
80 }
81
82 /**
83 * @inheritDoc
84 */
85 public function getPaymentMethodLabel()
86 {
87 return __('Stripe - SEPA Direct Debit', 'give');
88 }
89
90 /**
91 * @inheritDoc
92 */
93 public function getLegacyFormFieldMarkup($formId, $args)
94 {
95 return $this->getMandateFormHTML( $formId, $args );
96 }
97
98 /**
99 * @since 2.19.0
100 * @return array
101 */
102 protected function getPaymentIntentArgs()
103 {
104 return [
105 'payment_method_types' => [ 'sepa_debit' ],
106 'setup_future_usage' => 'on_session',
107 'mandate_data' => [
108 'customer_acceptance' => [
109 'type' => 'online',
110 'online' => [
111 'ip_address' => give_stripe_get_ip_address(),
112 'user_agent' => give_get_user_agent(),
113 ],
114 ],
115 ],
116 ];
117 }
118 }
119