alnazer / knet-payment
我们通过引入K-Net门户的全新附加组件,帮助您发展业务,并在更新后扩展您的客户群,通过Knet提供支付服务
1.2.0
2024-04-22 16:58 UTC
Requires
- php: ^5.6 || ^7.0 || ^8.0.0
This package is auto-updated.
Last update: 2024-09-22 17:47:12 UTC
README
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版本的字符串数组调用问题