tcgunel/omnipay-ahlpay
Composer 安装命令:
composer require tcgunel/omnipay-ahlpay
包简介
Omnipay extension for Ahlpay
README 文档
README
Ahlpay sanal pos gateway for the Omnipay PHP payment processing library
Omnipay is a framework agnostic, multi-gateway payment processing library for PHP. This package implements Ahlpay support for Omnipay.
Ahlpay is a payment institution that uses a JSON-based API with token authentication.
Installation
composer require tcgunel/omnipay-ahlpay
Available Methods
| Method | Description |
|---|---|
purchase() |
Direct (non-3D) sale or 3D Secure redirect |
completePurchase() |
Query payment status after 3D callback |
void() |
Cancel/void a transaction |
refund() |
Refund a transaction (full or partial) |
Authentication
Ahlpay requires a two-step authentication process:
- Obtain a token by calling the Ahlpay authentication API with your email/password
- Use the token in subsequent payment requests
The token must be obtained outside of this gateway (e.g., via a separate HTTP call to /api/Security/AuthenticationMerchant) and passed to the gateway as a parameter.
Usage
Gateway Initialization
use Omnipay\Omnipay; $gateway = Omnipay::create('Ahlpay'); $gateway->setMerchantId('100'); // Your member ID $gateway->setMerchantUser('user@email'); // Login email $gateway->setMerchantPassword('pass'); // Login password $gateway->setMerchantStorekey('key'); // Store key for hash $gateway->setToken('jwt-token'); // Auth token (obtained separately) $gateway->setTokenType('Bearer'); // Token type $gateway->setAhlpayMerchantId(5001); // Ahlpay merchant ID (from token response) $gateway->setTestMode(true);
Non-3D Purchase (Direct Sale)
$response = $gateway->purchase([ 'amount' => '100.00', 'currency' => 'TRY', 'transactionId' => 'ORDER-12345', 'secure' => false, 'card' => [ 'number' => '4508034508034509', 'expiryMonth' => '12', 'expiryYear' => '2030', 'cvv' => '000', ], ])->send(); if ($response->isSuccessful()) { echo 'Transaction ID: ' . $response->getTransactionReference(); } else { echo 'Error: ' . $response->getMessage(); }
3D Secure Purchase
$response = $gateway->purchase([ 'amount' => '100.00', 'currency' => 'TRY', 'transactionId' => 'ORDER-12345', 'secure' => true, 'returnUrl' => 'https://yoursite.com/payment/success', 'cancelUrl' => 'https://yoursite.com/payment/fail', 'card' => [ 'number' => '4508034508034509', 'expiryMonth' => '12', 'expiryYear' => '2030', 'cvv' => '000', ], ])->send(); if ($response->isRedirect()) { // Ahlpay returns HTML content for 3D redirect echo $response->getRedirectHtml(); }
Complete 3D Secure Purchase (Callback Handler)
After the bank posts back to your returnUrl, query the payment status:
$response = $gateway->completePurchase([ 'transactionId' => $_POST['orderId'], 'rnd' => $_POST['rnd'], // optional ])->send(); if ($response->isSuccessful()) { echo 'Payment confirmed! Transaction: ' . $response->getTransactionReference(); } else { echo 'Payment failed: ' . $response->getMessage(); }
Void (Cancel)
$response = $gateway->void([ 'orderNumber' => 'ORDER-12345', 'currency' => 'TRY', ])->send(); if ($response->isSuccessful()) { echo 'Transaction voided.'; } else { echo 'Error: ' . $response->getMessage(); }
Refund
$response = $gateway->refund([ 'orderNumber' => 'ORDER-12345', 'amount' => '50.00', 'currency' => 'TRY', ])->send(); if ($response->isSuccessful()) { echo 'Refund processed.'; } else { echo 'Error: ' . $response->getMessage(); }
Hash Algorithm
SHA512(StoreKey + Rnd + OrderId + TotalAmount + MerchantId)
The hash uses UTF-16LE encoding before SHA512, and the result is uppercase hex.
Endpoints
| Environment | Base URL |
|---|---|
| Test | https://testahlsanalpos.ahlpay.com.tr |
| Production | https://ahlsanalpos.ahlpay.com.tr |
API Paths
| Operation | Path |
|---|---|
| Non-3D Payment | /api/Payment/PaymentNon3D |
| 3D Payment | /api/Payment/Payment3DWithEventRedirect |
| Payment Inquiry | /api/Payment/PaymentInquiry |
| Void | /api/Payment/Void |
| Refund | /api/Payment/Refund |
| Authentication | /api/Security/AuthenticationMerchant |
Running Tests
composer test
Static Analysis
composer analyse
Code Style
composer lint
License
MIT License. See LICENSE for details.
tcgunel/omnipay-ahlpay 适用场景与选型建议
tcgunel/omnipay-ahlpay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 03 月 23 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「payment」 「gateway」 「omnipay」 「3d secure」 「sanal pos」 「ahlpay」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 tcgunel/omnipay-ahlpay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tcgunel/omnipay-ahlpay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 tcgunel/omnipay-ahlpay 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
repository php library
Payyo Gateway for the Omnipay payment processing library
Yandex.Kassa driver for Omnipay payment processing library
Some pre-defined rules for validation in Omnipay payment processing library.
BluePay gateway for the Omnipay payment processing library
Client library to send SMS using Comilio SMS Gateway API (https://www.comilio.it)
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-23