ezeasorekene / credo-payments
This package is for communicating with credocentral.com and credodemo.com API
v1.1.0
2024-04-11 04:57 UTC
Requires
- curl/curl: ^2.5
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));