forked from terrancy/PaySDK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMagicalMirrorSDK.php
47 lines (40 loc) · 1.54 KB
/
MagicalMirrorSDK.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
<?php
class MagicalMirrorSDK{
private $arrConfigSDK;
private $dirBaseSDK;
function __construct(){
$this->dirBaseSDK = dirname(__FILE__)."/magicalMirrorSDK";
$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['keyApp'];
return md5($this->getSignature($arrData,$keySecret,$ListUnset,$ListUrlEncode));
}
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 = "";
if(!empty($ListUnset) && is_array($ListUnset)){
foreach($ListUnset as $valueUnset){
if(isset($arrData[$valueUnset])) unset($arrData[$valueUnset]);
}
}
foreach($arrData as $key => $value){
if(!empty($value)) {
$value = isset($ListUrlEncode[$key]) ? base64_encode($value) : $value;
$strSignature .= $value;
}
}
$signature = $strSignature.$keyCP;
}
return $signature;
}
}