Download the PHP package cinetpay-dev/cinetpay-php without Composer

On this page you can find all versions of the php package cinetpay-dev/cinetpay-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package cinetpay-php

CinetPay PHP SDK

SDK PHP officiel pour l'API REST CinetPay : paiements web, transferts et consultation du solde.

Prérequis

Installation

Démarrage rapide

Le SDK obtient et réutilise automatiquement le Bearer token. Il le renouvelle une seule fois lorsque l'API retourne EXPIRED_TOKEN ou INVALID_TOKEN.

Pour la production, utilisez CinetPay::production(...). Les URLs employées sont :

Comptes et pays

Les URL d'API sont communes à tous les pays. Le pays est déterminé par le compte marchand utilisé pour générer le Bearer token : un compte = un pays. Pour exploiter plusieurs pays, obtenez un couple api_key / api_password distinct pour chacun d'eux et créez une instance du SDK par compte.

Le SDK valide localement les invariants du compte avant tout appel réseau :

Pays Valeur Country Devise Indicatif
Côte d'Ivoire Country::IvoryCoast XOF +225
Burkina Faso Country::BurkinaFaso XOF +226
Mali Country::Mali XOF +223
Sénégal Country::Senegal XOF +221
Togo Country::Togo XOF +228
Guinée Country::Guinea GNF +224
Cameroun Country::Cameroon XAF +237
Bénin Country::Benin XOF +229
RD Congo Country::CongoKinshasa CDF +243
Niger Country::Niger XOF +227
Tchad Country::Chad XAF +235
Congo Country::CongoBrazzaville XAF +242
République centrafricaine Country::CentralAfricanRepublic XAF +236
Gabon Country::Gabon XAF +241
Guinée équatoriale Country::EquatorialGuinea XAF +240

La présence d'un pays dans l'énumération ne garantit pas qu'un opérateur soit déjà activé sur votre compte. La disponibilité des moyens de paiement et de transfert reste déterminée par la configuration CinetPay côté serveur.

Vérifier un paiement

Le statut peut être recherché avec le merchant_transaction_id ou le transaction_id renvoyé par CinetPay.

Effectuer et vérifier un transfert

Consulter le solde

Les montants de réponse sont exposés sous forme de chaînes afin de ne pas perdre de précision lors des calculs monétaires.

Webhooks : règle de sécurité

Un webhook est seulement un signal invitant votre backend à vérifier une transaction. Ne débloquez jamais une commande à partir du champ status reçu dans le webhook.

handlePayment() effectue automatiquement les opérations suivantes :

  1. Parse et valide notify_token, merchant_transaction_id et transaction_id.
  2. Compare le notify_token avec hash_equals().
  3. Ignore tout statut fourni dans le webhook.
  4. Interroge GET /v1/payment/{merchant_transaction_id}.
  5. Vérifie que l'identifiant de la réponse canonique correspond à la notification.

Pour un transfert, le fonctionnement est identique mais la confirmation utilise le transaction_id CinetPay :

La notification expose une clé d'idempotence fondée sur le transaction_id :

Répondez avec HTTP 200 en moins de 10 secondes. Dans une application web, exécutez handlePayment() ou handleTransfer() dans un job asynchrone, puis dédupliquez le traitement avec cette clé. Les propriétés raw et reportedUser représentent des données entrantes non fiables et ne doivent jamais servir à valider une transaction.

Erreurs

Les statuts métier retournés avec HTTP 200 (SUCCESS, PENDING, FAILED, INSUFFICIENT_BALANCE, etc.) ne lèvent pas d'exception. Ils restent accessibles sur l'objet de réponse.

Cache de jeton personnalisé

Par défaut, le jeton est conservé en mémoire pendant la vie de l'instance. Une application persistante peut fournir sa propre implémentation de CinetPay\Auth\TokenStore au constructeur ou aux factories sandbox / production.

Chaque opération du TokenStore reçoit une clé de cache opaque calculée par le SDK. Elle isole automatiquement le jeton par clé API, pays, environnement et URL. Une implémentation persistante doit impérativement utiliser cette clé :

Tests


All versions of cinetpay-php with dependencies

PHP Build Version
Package Version
Requires ext-json Version *
ext-mbstring Version *
php Version ^8.2
guzzlehttp/guzzle Version ^7.8
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package cinetpay-dev/cinetpay-php contains the following files

Loading the files please wait ...