Skip to content

v3.0.1

Latest

Choose a tag to compare

@sudiptpa sudiptpa released this 13 Mar 10:44
db41343

v3.0.1 Release Notes

Highlights

  • Stabilized the v3 package line after the modernization release.
  • Composer package remains sudiptpa/omnipay-esewa.
  • Public SDK shape is now clearly centered around:
    • Sujip\Esewa
    • Omnipay\Esewa
  • Improved model-first design across checkout, callback verification, and transaction status flows.
  • Added typed value objects for:
    • amount
    • transaction UUID
    • product code
    • reference ID
  • Added fromArray() / toArray() support across core request and result models.
  • Strengthened production safety:
    • callback signature verification
    • anti-fraud expectation matching
    • replay protection with persistent stores
    • retry policy abstraction
    • clock abstraction for deterministic replay/expiry logic
  • Zero-dependency runtime core with built-in CurlTransport.
  • Optional PSR-18 transport support retained.
  • Optional Omnipay bridge added for Omnipay-style integrations.
  • Replay protection now supports:
    • in-memory store for tests
    • filesystem store
    • PDO-backed store
  • Documentation refreshed:
    • README
    • user guide
    • migration guide
    • architecture guide
  • CI and package metadata aligned with current support policy.

Important Changes Since v3.0.0

  • Public branding and examples now consistently reflect eSewa PHP SDK.
  • Minimum supported PHP version is now 8.2.
  • PHP support is now 8.2 to 8.5.
  • CI matrix now targets the supported versions only.

Breaking Changes

  • Minimum PHP version changed from 8.1 to 8.2.
  • The preferred framework-agnostic entry point is now:
    • Sujip\Esewa\Esewa::make(...)
  • Integrations relying on undocumented v3.0.0 transitional naming should move to the final public namespaces.

Upgrade Guide

  1. Update package:
    • composer require sudiptpa/omnipay-esewa:^3.0
  2. Use the framework-agnostic entry point:
    • Sujip\Esewa\Esewa::make(...)
  3. Use typed request models for the main flows:
    • CheckoutRequest
    • CallbackPayload
    • VerificationExpectation
    • TransactionStatusRequest
  4. For callback handling:
    • verify on the backend
    • branch on verification state
    • do not trust redirect-only success
  5. For production:
    • use FilesystemIdempotencyStore or PdoIdempotencyStore
    • keep replay protection enabled
    • keep anti-fraud expectation checks enabled
    • use status reconciliation when callback state is uncertain
  6. For Omnipay-style integrations:
    • use Omnipay\Esewa\SecureGateway

Notes

  • This release is a stabilization release for the v3 line.
  • It focuses on API cleanup, PHP compatibility alignment, CI reliability, stronger typing, and production hardening.