Files
littleTiger/plugins/payment/tenpay/classes/ResponseHandler.class.php

160 lines
2.8 KiB
PHP
Raw Permalink Normal View History

2019-02-28 19:48:21 +08:00
<?php
class ResponseHandler {
/** <20><>Կ */
var $key;
/** Ӧ<><D3A6><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD> */
var $parameters;
/** debug<75><67>Ϣ */
var $debugInfo;
function __construct() {
$this->ResponseHandler();
}
function ResponseHandler() {
$this->key = "";
$this->parameters = array();
$this->debugInfo = "";
/* GET */
foreach($_GET as $k => $v) {
$this->setParameter($k, $v);
}
/* POST */
foreach($_POST as $k => $v) {
$this->setParameter($k, $v);
}
}
/**
*<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>Կ
*/
function getKey() {
return $this->key;
}
/**
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ
*/
function setKey($key) {
$this->key = $key;
}
/**
*<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
function getParameter($parameter) {
return $this->parameters[$parameter];
}
/**
*<EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>ֵ
*/
function setParameter($parameter, $parameterValue) {
$this->parameters[$parameter] = $parameterValue;
}
/**
*<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>
*@return array
*/
function getAllParameters() {
return $this->parameters;
}
/**
*<EFBFBD>Ƿ<EFBFBD><EFBFBD>Ƹ<EFBFBD>ͨǩ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a-z<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD>ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*true:<EFBFBD><EFBFBD>
*false:<EFBFBD><EFBFBD>
*/
function isTenpaySign() {
$signPars = "";
ksort($this->parameters);
foreach($this->parameters as $k => $v) {
if("sign" != $k && "" != $v) {
$signPars .= $k . "=" . $v . "&";
}
}
$signPars .= "key=" . $this->getKey();
$sign = strtolower(md5($signPars));
$tenpaySign = strtolower($this->getParameter("sign"));
//debug<75><67>Ϣ
$this->_setDebugInfo($signPars . " => sign:" . $sign .
" tenpaySign:" . $this->getParameter("sign"));
return $sign == $tenpaySign;
}
/**
*<EFBFBD><EFBFBD>ȡdebug<EFBFBD><EFBFBD>Ϣ
*/
function getDebugInfo() {
return $this->debugInfo;
}
/**
*<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*@param $show_url <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>url<EFBFBD><EFBFBD>ַ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>url<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ(http://www.xxx.com/xxx.php)<EFBFBD><EFBFBD>
*/
function doShow($show_url) {
$strHtml = "<html><head>\r\n" .
"<meta name=\"TENCENT_ONLINE_PAYMENT\" content=\"China TENCENT\">" .
"<script language=\"javascript\">\r\n" .
"window.location.href='" . $show_url . "';\r\n" .
"</script>\r\n" .
"</head><body></body></html>";
echo $strHtml;
exit;
}
/**
* <EFBFBD>Ƿ<EFBFBD><EFBFBD>Ƹ<EFBFBD>ͨǩ<EFBFBD><EFBFBD>
* @param signParameterArray ǩ<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return boolean
*/
function _isTenpaySign($signParameterArray) {
$signPars = "";
foreach($signParameterArray as $k) {
$v = $this->getParameter($k);
if("sign" != $k && "" != $v) {
$signPars .= $k . "=" . $v . "&";
}
}
$signPars .= "key=" . $this->getKey();
$sign = strtolower(md5($signPars));
$tenpaySign = strtolower($this->getParameter("sign"));
//debug<75><67>Ϣ
$this->_setDebugInfo($signPars . " => sign:" . $sign .
" tenpaySign:" . $this->getParameter("sign"));
return $sign == $tenpaySign;
}
/**
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>debug<EFBFBD><EFBFBD>Ϣ
*/
function _setDebugInfo($debugInfo) {
$this->debugInfo = $debugInfo;
}
}
?>