forked from terrancy/PaySDK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKuGouSDK.php
50 lines (42 loc) · 1.65 KB
/
KuGouSDK.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
class KuGouSDK{
private $arrConfigSDK;
private $dirBaseSDK;
function __construct(){
$this->dirBaseSDK = dirname(__FILE__)."/KuGouSDK";
$this->getConfigInit();
}
function getConfigInit(){
$this->arrConfigSDK = require_once $this->dirBaseSDK."/config.inc.php";
}
function getPaySign($arrData,$ListUnset=array(),$ListUrlEncode=array()){
$arrConfigSDK = $this->arrConfigSDK;
$keySecret = $arrConfigSDK['keyPay'];
$signature = $this->getSignature($arrData,$keySecret,$ListUnset,$ListUrlEncode);
return strtolower(md5($signature));
}
function verifyPaySign($arrData){
$signature = $this->getPaySign($arrData,array('sign'),array());
return empty($arrData) ? false : strcmp($arrData['sign'],$signature) ? false : true;
}
function getSignature($arrData,$keyCP,$ListUnset=array(),$ListUrlEncode=array()){
$signature = "";
if(!empty($arrData) && is_array($arrData)){
$strSignature = "";
ksort($arrData);
if(!empty($ListUnset) && is_array($ListUnset)){
foreach($ListUnset as $valueUnset){
if(isset($arrData[$valueUnset])) unset($arrData[$valueUnset]);
}
}
foreach($arrData as $key => $value){
// $comma = empty($strSignature) ? "" : "&";
$value = isset($ListUrlEncode[$key]) ? base64_encode($value) : $value;
// $strSignature .= $comma.$key."=".$value;
$strSignature .= $value;
}
$signature = $strSignature.$keyCP;
}
return $signature;
}
}