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 / 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 Workflow.php 4 years ago WorkflowAction.php 4 years ago
BECSGateway.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\BECSMandateForm;
12 use Give\PaymentGateways\Gateways\Stripe\Traits\HandlePaymentIntentStatus;
13 use Give\PaymentGateways\Gateways\Stripe\ValueObjects\PaymentIntent;
14
15 /**
16 * @since 2.19.0
17 */
18 class BECSGateway extends PaymentGateway
19 {
20 use BECSMandateForm;
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__( 'Mandate form fields are disabled because your site is not running securely over HTTPS.', 'give' );
31 $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' );
32 $this->errorMessages['accountNotConfigured'] = esc_html__( 'Mandate form 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_becs';
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 - BECS Direct Debit', 'give');
80 }
81
82 /**
83 * @inheritDoc
84 */
85 public function getPaymentMethodLabel()
86 {
87 return __('Stripe - BECS 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' => [ 'au_becs_debit' ],
106 'setup_future_usage' => 'off_session', // @TODO Is this correct? Maybe should be `on_session` - need to confirm.
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