Stripe-Integration (S4, S5, S7.6): Abos, Zahlungsart ändern, Zahlarten-Kommunikation
Phase S4 – Abos über Stripe (E2E komplett im Testmodus): - Abo-/Recovery-Checkout: customer_creation=always + setup_future_usage=off_session - StripePaymentService::chargeAbo (off-session PaymentIntent, Idempotency-Key), StripeGateway, Provider-Dispatch im Abbuchungs-Cron (PAYONE-Pfad unverändert) - Webhook: Zahlungsmittel-Capture vor Paid-Pfad, 503 payment_not_yet_visible bei Cron-Transaktions-Race; Command stripe:process-pending-events (Cron-Ende + 10-min Scheduler) verarbeitet liegengebliebene Events nach - createNewAbo/advanceAboAfterRecoveryPayment Stripe-aware inkl. Race-Absicherung; Recovery-Orders nutzen advanceAboAfterRecoveryPayment (latenter PAYONE-Duplikat-Bug) - Migrationen: Stripe-Abo-Spalten auf shopping_payments; clearingtype varchar(3)→(20) inkl. Reparatur der zu 'str' gekürzten Live-Zeilen Phase S5 – Zahlungsart ändern (Scope: jede Zahlart, nicht nur Kreditkarte): - Stripe Checkout mode=setup ohne Abbuchung; PAYONE-Abos ziehen beim Wechsel auf Stripe um (Auslaufmodell §7.2) - AboPaymentMethodService: beginStripeChange/finalize/applyStripePaymentMethod (idempotent, detacht alte PM, card_changes-Log); Webhook setup_intent.succeeded als Sicherheitsnetz; Einstiege Portal/CRM/Berater-Kunden-Link flow-abhängig - Views/Mails flow-abhängig („Zahlungsweise" statt „Kreditkarte") Phase S7.6 – Zahlarten-Kommunikation: - Einheitliche Zahlarten-Logos (SVG) + wiederverwendbares Partial payment_logos; Checkout/Footer zeigen Kern-Zahlarten + „···"-Icon, /zahlungsarten komplett neu mit allen aktiven Stripe-Zahlarten (gegen Account-Konfiguration verifiziert) und Vorkasse (PAYONE); Sofort/SEPA entfernt Tests: StripeAboTest (15), StripePaymentMethodChangeTest (10), PaymentMethodsCommunicationTest (28), PaymentProviderManagerTest angepasst. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
e1da90ff91
commit
dd1c8f9a1e
68 changed files with 2856 additions and 236 deletions
|
|
@ -278,4 +278,18 @@ return [
|
|||
'card_expiry_invalid' => 'Bitte geben Sie ein gültiges Ablaufdatum an.',
|
||||
'card_type_invalid' => 'Bitte wählen Sie einen gültigen Kartentyp (Visa oder Mastercard).',
|
||||
'card_cvc_invalid' => 'Bitte geben Sie eine gültige Prüfziffer (CVC) ein.',
|
||||
|
||||
// Zahlungsart ändern über Stripe (Plan S5, dev/2026-07-08-stripe/)
|
||||
'payment_method_change_title' => 'Zahlungsart ändern',
|
||||
'payment_method_change_intro' => 'Wähle auf der sicheren Zahlungsseite deine neue Zahlungsart für dieses Abo — zum Beispiel wenn deine Karte abgelaufen ist oder du künftig anders zahlen möchtest.',
|
||||
'payment_method_change_no_charge' => 'Es wird nichts abgebucht — die neue Zahlungsart gilt ab der nächsten Abo-Abbuchung.',
|
||||
'payment_method_change_button' => 'Neue Zahlungsart wählen',
|
||||
'payment_method_change_success' => 'Deine Zahlungsart wurde aktualisiert. Die nächste Abbuchung erfolgt über die neue Zahlungsart.',
|
||||
'payment_method_change_failed' => 'Die Zahlungsart konnte nicht geändert werden. Bitte versuche es erneut.',
|
||||
'current_payment_method' => 'Aktuelle Zahlungsart',
|
||||
'payment_method_change_done_title' => 'Zahlungsart aktualisiert',
|
||||
'payment_method_change_done_failed_copy' => 'Die Zahlungsart konnte nicht geändert werden. Bitte fordere bei Bedarf einen neuen Link an.',
|
||||
'payment_method_change_link_mail_subject' => 'Zahlungsart für dein Abo aktualisieren',
|
||||
'payment_method_change_link_mail_intro' => 'Bitte aktualisiere die Zahlungsart für dein Abo über den folgenden sicheren Link. Deine neue Zahlungsart wählst du direkt auf der sicheren Seite unseres Zahlungsdienstleisters Stripe — es wird dabei nichts abgebucht.',
|
||||
'payment_method_change_link_mail_button' => 'Zahlungsart aktualisieren',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -151,11 +151,15 @@ return [
|
|||
|
||||
// Stripe (Hosted Checkout)
|
||||
'stripe_online' => 'Online-Zahlung',
|
||||
'stripe_online_methods' => 'Kreditkarte, PayPal, Apple Pay, Google Pay, Klarna u. v. m.',
|
||||
'stripe_online_methods' => 'Kreditkarte, PayPal, Apple Pay, Google Pay, Klarna, Amazon Pay u. v. m.',
|
||||
'stripe_online_copy' => 'Du wirst zur sicheren Zahlungsseite weitergeleitet und wählst dort deine Zahlungsart.',
|
||||
'stripe_online_short' => 'Online-Zahlung (Stripe)',
|
||||
'stripe_unavailable' => 'Die Online-Zahlung ist derzeit nicht erreichbar. Bitte versuche es gleich erneut.',
|
||||
'stripe_order_label' => 'Bestellung :reference',
|
||||
'stripe_abo_hint' => 'Deine Zahlungsart wird sicher bei unserem Zahlungsdienstleister Stripe hinterlegt und für die folgenden Abo-Abbuchungen verwendet.',
|
||||
'stripe_abo_payment_method_missing' => 'Für dieses Abo ist kein gültiges Zahlungsmittel hinterlegt. Bitte aktualisiere deine Zahlungsart.',
|
||||
'stripe_abo_authentication_required' => 'Deine Bank verlangt eine Bestätigung der Zahlung. Bitte hole die Zahlung über deine Abo-Seite nach.',
|
||||
'prepayment_payone' => 'Vorkasse (PAYONE)',
|
||||
|
||||
// Not-Schalter: Abo-Zahlungen eingefroren (PAYONE-Ausfall, bis Stripe-Abos live sind)
|
||||
'prepayment_no_clearing_data' => 'Bankverbindung liegt noch nicht vor — die Zahlung wurde beim Zahlungsanbieter noch nicht erfolgreich registriert.',
|
||||
|
|
|
|||
|
|
@ -21,19 +21,32 @@ return [
|
|||
'plus_shipping_cost' => 'zzgl. Versandkosten',
|
||||
'delivery_time_1_3' => 'Lieferzeit: 1-3 Werktage',
|
||||
'payment_methods' => 'Zahlungsarten',
|
||||
'payment_method_paypal' => 'Zahlung mit Paypal',
|
||||
'payment_method_paypal_copy' => 'Nach der erfolgreichen Überprüfung werden Sie auf die abgesicherte Bezahlseite von Paypal umgeleitet, um die Zahlung fortzusetzen. Bitte schließen Sie den Browser nach der erfolgreichen Zahlung nicht, bis Sie zum Shop zurückgeleitet wurden.',
|
||||
'payment_method_direct' => 'Sofortüberweisung',
|
||||
'payment_method_direct_copy' => 'Nach der erfolgreichen Überprüfung werden Sie auf die abgesicherte Zahlungsseite von PAYONE für SOFORT Überweisungen umgeleitet, um die Zahlung fortzusetzen. Bitte schließen Sie den Browser nach der erfolgreichen Zahlung nicht, bis Sie zum Shop zurückgeleitet wurden.',
|
||||
'payment_method_sepa' => 'SEPA Lastschrift',
|
||||
'payment_method_sepa_copy' => 'Ihr Konto wird nach Abschicken der Bestellung für diese eine Bestellung belastet. Das SEPA-Lastschriftverfahren wird über unseren Zahlungsdienstleister PAYONE abgewickelt.',
|
||||
'payment_methods_intro' => 'Online-Zahlungen werden sicher über unseren Zahlungsdienstleister Stripe abgewickelt. Im Checkout wirst du auf die Zahlungsseite weitergeleitet und wählst dort deine bevorzugte Zahlungsart.',
|
||||
'payment_method_paypal' => 'PayPal',
|
||||
'payment_method_paypal_copy' => 'Du wirst zur abgesicherten Bezahlseite von PayPal weitergeleitet und bestätigst dort die Zahlung. Danach geht es automatisch zurück in den Shop.',
|
||||
'payment_method_creditcard' => 'Kreditkarte',
|
||||
'payment_method_creditcard_copy' => 'Der Betrag wird von Ihrer Kreditkarte abgebucht, sobald die Bestellung abgeschickt wird. Das Kreditkartenverfahren wird über unseren Zahlungsdienstleister PAYONE abgewickelt.',
|
||||
'payment_method_prepayment' => 'Vorauskasse',
|
||||
'payment_method_prepayment_copy' => 'Nachdem Sie die Bestellung abgeschickt haben, erhalten Sie eine Email mit den Bankdaten, um die Zahlung durchzuführen. Nach Eingang des Betrages, wird Deine Ware verschickt.',
|
||||
'payment_method_creditcard_copy' => 'Wir akzeptieren Visa, Mastercard und American Express. Der Betrag wird deiner Kreditkarte belastet, sobald du die Bestellung abschickst. Die Zahlung wird sicher über unseren Zahlungsdienstleister Stripe abgewickelt.',
|
||||
'payment_method_applepay' => 'Apple Pay',
|
||||
'payment_method_applepay_copy' => 'Bezahle in wenigen Sekunden mit deinem Apple-Gerät, ohne Kartendaten einzutippen – verfügbar in Safari sowie auf iPhone und iPad.',
|
||||
'payment_method_googlepay' => 'Google Pay',
|
||||
'payment_method_googlepay_copy' => 'Bezahle schnell und sicher mit den Zahlungsdaten aus deinem Google-Konto, z. B. in Chrome oder auf deinem Android-Gerät.',
|
||||
'payment_method_klarna' => 'Klarna',
|
||||
'payment_method_klarna_copy' => 'Bezahle bequem über Klarna. Welche Klarna-Optionen für dich verfügbar sind, siehst du direkt auf der Zahlungsseite.',
|
||||
'payment_method_amazonpay' => 'Amazon Pay',
|
||||
'payment_method_amazonpay_copy' => 'Bezahle mit den Zahlungs- und Adressdaten aus deinem Amazon-Konto – ganz ohne neue Registrierung.',
|
||||
'payment_method_link' => 'Link (Stripe)',
|
||||
'payment_method_link_copy' => 'Mit Link speicherst du deine Zahlungsdaten einmalig und sicher bei Stripe und bezahlst danach in allen Shops mit Link-Unterstützung mit einem Klick.',
|
||||
'payment_method_eps' => 'EPS',
|
||||
'payment_method_eps_copy' => 'Die Online-Überweisung für Kunden mit österreichischem Bankkonto – du bezahlst direkt über dein Online-Banking.',
|
||||
'payment_method_bancontact' => 'Bancontact',
|
||||
'payment_method_bancontact_copy' => 'Die beliebteste Zahlungsart in Belgien – du bezahlst direkt über dein belgisches Bankkonto.',
|
||||
'payment_method_more' => 'Weitere Zahlarten',
|
||||
'payment_method_more_copy' => 'Je nach Land und Endgerät stehen dir auf der Zahlungsseite weitere Zahlarten zur Verfügung – z. B. BLIK, MB WAY, Pix, Satispay, Samsung Pay, Kakao Pay, Naver Pay oder PAYCO.',
|
||||
'payment_method_prepayment' => 'Vorkasse (PAYONE)',
|
||||
'payment_method_prepayment_copy' => 'Nachdem du die Bestellung abgeschickt hast, erhältst du eine E-Mail mit unseren Bankdaten für die Überweisung. Sobald der Betrag eingegangen ist, wird deine Ware verschickt.',
|
||||
'shipping_methods_costs' => 'Versandarten & Versandkosten',
|
||||
'free_shipping_at' => 'Versandkostenfrei ab :value €',
|
||||
|
||||
|
||||
'only_missing_free_shipping_at' => 'Es fehlen nur noch :value € für Deine versandkostenfreie Lieferung.',
|
||||
'free_shipping' => 'versandkostenfreie Lieferung',
|
||||
'not_free_shipping' => 'nicht versandkostenfrei',
|
||||
|
|
@ -50,7 +63,7 @@ return [
|
|||
|
||||
];
|
||||
/*
|
||||
{{ __('weborder.') }}
|
||||
{{ __('weborder.') }}
|
||||
{{ __('weborder.name') }}
|
||||
weborder.name
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -278,4 +278,18 @@ return [
|
|||
'card_expiry_invalid' => 'Please enter a valid expiry date.',
|
||||
'card_type_invalid' => 'Please select a valid card type (Visa or Mastercard).',
|
||||
'card_cvc_invalid' => 'Please enter a valid security code (CVC).',
|
||||
|
||||
// Change payment method via Stripe (plan S5, dev/2026-07-08-stripe/)
|
||||
'payment_method_change_title' => 'Change payment method',
|
||||
'payment_method_change_intro' => 'Choose a new payment method for this subscription on the secure payment page — for example if your card has expired or you want to pay differently in the future.',
|
||||
'payment_method_change_no_charge' => 'Nothing will be charged — the new payment method applies from the next subscription payment.',
|
||||
'payment_method_change_button' => 'Choose new payment method',
|
||||
'payment_method_change_success' => 'Your payment method has been updated. The next payment will use the new method.',
|
||||
'payment_method_change_failed' => 'The payment method could not be changed. Please try again.',
|
||||
'current_payment_method' => 'Current payment method',
|
||||
'payment_method_change_done_title' => 'Payment method updated',
|
||||
'payment_method_change_done_failed_copy' => 'The payment method could not be changed. Please request a new link if needed.',
|
||||
'payment_method_change_link_mail_subject' => 'Update the payment method for your subscription',
|
||||
'payment_method_change_link_mail_intro' => 'Please update the payment method for your subscription via the following secure link. You choose your new payment method directly on the secure page of our payment provider Stripe — nothing will be charged.',
|
||||
'payment_method_change_link_mail_button' => 'Update payment method',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -199,11 +199,15 @@ return [
|
|||
|
||||
// Stripe (hosted checkout)
|
||||
'stripe_online' => 'Online payment',
|
||||
'stripe_online_methods' => 'Credit card, PayPal, Apple Pay, Google Pay, Klarna and more',
|
||||
'stripe_online_methods' => 'Credit card, PayPal, Apple Pay, Google Pay, Klarna, Amazon Pay and more',
|
||||
'stripe_online_copy' => 'You will be redirected to a secure payment page where you choose your payment method.',
|
||||
'stripe_online_short' => 'Online payment (Stripe)',
|
||||
'stripe_unavailable' => 'Online payment is currently unavailable. Please try again in a moment.',
|
||||
'stripe_order_label' => 'Order :reference',
|
||||
'stripe_abo_hint' => 'Your payment method is stored securely with our payment provider Stripe and used for the upcoming subscription payments.',
|
||||
'stripe_abo_payment_method_missing' => 'There is no valid payment method stored for this subscription. Please update your payment method.',
|
||||
'stripe_abo_authentication_required' => 'Your bank requires confirmation of this payment. Please complete the payment from your subscription page.',
|
||||
'prepayment_payone' => 'Prepayment (PAYONE)',
|
||||
|
||||
// Emergency switch: subscription payments frozen (PAYONE outage, until Stripe subscriptions are live)
|
||||
'prepayment_no_clearing_data' => 'Bank details are not available yet — the payment has not been successfully registered with the payment provider.',
|
||||
|
|
|
|||
|
|
@ -19,17 +19,30 @@ return [
|
|||
'not_free_shipping' => 'not free shipping',
|
||||
'only_missing_free_shipping_at' => 'All that\'s left is :value € for your free shipping.',
|
||||
'only_missing_free_shipping_costs_from' => 'All that\'s left is :value € for your free shipping.',
|
||||
'payment_method_creditcard' => 'credit card',
|
||||
'payment_method_creditcard_copy' => 'The amount will be deducted from your credit card as soon as the order is submitted. The credit card process is processed via our payment service provider PAYONE.',
|
||||
'payment_method_direct' => 'instant bank transfer',
|
||||
'payment_method_direct_copy' => 'After successful verification, you will be redirected to PAYONE\'s secured payment page for SOFORT transfers to continue payment. After successful payment, please do not close the browser until you have been redirected back to the shop.',
|
||||
'payment_method_paypal' => 'payment with Paypal',
|
||||
'payment_method_paypal_copy' => 'After successful verification, you will be redirected to Paypal\'s secure payment page to continue payment. After successful payment, please do not close the browser until you have been redirected back to the shop.',
|
||||
'payment_method_prepayment' => 'prepayment',
|
||||
'payment_method_prepayment_copy' => 'After you have submitted the order, you will receive an email with the bank details to make the payment. After receipt of the amount, your goods will be shipped.',
|
||||
'payment_method_sepa' => 'SEPA direct debit',
|
||||
'payment_method_sepa_copy' => 'Your account will be charged for this one order after the order is submitted. The SEPA direct debit is processed via our payment service provider PAYONE.',
|
||||
'payment_method_creditcard' => 'Credit card',
|
||||
'payment_method_creditcard_copy' => 'We accept Visa, Mastercard and American Express. The amount is charged to your credit card as soon as you submit the order. The payment is processed securely via our payment service provider Stripe.',
|
||||
'payment_method_paypal' => 'PayPal',
|
||||
'payment_method_paypal_copy' => 'You will be redirected to PayPal\'s secure payment page to confirm the payment. Afterwards you are taken back to the shop automatically.',
|
||||
'payment_method_applepay' => 'Apple Pay',
|
||||
'payment_method_applepay_copy' => 'Pay within seconds using your Apple device, without typing in card details – available in Safari and on iPhone and iPad.',
|
||||
'payment_method_googlepay' => 'Google Pay',
|
||||
'payment_method_googlepay_copy' => 'Pay quickly and securely with the payment details stored in your Google account, e.g. in Chrome or on your Android device.',
|
||||
'payment_method_klarna' => 'Klarna',
|
||||
'payment_method_klarna_copy' => 'Pay conveniently via Klarna. You will see which Klarna options are available to you directly on the payment page.',
|
||||
'payment_method_amazonpay' => 'Amazon Pay',
|
||||
'payment_method_amazonpay_copy' => 'Pay with the payment and address details from your Amazon account – no new registration required.',
|
||||
'payment_method_link' => 'Link (Stripe)',
|
||||
'payment_method_link_copy' => 'With Link you store your payment details once and securely with Stripe and then pay with one click in every shop that supports Link.',
|
||||
'payment_method_eps' => 'EPS',
|
||||
'payment_method_eps_copy' => 'The online bank transfer for customers with an Austrian bank account – you pay directly via your online banking.',
|
||||
'payment_method_bancontact' => 'Bancontact',
|
||||
'payment_method_bancontact_copy' => 'The most popular payment method in Belgium – you pay directly via your Belgian bank account.',
|
||||
'payment_method_more' => 'More payment methods',
|
||||
'payment_method_more_copy' => 'Depending on your country and device, additional payment methods are available on the payment page – e.g. BLIK, MB WAY, Pix, Satispay, Samsung Pay, Kakao Pay, Naver Pay or PAYCO.',
|
||||
'payment_method_prepayment' => 'Prepayment (PAYONE)',
|
||||
'payment_method_prepayment_copy' => 'After you have submitted the order, you will receive an email with our bank details for the transfer. As soon as the amount has been received, your goods will be shipped.',
|
||||
'payment_methods' => 'payment Methods',
|
||||
'payment_methods_intro' => 'Online payments are processed securely via our payment service provider Stripe. During checkout you are redirected to the payment page where you choose your preferred payment method.',
|
||||
'plus_shipping_cost' => 'plus shipping and handling',
|
||||
'price_net' => 'prices net',
|
||||
'product_details' => 'product details',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue