1.0.0
π UPC 1.0.0
This release adds asynchronous webhook/3DS confirmation, synchronous hosted-fields payment
creation, and completes the 3DS-pending redirect flow β the first release with a real end-to-end
payment path, from creation through the bank's 3DS challenge to the final webhook confirmation.
π₯ Breaking Changes
No CMS plugin has integrated against UPC yet, so these carry no runtime blast radius today.
- π¦
Models/βDataValues/+Output/β the category is gone;PaymentOutcome/
OperationDatamoved toDataValues/(durable state),TokenβTokenOutput,
AuthorizationRequestβAuthorizationRequestOutput, and the newHostedPaymentResultβ
HostedPaymentOutputmoved toOutput/(call-result value objects) - βοΈ
createHostedPayment()signature β replaced its original 11 positional parameters with
a single validatedHostedFieldDto
β¨ Highlights
- π Webhook / 3DS confirmation (PRE-3588) β
WebhookNotificationHelperverifies an inbound
"Payment Operation" notification'sAuthorizationheader (constant-time comparison) and parses
its body into anOperationData, mappingexecCodeto aPaymentOutcomevia the new
ExecCodeMapper; throws the newInvalidNotificationExceptionon a missing/invalid signature,
malformed body, or invalid field - π³ Hosted-fields payment creation (PRE-3587) β
UnifiedApiHostedPaymentService:: createHostedPayment()creates/confirms a payment from anhfTokenagainst the Unified API,
distinguishing a direct success from a pending 3DS/SCA redirect; newDto/(HostedFieldDto,
CommonFieldsDto,BrowserDto,CustomerDto) andValidators/(HostedFieldDtoValidator,
CommonFieldsDtoValidator) categories back the validated input - π Completing the 3DS-pending redirect (PRE-3551) β
CommonFieldsDtogainssuccessUrl/
cancelUrl(nested under aredirectobject, the merchant-return URLs after the bank's
challenge);HostedPaymentOutputgainsredirectHtmlalongsideredirectUrl, decoding the
Unified API's default Base64-encodedredirect.htmlself-submitting challenge form - π¬ Marketplace routing β
submerchantExternalIdadded as a requiredCommonFieldsDtofield
β Quality
216 tests / 517 assertions, PHPStan level 8, PHP-CS-Fixer, and CI verifying PHP 7.1β8.2
compatibility β all clean on this release branch.
π Requirements
- PHP β₯7.4 to install/develop (build-tooling floor only β shipped source runs on PHP 7.1)
- Runtime dependency:
giggsey/libphonenumber-for-php
π Full Changelog: 0.1.0...1.0.0