masoodrehman / php-payment-gateway-hbl
HBL(Habib Bank Limited)支付网关。
此包的规范仓库似乎已丢失,因此该包已被冻结。
v1.0
2021-02-23 10:34 UTC
Requires
- ext-curl: ^7.2
- ext-json: *
- ext-openssl: *
README
此客户端库提供访问巴基斯坦HBL(Habib Bank Limited)支付网关网络服务接口的能力。
要使用此客户端,您必须首先从HBL获取对Web服务接口的个人访问权限。
需求
- PHP 5.4或更高版本 (已测试 5.4 -> 7.2)
- 激活CURL、JSON和OpenSSL扩展
- HBL的认证详情
安装
首选的安装方法是使用Composer。运行以下命令安装包并将它添加到您项目的composer.json需求中
composer require masoodrehman/php-payment-gateway-hbl
示例
创建一个HBL客户端
$hblPay = new Client([ "env" => Constant::ENV_SANDBOX, "authentication" => new AuthenticationFields([ "USER_ID" => "user-id", "PASSWORD" => "password", "CHANNEL" => "channel-name", "RETURN_URL" => "https://:8001/example/success.php", // replace with your own "CANCEL_URL" => "https://:8001/example/fail.php" // replace with your own ]) ]);
带有请求负载中所需最小参数的基本示例。
use HBLPay\Client; use HBLPay\Common\Constant; use HBLPay\Model\AdditionalData; use HBLPay\Model\AuthenticationFields; use HBLPay\Model\CheckoutReq; use HBLPay\Model\Item; use HBLPay\Model\Order; use HBLPay\Model\ShippingDetail; try { // Request construction. Given the minimum required data. $checkoutReq = new CheckoutReq([ "ORDER" => new Order([ "DISCOUNT_ON_TOTAL" => 0, // Required - (In doc mentioned Optional) "SUBTOTAL" => 100, // Required "OrderSummaryDescription" => [ new Item([ "ITEM_NAME" => "item name", "CATEGORY" => "category name", "SUB_CATEGORY" => "item sub category name", "UNIT_PRICE" => 100, "QUANTITY" => 1 ]) ] // Required ]), "SHIPPING_DETAIL" => new ShippingDetail([ "NAME" => "NULL", // Required ]), "ADDITIONAL_DATA" => new AdditionalData([ "REFERENCE_NUMBER" => sprintf("INVOICE%s", time()), // Required "CUSTOMER_ID" => "1", // Required - (Does not mentioned in document) "CURRENCY" => "PKR", // Required "BILL_TO_FORENAME" => "First name", // Required "BILL_TO_SURNAME" => "Last name", // Required "BILL_TO_EMAIL" => "youremail@gmail.com", // Required "BILL_TO_PHONE" => "+921112222222", // Required "BILL_TO_ADDRESS_LINE" => "Street address", // Required "BILL_TO_ADDRESS_CITY" => "City", // Required "BILL_TO_ADDRESS_STATE" => "State", // Required "BILL_TO_ADDRESS_COUNTRY" => "PK", // Required "BILL_TO_ADDRESS_POSTAL_CODE" => "00000", // Required ]) ]); // Call service $hblPay->getSessionAndRedirectToPortal($checkoutReq); } catch (Exception $e) { echo $e->getMessage(); }
API摘要
方法 | 描述 |
---|---|
getSessionId(CheckoutReq $checkoutReq) | 从HBL获取会话ID |
redirectToPortal(string $sessionId) | 以会话ID作为参数,重定向到HBL门户 |
getSessionAndRedirectToPortal(CheckoutReq $checkoutReq) | 此方法在单个请求中完成两项工作,从HBL获取会话并重定向到HBL门户进行支付。 |
公钥
HBL需要4096位RSA密钥,他们使用该密钥进行数据加密,以确保网络层上请求负载的安全性。您可以生成自己的密钥,并使用以下名称添加到证书目录中。
- hbl-public.pem (HBL公钥)
- pub.pem (与HBL共享的您的公钥)
- key.pem (您的私钥)
测试卡
VISA (Non 3D card)
Card #: 4000000000000101
CVV: 111
Expiry: 12/2020
VISA (3D card)
Card #: 4000000000000002
CVV: 111
Expiry: 12/2020
Test Password: 1234
---------------------------------------
MASTER (Non 3D card)
Card #: 5200000000000114
CVV: 111
Expiry: 12/2020
MASTER (3D card)
Card #: 5200000000000007
CVV: 111
Expiry: 12/2020
Test Password: 1234
更多详细信息,请查看官方文档此处。
注意:官方文档可能不是最新的,存在一些不一致之处。