masoodrehman / php-payment-gateway-hbl

HBL(Habib Bank Limited)支付网关。

此包的规范仓库似乎已丢失,因此该包已被冻结。

v1.0 2021-02-23 10:34 UTC

This package is auto-updated.

Last update: 2023-11-12 10:31:57 UTC


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

更多详细信息,请查看官方文档此处

注意:官方文档可能不是最新的,存在一些不一致之处。