ezeasorekene / credo-payments
This package is for communicating with credocentral.com and credodemo.com API
v2.0.0
2024-05-07 05:55 UTC
Requires
- curl/curl: ^2.5
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
This package is for communicating with credocentral.com and credodemo.com API
Getting Started
Install the package using composer.
Run composer require ezeasorekene/credo-payments
Define your api keys
Define your $apiKeys variable as an array with the public and private keys. You should get the keys from environment variables. Also define CREDO_MODE environment key with parameters DEMO | LIVE
$apiKeys = [ 'publicKey' => getenv("CREDO_MODE") == 'LIVE' ? getenv("CREDO_LIVE_PUBLIC_KEY") : getenv("CREDO_TEST_PUBLIC_KEY"), 'secretKey' => getenv("CREDO_MODE") == 'LIVE' ? getenv("CREDO_LIVE_SECRET_KEY") : getenv("CREDO_TEST_SECRET_KEY"), ];
Instantiating Transaction
$credo = new CredoPay( $apiKeys, getenv("CREDO_MODE") );
Set data to post using array. Please note that the serviceCode is an optional field. It is used when you want to split payments between different accounts
$credodata = [ 'reference' => uniqid(), 'amount' => 20000, //in kobo 'bearer' => 0, 'callbackUrl' => 'http://example.com/callback/credo', 'currency' => 'NGN', 'customerFirstName' => 'Credo', 'customerLastName' => 'Package', 'customerPhoneNumber' => '234080111111111', 'email' => 'credotest@gmail.com', 'channels' => array('card', 'bank'), 'serviceCode' => 'XXXXXXXXXXX', "metadata" => [ "customFields" => [ [ 'display_name' => 'Custom Field Display 1', 'variable_name' => 'Custom Field Variable 1', 'value' => 'Custom Field Value 1' ] ] ], ];
Response is a JSON encoded object. So to decode, perform a json_decode
$response = json_decode($credo->initialize($credodata));
Verifying Transaction
$credo = new CredoPay( $apiKeys, getenv("CREDO_MODE") ); $verify = json_decode($credo->verify($reference));