PHP code example of xfix / xfix-pay
1. Go to this page and download the library: Download xfix/xfix-pay library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
xfix / xfix-pay example snippets
use Xfix\XfixPay\XfixPayClient;
$client = new XfixPayClient([
'environment' => 'sandbox', // sandbox or live
'timeout' => 30,
]);
$mpesa = $client->mpesa([
'consumer_key' => 'your_consumer_key',
'consumer_secret' => 'your_consumer_secret',
'passkey' => 'your_passkey',
'shortcode' => '174379',
'initiator' => 'apitest',
'initiator_password' => 'your_initiator_password',
'environment' => 'sandbox',
'cert_path' => '/path/to/safaricom.cer',
]);
$mpesa->setCertificatePath('/path/to/safaricom.cer');
$response = $mpesa->requestSTKPush(
phoneNumber: '254722336262',
amount: 1.00,
accountReference: 'INV-001',
transactionDesc: 'Payment',
callbackUrl: 'https://your-server.com/mpesa/callback'
);
$checkoutRequestId = $response['CheckoutRequestID'];
$status = $mpesa->querySTKStatus($checkoutRequestId);
if ($status['ResultCode'] === '0') {
// Payment successful
}
$mpesa->registerC2BUrls(
confirmationUrl: 'https://your-server.com/mpesa/confirm',
validationUrl: 'https://your-server.com/mpesa/validate',
responseType: 'Completed'
);
'Completed'
'Canceled'
$response = $mpesa->sendB2C(
phoneNumber: '254722336262',
amount: 100.00,
command: 'SalaryPayment',
remarks: 'Salary for July',
occasion: 'Monthly salary'
);
'SalaryPayment'
'BusinessPayment'
'PromotionPayment'
$balance = $mpesa->balanceInquiry(
partyA: null,
identifierType: '4'
);
$reversal = $mpesa->reversal(
transactionId: 'LKXXXX1234',
amount: 100.00,
remarks: 'Reversal due to error'
);
$mpesa->setCertificatePath('/path/to/safaricom.cer');
use Xfix\XfixPay\Exception\MpesaException;
try {
$response = $mpesa->requestSTKPush(
phoneNumber: '254722336262',
amount: 1.00,
accountReference: 'INV-001',
transactionDesc: 'Payment',
callbackUrl: 'https://your-server.com/mpesa/callback'
);
} catch (MpesaException $e) {
// Log the exception and handle the failure gracefully.
}
$client = new XfixPayClient([
'environment' => 'sandbox',
]);
$mpesa = $client->mpesa($mpesaConfig);
$paypal = $client->paypal($paypalConfig);
$stripe = $client->stripe($stripeConfig);
$bank = $client->bank($bankConfig);
'cert_path' => getenv('MPESA_CERT_PATH'),
text
xfixpay/
├── composer.json
├── README.md
├── LICENSE
├── .gitignore
│
├── src/
│ ├── XfixPayClient.php
│ ├── GatewayInterface.php
│ ├── AbstractGateway.php
│ │
│ ├── Exception/
│ │ ├── XfixPayException.php
│ │ ├── MpesaException.php
│ │ ├── PayPalException.php
│ │ ├── BankException.php
│ │ ├── StripeException.php
│ │
│ ├── Mpesa/
│ │ ├── MpesaGateway.php
│ │ ├── MpesaConfig.php
│ │ └── MpesaAuth.php
│ │
│ ├── PayPal/
│ │ ├── PayPalGateway.php
│ │ ├── PayPalConfig.php
│ │ └── PayPalAuth.php
│ │
│ ├── Bank/
│ │ ├── BankGateway.php
│ │ └── BankConfig.php
│ │
│ ├── Stripe/
│ │ └── ...
│
├── tests/
│ ├── Unit/
│ │ ├── MpesaGatewayTest.php
│ │ ├── MpesaAuthTest.php
│ │ └── XfixPayClientTest.php
│ └── Integration/
│ └── MpesaLiveTest.php
│
├── examples/
│ ├── mpesa_stk_push.php
│ ├── mpesa_b2c.php
│ ├── mpesa_balance.php
│ └── mpesa_reversal.php
│
└── docs/
├── mpesa.md
└── contributing.md