fadion / bkt
BKT阿尔巴尼亚在线支付系统的助手。
Requires
- php: >=5.4.0
This package is auto-updated.
Last update: 2024-09-21 20:54:00 UTC
README
这是一个简单的类,用于简化请求授权数据和响应验证的数据生成。BKT的eCommerce服务与其他服务不同,易于实现。然而,它的主要问题是如何生成用于授权订单的hash以及如何验证其响应,这部分在手册中未明确说明。使用此包,您只需填写一些参数。
安装
类可以手动使用或通过composer
。后一种方法更受推荐,并且每个PHP开发者都应该已经将其纳入其工作流程。
Composer
可以在您的脚本或框架(Laravel、Symfony等)中使用Composer,并且无论在哪种情况下,包都按相同的方式工作。唯一的区别是,在框架中,自动加载过程会自动为您执行,因此您不需要跟踪最后一步。
最初,请将包包含在composer.json
中
"require" : { "fadion/bkt": "dev-master" }
在终端中执行以下命令进行安装
$ composer install
包含Composer的autoload
require 'vendor/autoload.php';
手动
只需在需要的地方包含类即可。它们的放置位置可能不是最低的,因为这取决于您的设置。
require 'bkt/src/Authenticate.php'; require 'bkt/src/Notify.php';
授权
授权阶段是您生成订单数据和将其发送到BKT服务器的阶段。买家将被重定向到支付表单,因此确保数据正确至关重要。特别是,如上所述,hash的生成未文档化,并且没有安全保障可能会给您带来麻烦。
每个BKT电子商务账户都获得clientid
和storekey
,这些唯一数据分别作为公钥和私钥使用。在以下示例中,我将使用示例数据,您通常需要自行替换。
数据设置
use Fadion\BKT\Authenticate; $auth = new Authenticate([ 'orderid' => '12345', 'clientid' => 'ABC123', 'okUrl' => 'http://www.dyqanijuaj.com/sukses', 'failUrl' => 'http://www.dyqanijuaj.com/problem', 'storekey' => 'DEF456', 'amount' => 1500 ]);
一些标准数据已预先设置,通常不需要您修改。上面显示的数据属于您的商店或当前订单,并在每次授权时都需要设置。
除了将数据作为列表传递之外,还可以通过方法传递
$auth = new Authenticate(); $auth->setOrderId('ABC123'); $auth->setClientId('12345'); $auth->setOkUrl('http://www.dyqanijuaj.com/sukses'); $auth->setFailUrl('http://www.dyqanijuaj.com/problem'); $auth->setStoreKey('DEF456'); $auth->setAmount(1500);
货币自动设置为LEK(代码008)。要更改它,您有两种方法
将其作为列表中的键传递
$auth = new Authenticate([ // të dhënat e tjera 'currency' => '840' ]);
或通过专用方法
$auth = new Authenticate(); $auth->setCurrency('840');
货币代码难以记住,因此您可以使用常量来表示三个典型值
$auth->setCurrency(Authenticate::CURRENCY_LEK); $auth->setCurrency(Authenticate::CURRENCY_EUR); $auth->setCurrency(Authenticate::CURRENCY_USD);
生成Hash
到目前为止传递到授权对象的所有数据都有助于一个目的:生成hash。生成的此代码被发送到BKT服务器,该服务器处理并验证请求。
$auth->generate();
上面的方法足以生成hash并将其放入数据列表中。
创建请求
BKT服务器期望请求是POST,最简单的方法是通过表单发送。表单字段在手册中有很好的说明,这里不再赘述。您感兴趣的是如何在表单中使用这些数据。
我们已生成hash,它填充了数据列表。这个列表可以通过类的实例直接访问,字段名称与手册中完全相同。
<?php $auth = new Authenticate([/* lista e te dhenave */]); $auth->generate(); ?> <form method="post" action="http://serveri.i.bkt"> <input type="hidden" name="clientid" value="<?= $auth['clientid']; ?>"> <input type="hidden" name="amount" value="<?= $auth['amount']; ?>"> <input type="hidden" name="hash" value="<?= $auth['hash']; ?>"> <!-- pjesa tjeter e fushave --> </form>
为了使工作更轻松,还有一个方法可以生成所有数据的HTML输入。您需要自己添加地址、公司、电话等部分。
echo $auth->inputs();
通知
响应阶段是最后一步,用于通知支付是否成功。后台发生的是将服务器返回的哈希值与本地哈希值进行比对,以验证响应的有效性。Notify
类正是执行这一过程,只通过2行代码即可显示是否一切顺利。
类需要两个参数:POST数据以及storekey
(私钥)来验证响应。
use Fadion\BKT\Notify; $notify = new Notify($_POST, 'DEF456'); if ($notify->success()) { // porosi e suksesshme } // ose if ($notify->error()) { // porosi me probleme }
责任
我和这个包都与BKT无关。包的目的是帮助您集成银行的电子商务系统,但作为其作者,我对可能引起的问题不承担任何责任。您可以自由使用和修改,使其更适合您的需求。