Feature/pre 3585 create aliasing - #313
Conversation
There was a problem hiding this comment.
Claude Code Review
Claude Code Review is paused for this repository. To reconnect it, an admin of this repository's GitHub organization (or the account owner, for personal repositories) who can also manage your Claude organization's Code Review settings needs to re-link GitHub in Code Review settings. This is a one-time step.
Tip: disable this comment in your organization's Code Review settings.
823c9ad to
d1d8038
Compare
There was a problem hiding this comment.
Claude Code Review
Claude Code Review is paused for this repository. To reconnect it, an admin of this repository's GitHub organization (or the account owner, for personal repositories) who can also manage your Claude organization's Code Review settings needs to re-link GitHub in Code Review settings. This is a one-time step.
Tip: disable this comment in your organization's Code Review settings.
caad8d2 to
e4d2df2
Compare
e4d2df2 to
ccd3abb
Compare
There was a problem hiding this comment.
Claude Code Review
Claude Code Review is paused for this repository. To reconnect it, an admin of this repository's GitHub organization (or the account owner, for personal repositories) who can also manage your Claude organization's Code Review settings needs to re-link GitHub in Code Review settings. This is a one-time step.
Tip: disable this comment in your organization's Code Review settings.
Description
Le ticket PRE-3585 permet à un client de payer avec une carte déjà enregistrée (alias) pendant le checkout Hosted Fields (UHF), sans ressaisir les champs carte.
CaptureAliasPaymentRequest/CaptureAliasPaymentRequestHandler, parcours jumeau deCaptureHostedPaymentRequestHandlermais construit autour d'unPaymentDto(alias existant) plutôt qu'unHostedFieldDto(token fraîchement tokenisé).CaptureHostedPaymentRequestCommandProviderbascule entre les deux commandes de capture selon la carte sélectionnée en session (payplug_payment_method), gère l'idempotence au retour d'un 3DS pour les deux parcours, et redémarre une tentative propre si le client change de carte entre deux soumissions.Card(marque, 4 derniers chiffres, expiration, pays, client, moyen de paiement).HostedPaymentCreatorInterface/UnifiedApiHostedPaymentCreator→UnifiedApiPaymentCreatorInterface/UnifiedApiPaymentCreator(sert désormais les deux types de paiement, plus seulement Hosted Fields) ;IntegrationDescriptionProvider: construit le champdescriptiondésormais obligatoire côté API (Sylius-{version}/SyliusPayPlugPlugin-{version}/UPC-{version}) ;OrderAddressDtoFactory: construit les DTO billing/shipping (parsing téléphone via lePhoneHelperd'UPC) ;fullNamedans les détails du moyen de paiement envoyés à l'API.successUrl/cancelUrltransitent désormais par le provider existantsylius_shop.provider.order_pay.after_pay_url, pour qu'un défi 3DS/SCA ramène le client sur la même page/pay.last4,exp_month,exp_year,country) capturés depuis la réponse de tokenisation et persistés avec la carte enregistrée.ResolvesSelectedCardTrait,BuildsCommonPaymentContextTrait) pour éviter la duplication entre les deux handlers de capture et le provider.TRANSITION_FAIL) au lieu de faire planter la requête ;persistCard()n'essaie plus de persister uneCardsans moyen de paiement associé (champ Doctrine non nullable).Point d'attention avant merge :
composer.jsonpointe temporairementpayplug/unified-plugin-coreversdev-feature/PRE-3590_hosted_field_aliasing@dev— à remplacer par une version taguée dès qu'elle sera publiée côté UPC.Limites connues (non traitées dans cette PR) :
last4/expirationMonth/expirationYear/country) ne sont pas vérifiés face à une vraie réponse sandbox (aucune doc/SDK vendorisé dans ce repo) — à confirmer en recette.Motivation :
Permettre le paiement en un clic avec une carte déjà enregistrée sur le parcours Hosted Fields, comme sur le parcours redirigé existant.
Related issue(s): Closes PRE-3585
Type of Change
Checklist
Code Quality
composer.jsonTesting
sonarcloudCI jobSecurity & Ops