to test payment choose KNET from banks list (بنك اختبار كنيت [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"]
}
if you register after 4/9/2023 and want active KNET new policy set this active
$is_redirection_mode = true;
to return redirect page using this function
//$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"]);
}
get this information knet account
$tranportal_id;
$password;
$resource_key;
if you want test payment
$is_test = true;
$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");
** Must implement this functions
public function beforeValidate()
{
parent::beforeValidate();
//code here ....
return true;
}
public function afterValidate()
{
parent::afterValidate();
//code here ....
return true;
}
called before call knet url
public function beforeRequest()
{
parent::beforeRequest();
//code here ....
return true;
}
called after call 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",
]
]
[
"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",
]
###version 1.1.0
- active redirection mode for KNET new policy
###version 1.0.2
- fixed call array of string php version 8