-
Notifications
You must be signed in to change notification settings - Fork 13
Validation Confirmation URLs
Whenever M-Pesa receives a transaction on your shortcode, a validation request is sent to the validation URL registered above. M-Pesa completes or cancels the transaction depending on the validation response it receives.
These URLs must be HTTPS in production. Validation is an optional feature that needs to be activated on M-Pesa, the owner of the shortcode needs to make this request for activation. This can be done by sending an email to [email protected], or through a chat on the developer portal.
Simply call the register
method of the C2B
class, optionally passing a callback function to process the response from M-PESA. If no callback URL is supplied, the method will return an array of the response from M-PESA.
You can pass an optional second parameter for the response type. This defaults to Completed
C2B::register();
or
C2B::register(function ($response){
// Do something with $response, like echo $response['ResponseDescription']
});
When a user pays via M-Pesa, and validation is enabled for your shortcode, M-Pesa sends a request to your validation endpoint. The transaction data is sent with this request, and you can use the validate
method of the C2B
class to check the validity of this information, then return true. The method allows you to pass a callback function to process the data received.
C2B::validate();
or
C2B::validate(function ($response){
// Process $response
$TransactionType = $response['TransactionType'];
$TransID = $response['TransID'];
$TransTime = $response['TransTime'];
$TransAmount = $response['TransAmount'];
$BusinessShortCode = $response['BusinessShortCode'];
$BillRefNumber = $response['BillRefNumber'];
$InvoiceNumber = $response['InvoiceNumber'];
$OrgAccountBalance = $response['OrgAccountBalance'];
$ThirdPartyTransID = $response['ThirdPartyTransID'];
$MSISDN = $response['MSISDN'];
$FirstName = $response['FirstName'];
$MiddleName = $response['MiddleName'];
$LastName = $response['LastName'];
return true;
});
If you return a success response at the validation endpoint. a confirmation request of the transaction is sent by M-Pesa to the confirmation URL. The transaction data is sent with this request, and you can use the confirm
method of the C2B
class to save this information, then return true. The method allows you to pass a callback function to process the data received.
C2B::confirm();
or
C2B::confirm(function ($response){
// Process $response
$TransactionType = $response['TransactionType'];
$TransID = $response['TransID'];
$TransTime = $response['TransTime'];
$TransAmount = $response['TransAmount'];
$BusinessShortCode = $response['BusinessShortCode'];
$BillRefNumber = $response['BillRefNumber'];
$InvoiceNumber = $response['InvoiceNumber'];
$OrgAccountBalance = $response['OrgAccountBalance'];
$ThirdPartyTransID = $response['ThirdPartyTransID'];
$MSISDN = $response['MSISDN'];
$FirstName = $response['FirstName'];
$MiddleName = $response['MiddleName'];
$LastName = $response['LastName'];
return true;
});
© Osen Concepts Kenya 2020