Skip to content

Payment Verification Fails on PHP 8.3+ Due to yabacon/paystack-php Compatibility Issues #60

@jules-paystack

Description

@jules-paystack

Problem Description

Merchants using PHP 8.3+ are experiencing payment verification failures even though transactions are successful on Paystack's end. The error message displayed is: "Payment verification failed. Status: unknown"

Root Cause

The issue is caused by compatibility problems with the yabacon/paystack-php library (v2.*), which is a hard requirement of this module. The library has not been actively maintained, with the latest commits being from approximately 6 years ago, and does not fully support PHP 8.3+ security and integrity changes.

Impact

  • Payment verification fails after successful transactions
  • Orders cannot be placed despite successful payment
  • Affects merchants running PHP 8.3 or higher
  • Module requires PHP 8.3+ per README, but dependency library is incompatible

Technical Details

  • Module Version: 2.5.0
  • PHP Requirement: 8.3+ (as per module documentation)
  • Dependency: yabacon/paystack-php: 2.*
  • Affected Functionality: Payment verification in Model/PaymentManagement.php::verifyPayment()

Reported By

A merchant has identified this issue and created a patch to address the compatibility problems. They have confirmed that orders can now be placed successfully after applying their fix.

Requested Action

  1. Review the compatibility issues between yabacon/paystack-php and PHP 8.3+
  2. Consider updating to a maintained version of the Paystack PHP library or creating compatibility patches
  3. Test payment verification flow with PHP 8.3+
  4. Update dependency requirements or provide migration path

Additional Context

The merchant has offered to share their patch and discuss proposed fixes. This issue affects the stability and reliability of the module for merchants using modern PHP versions.

Related Files

  • composer.json - Dependency declaration
  • Model/PaymentManagement.php - Payment verification logic
  • Controller/Payment/AbstractPaystackStandard.php - Paystack library initialization

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions