forked from terrancy/PaySDK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSouGouSDK.php
49 lines (41 loc) · 1.62 KB
/
SouGouSDK.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
<?php
class SouGouSDK{
private $arrConfigSDK;
private $dirBaseSDK;
function __construct(){
$this->dirBaseSDK = dirname(__FILE__)."/SouGouSDK";
$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['secretApp'];
$signature = $this->getSignature($arrData,$keySecret,$ListUnset,$ListUrlEncode);
return strtolower(md5($signature));
}
function verifyPaySign($arrData){
$signature = $this->getPaySign($arrData,array('auth'),array());
return empty($arrData) ? false : strcmp($arrData['auth'],$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;
}
$signature = $strSignature."&".$keyCP;
}
return $signature;
}
}