Intégration complète Api
Cette methode d'intégration du paiement consiste a intégrer toutes les routes api à fin de faire le processus de paiment de bout en bout dans votre application.
Lien Swagger de nos api : https://api-pay.gobiworld.com/swagger/
Voici les étapes à suivre pour cette intégration:
Dans votre dashboard, vous avez les clés publiques et privées de votre boutique. La clé public est utilisée pour création d'une commande.
- Create order :
Création de la commande
La route api appelée permet de créer une commande liée à une boutique. Elle nécessite la clé public propre à la boutique qui doit être renseignée dans le header de la requête. La clé à renseigner dependend du mode test ou live.
//Exemple
[
'X-STORE-PUBLIC-KEY' => 'store-public-key'
]
Route :
/gobipay/orders/
Method : POST
Body :
body de la requête
{
"description": "string",
"total": 0,
"order_type": "string",
"customer_fullname": "string",
"customer_email": "user@example.com",
"notified_for_partial_payment": true,
"items": {},
"success_redirect_url": "string",
"failed_redirect_url": 'string",
"cancel_redirection_url": "string",
"minimum_payment_amount ": "string"
}
$request = array(
'method' => 'POST',
'body' => json_encode(
array(
'total' => '',
'description' => '',
'currency' => '',
'customer_email' =>'' ,
'customer_fullname' => '',
'notified_for_partial_payment' => false,
'order_type' => 'global',
'items' => []
),
),
'timeout' => '2500',
'headers' => array(
'Content-Type' => 'application/json',
'X-STORE-PUBLIC-KEY' => '',
'X-STORE-SECRET-KEY' => ''
),
);
Attribut | Type | Description | Default value / Ex | Required |
---|---|---|---|---|
items | Array | Objet contenant les éléments de la commande du client. Vous avez le choix libre de rensigner les données que vous souhaitez dans l'objet items | {} / (Ex: [{ price: '250', quantity: '2',name: 'produit' }] ) | No |
notified_for_partial_payment | Boolean | Indique s'il s'agit d'un paiement partiel ou non pour la commande | false | No |
order_type | String | Mettez 'item' si vous renseignez l'attribut items et 'global' si vous ne le renseignez pas. | global | No |
customer_fullname | String | Nom et prénom du client | Ex : John Doe | No |
customer_email | String | Email du client | Ex: johndoe@gmail.com | No |
total | Number | Montant total de la commande | Yes | |
success_redirect_url | String | Votre URL de redirection en cas d'un paiement effectué avec succès | No | |
failed_redirect_url | String | Votre URL de redirection en cas d'un paiement échoué | No | |
cancel_redirection_url | String | Votre URL de redirection en cas d'un paiement abandonné | No |
Response:
Retour Api
{
"description": null,
"currency": "XOF",
"mode": "test",
"uuid": "764ade76-9d36-484d-9293-e16ce259ad51",
"status": 0,
"total_paid_by_client": 0,
"customer_amount_due": 47800,
"total_paid_to_merchand": null,
"tax_type": "global",
"is_partially_paid": false,
"nb_partial_payments": 0,
"customer_fullname": null,
"customer_email": null,
"store_slug": "st_411576036609",
}
- Authorize platforms
Plateformes de la boutique
Cette route permet de recuprer la liste des plateformes de paiement qui sont autorisées par le propriétaire de la boutique. Cette route a besoin des clés api
de la boutique. Les clés à renseigner dependent du mode test ou live Passer dans le header de la requête la clé pulbique de la boutique.
[ 'X-STORE-PUBLIC-KEY' => 'store-public-key' ]
Method : GET
Route :
/gobipay/orders/get_store_authorized_plateforms/{store_slug}/
Response Api Authorize Platforms
- STEP 1 : Init
Initialisation du paiement
Cette route api permet d'initialiser le paiement du client. Elle préccède trois étapes qui permet de finaliser un paiement. Elle retourne des informations utiles dont le slug de la transaction
qui sera utilise dans le reste du processus de paiement.
Method : POST
Route :
/gobipay/payment/init-transaction/
Body :
Objet de la requête
{
"from_plateform_money": "string",
"amount": 0,
"extra_infos": {
"customer_fullname": "string",
"customer_email": "user@example.com",
"order_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"merchant_type": "string"
}
}
Attribut | Info | Default value / Exemple | Required |
---|---|---|---|
from_plateform_money | La plateforme de paiement de la boutique selectionnée par le client | Yes | |
amount | Le montant de la commande | Yes | |
extra_infos | Objet contenant les informations retlatives au client et à la boutique. customer_fullname et customer_email sont optionnels | {} / (Ex: [{ customer_fullname: 'Jonh Doe', customer_email: 'jonhdoe@gmail.com',order_uuid: 'fa85f64-5717-4562-b3fc-2c963f66afa6' }] ) | No |
merchant_type | Le type d'opération marchant effectué | collection | No |
Response :
Api Response
{
"exchange_transaction": {
"conversion_details": {
"code_promo": null,
"devise": {
"from": "XOF",
"to": "XOF"
},
"fees": {
"from": {
"network_fees": 0,
"network_fees_detailled": {
"deposit": 0,
"withdraw": 0
},
"transaction_fees": 0
},
"to": {
"network_fees": 0,
"network_fees_detailled": {
"deposit": 0,
"withdraw": 0
},
"transaction_fees": 0
}
},
"from_amount": 3335,
"from_amount_with_fees": 3335,
"tauxFromTo": 1.000166795675,
"to_amount": 3332,
"to_amount_with_fees": 3332
},
"created_at": "1725554141.0787604",
"exchange_transactions_data": [],
"from_amount": 3335,
"from_amount_usd": 5.645213402819957,
"from_amount_with_fees": 3335,
"from_plateform_money": {
"devise": {
"name": "XOF"
},
"identifier": "MTN_BEN_XOF"
},
"from_plateform_money_id": 225,
"invoice": null,
"network_fees_usd": 0,
"recipient_status": "recipient.empty",
"service": "service.pay",
"slug": "tr_592493300002933",
"status": 0,
"status_name": "pending",
"tag": "tag.exchange",
"timestamps": "1725554141.0705504",
"to_amount": 3332,
"to_amount_usd": 5.640135249833913,
"to_amount_with_fees": 3332,
"to_plateform_money": {
"devise": {
"name": "XOF"
},
"identifier": "MY_GOBI_XOF"
},
"to_plateform_money_id": 68,
"transaction_fees_usd": 0,
"txID": null,
"update_at": "1725554143.6087124",
"user_id": null
},
"from_plateform_money": {
"business_fees": {
"cagnotte": {
"MY_GOBI_XOF": {
"devise": "XOF",
"fixe": 0,
"percent": 1.5
},
"default": {
"devise": "USD",
"fixe": 0,
"percent": 1.5
}
},
"exchange": {
"MOOV_BEN_XOF": {
"devise": "XOF",
"fixe": 75,
"percent": 0.25
},
"MTN_BEN_XOF": {
"devise": "XOF",
"fixe": 50,
"percent": 0.05
},
"default": {
"devise": "USD",
"fixe": 0.18,
"percent": 1
}
},
"pay": {
"default": {
"devise": "USD",
"fixe": 0,
"percent": 1.5
}
},
"pay_me": {
"default": {
"devise": "USD",
"fixe": 0,
"percent": 1.5
}
}
},
"country_from": [
"BJ"
],
"country_infos": {
"indicative": "BJ",
"indicative_tel": "+229"
},
"country_to": [
"BJ"
],
"description": "Mtn Bénin Mobile Money",
"devise": {
"name": "XOF"
},
"display_from": "MTN BEN",
"display_to": "MTN BEN",
"id": 225,
"identifier": "MTN_BEN_XOF",
"logo": "https://go-pub.s3.eu-west-3.amazonaws.com/gobichange/assets/mobile/MTN.png",
"name": "MTN_BEN_XOF",
"network": "MTN",
"plateform": {
"name": "GOBIMM",
"type_system": {
"name": "MOBILE_MONEY"
}
}
},
"local": true,
"payload": {
"fields": {
"from_amount": 3335,
"full_ussd_code": "*880*41*185082*3335#,motif,PIN",
"gobi_mm_devise_code": "185082",
"gobi_mm_slug": 1157,
"motif": "1",
"ussd_code": "*880*41*185082*3335#"
},
"local_api": null,
"method": null,
"url": null
},
"redirect": false
}
{}
{}
{}
- STEP 2: Payin
Payin
Cette route est la deuxième étape dans le processus de paiement.
identifier
: est le slug de la translation. Il est retourné par l'api à l'étape 1
Method : POST
Route :
/gobipay/payment/{identifier}/pay/
Payin
Body :
{}
{}
{}
{}
- STEP 3 : Chek
Check
Cette route est la troisième étape dans le processus de paiement.
identifier
: est le slug de la translation. Il est retourné par l'api à l'étape 1
Method : POST
Route :
/gobipay/payment/{identifier}/check-transaction/
Body :
Request body
{}
{}
{}
{}
- Verify Transaction status
Vérification transaction
Obtenez les détails de la transaction avec cette route. Elle prend en paramètre le slug de la transaction. Cette dernière est retoutnée par l'api à l'étape 1.
identifier
: est le slug de la translation. Il est retourné par l'api à l'étape 1
Method : GET
Route :
/gobipay/payment/{identifier}/transaction-details/