Download the PHP package chamikasamaraweera/payhere-php-sdk without Composer
On this page you can find all versions of the php package chamikasamaraweera/payhere-php-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package payhere-php-sdk
PayHere PHP SDK
A comprehensive PHP SDK for integrating PayHere Payment Gateway into your PHP applications.
Features
- ✅ Simple and intuitive API
- ✅ Secure hash generation and verification
- ✅ Support for both Sandbox and Live environments
- ✅ Payment notification handling
- ✅ PSR-4 autoloading
- ✅ Comprehensive error handling
- ✅ Well-documented code
Requirements
- PHP 7.4 or higher
- Composer
Installation
Install via Composer:
Or manually add to your composer.json:
Quick Start
1. Initialize the SDK
2. Create a Payment Request
3. Handle Payment Notifications
Create a notification handler endpoint (e.g., notify.php):
Configuration
Merchant Credentials
You need two credentials from your PayHere account:
- Merchant ID: Found in
Side Menu > Integrations - Merchant Secret: Generate by adding your domain/app in
Side Menu > Integrations
Sandbox vs Live
API Reference
PaymentRequest Methods
| Method | Description |
|---|---|
setOrderId(string $orderId) |
Set unique order ID |
setAmount(float $amount) |
Set payment amount |
setCurrency(string $currency) |
Set currency (default: LKR) |
setItems(string $name, int $number) |
Set item details |
setCustomer(...) |
Set customer information |
setReturnUrl(string $url) |
Set return URL after payment |
setCancelUrl(string $url) |
Set cancel URL |
setNotifyUrl(string $url) |
Set notification callback URL |
setCustomFields(string $custom1, ?string $custom2) |
Set custom fields |
getData() |
Get payment data array with hash |
generateForm(string $buttonText, array $attrs) |
Generate HTML form |
redirect() |
Auto-redirect to PayHere |
NotificationHandler Methods
| Method | Description |
|---|---|
verify() |
Verify notification hash |
isSuccess() |
Check if payment was successful |
getStatusCode() |
Get status code (2=success, 0=pending, -1=canceled, -2=failed) |
getStatusText() |
Get status as text |
getOrderId() |
Get order ID |
getPaymentId() |
Get PayHere payment ID |
getAmount() |
Get payment amount |
getCurrency() |
Get currency |
getCustom1() |
Get custom field 1 |
getCustom2() |
Get custom field 2 |
getCardHolderName() |
Get card holder name |
getCardNo() |
Get masked card number |
getMethod() |
Get payment method |
getData() |
Get all notification data |
get(string $key, $default) |
Get specific field |
Payment Status Codes
| Code | Constant | Description |
|---|---|---|
| 2 | STATUS_SUCCESS |
Payment successful |
| 0 | STATUS_PENDING |
Payment pending |
| -1 | STATUS_CANCELED |
Payment canceled |
| -2 | STATUS_FAILED |
Payment failed |
| -3 | STATUS_CHARGEDBACK |
Payment chargedback |
Complete Example
See the examples/ directory for complete working examples:
examples/checkout.php- Payment checkout pageexamples/notify.php- Payment notification handlerexamples/return.php- Return page handler
Security Best Practices
- Never expose your Merchant Secret in client-side code
- Always verify notifications using the
verify()method - Use HTTPS for all callback URLs
- Validate amounts in your notification handler
- Store payment records before redirecting to PayHere
- Use unique order IDs for each transaction
Testing
Use PayHere's sandbox environment for testing:
Test card details are available in PayHere's documentation.
Documentation
- 📖 Quick Start Guide
- 📘 Detailed Usage Guide
- 🔐 Security Best Practices
- 📋 Project Structure
- 📝 Changelog
Support
Author
Chamika Samaraweera
- Email: [email protected]
- GitHub: @ChamikaSamaraweera
License
MIT License - see the LICENSE file for details
Contributing
Contributions are welcome! Please read our Contributing Guide for details on how to submit pull requests.
Acknowledgments
- PayHere for providing the payment gateway service
- All contributors who help improve this SDK