alnazer/knet-payment

我们通过引入K-Net门户的全新附加组件,帮助您发展业务,并在更新后扩展您的客户群,通过Knet提供支付服务

1.2.0 2024-04-22 16:58 UTC

This package is auto-updated.

Last update: 2024-09-22 17:47:12 UTC


README

Latest Stable Version Total Downloads Build Status License

knet-payment

要测试支付,请在银行列表中选择KNET(测试银行 [KNET1])

Card Number : 8888880000000001

for Captured 
Expiry Date : 09/25

for Not Captured
Expiry Date : Any

CVC : Any 4 digit

安装

composer require alnazer/knet-payment

用法

use Alnazer\KnetPayment\Knet;

$config = [
    "tranportal_id"=>"",
    "password"=>"",
    "resource_key"=>"",
    "response_url" => "https://yourdomain.com/result.php",
    "error_url" => "https://yourdomain.com/error.php",
    "amount"=> 1,
    "udf1"=> "",
    "udf2"=> "",
    "udf3"=> "",
    "udf4"=> "",
    "udf5"=> "",
];

$knet  = new Knet($config);

// **************  request from knet *************//
$request = $knet->request();

if($request["status"] == 1)
{
    // redirect to knet payment page using $request["data"]["url"];
}
else
{
    // display errors print_r($request["errors"]);
}

// ************** back from knet  *************//

$resutl = $knet->responce();

if($resutl["status"] == "success"){
    // get reult and update your database
}
else
{
    // print error $resutl["ErrorText"]
}

对于在2023年4月9日之后注册的用户

如果您在2023年4月9日之后注册并希望激活KNET新政策,请设置此激活

$is_redirection_mode = true;

要返回重定向页面,请使用此功能

//$redirect_url the link will redirect (your order page or confiremed payment)
//$payment_id : payment id return from KNET
print_redirect($redirect_url,$payment_id);
// ************** back from knet  *************//

$resutl = $knet->responce();

if($resutl["status"] == "success"){
  // get reult and update your database
  echo $knet->print_redirect("The page url will redirect to it",$resutl["paymentid"]);
}
else
{

  // get reult and update your database
  echo $knet->print_redirect("The error page url will redirect to it",$resutl["paymentid"]);
}

需要信息

从knet账户获取此信息

$tranportal_id;
$password;
$resource_key;

如果您想测试支付

$is_test = true;

返回URL

$response_url; // url bank will return after payment operation success
$error_url;// url bank will return if faveing error in payment operation

使用函数调用请求

$this->request()

使用函数调用结果

$this->responce()

验证

$this->validate();

添加错误

$this->addError("index_name","message");

事件

**必须实现以下功能

在验证之前

public function beforeValidate()
{
    parent::beforeValidate();

    //code here ....

    return true;
}

在验证之后

public function afterValidate()
{
    parent::afterValidate();

    //code here ....

    return true;
}

在请求之前

在调用knet URL之前调用

public function beforeRequest()
{
    parent::beforeRequest();

    //code here ....

    return true;
}

请求后调用

在调用knet URL之后调用

public function afterRequest($trackid, $pay_url)
{
    parent::afterRequest($trackid, $pay_url);

    //code here ....

    return true;
}

在响应之前

public function beforeResponce()
{
    parent::beforeResponce();

    //code here ....

    return true;
}

在响应之后

public function afterResponce($payment_id, $trackid, $result)
{
    parent::afterResponce($payment_id, $trackid, $result);

    //code here ....

    return true;
}

结果

请求返回

成功

[
"status" => 1,
  "data"=>
    [
      "url"=>"https://knetpayment.com",
      "trackid"=>"23492375295"
    ],
  "errors"=>false
]

错误

[
"status" => 0,
  "data"=>
    [
      "url"=>"",
      "trackid"=>"23492375295"
    ],
  "errors"=>
    [
      "index_error" = > "error message",
      "index_error2" = > "error message2",
    ]
]

响应返回 "result" 信息

成功

[
  "status" => "success",
  "paymentid" => "2423sdfsd723482582",
  "trackid" => "3424234234",
  "tranid" => "4234234234234",
  "ref" => "3523235252",
  "result" => "CAPTURED", //knet result CAPTURED,NOT CAPTURED,CANCELED ... ect
  "postdate" => "3234234",
  "auth" => "44445",
  "avr" => "4566",
  "amount" => "1.000",
  "udf1" => "", // you set this data in request function
  "udf2" => "",// you set this data in request function
  "udf3" => "",// you set this data in request function
  "udf4" => "",// you set this data in request function
  "udf5" => "",// you set this data in request function
  "data" => "", // all $_REQUEST data
  "ErrorText" => "",
  "Error" => "",
]

错误

[
  "status" => "error",
  "paymentid" => "2423sdfsd723482582",
  "trackid" => "3424234234",
  "tranid" => "4234234234234",
  "ref" => "3523235252",
  "result" => "error",
  "postdate" => "3234234",
  "auth" => "44445",
  "avr" => "4566",
  "amount" => "1.000",
  "udf1" => "", // you set this data in request function
  "udf2" => "",// you set this data in request function
  "udf3" => "",// you set this data in request function
  "udf4" => "",// you set this data in request function
  "udf5" => "",// you set this data in request function
  "ErrorText" => "get from knet responce",
  "Error" => "get from knet responce",
]

变更日志

###版本 1.1.0

  • 激活KNET新政策的重定向模式

###版本 1.0.2

  • 修复了PHP 8版本的字符串数组调用问题