www.gusucode.com > Destoon B2B仿淘宝电子商务网站 UTF8 v6.0源码程序 > destoon/api/pay/tenpay/ResponseHandler.class.php
<?php defined('IN_DESTOON') or exit('Access Denied'); class ResponseHandler { /** 密钥 */ var $key; /** 应答的参数 */ var $parameters; /** debug信息 */ 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); } } /** *获取密钥 */ function getKey() { return $this->key; } /** *设置密钥 */ function setKey($key) { $this->key = $key; } /** *获取参数值 */ function getParameter($parameter) { return $this->parameters[$parameter]; } /** *设置参数值 */ function setParameter($parameter, $parameterValue) { $this->parameters[$parameter] = $parameterValue; } /** *获取所有请求的参数 *@return array */ function getAllParameters() { return $this->parameters; } /** *是否财付通签名,规则是:按参数名称a-z排序,遇到空值的参数不参加签名。 *true:是 *false:否 */ 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信息 $this->_setDebugInfo($signPars . " => sign:" . $sign . " tenpaySign:" . $this->getParameter("sign")); return $sign == $tenpaySign; } /** *获取debug信息 */ function getDebugInfo() { return $this->debugInfo; } /** *显示处理结果。 *@param $show_url 显示处理结果的url地址,绝对url地址的形式(http://www.xxx.com/xxx.php)。 */ 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; } /** * 是否财付通签名 * @param signParameterArray 签名的参数数组 * @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信息 $this->_setDebugInfo($signPars . " => sign:" . $sign . " tenpaySign:" . $this->getParameter("sign")); return $sign == $tenpaySign; } /** *设置debug信息 */ function _setDebugInfo($debugInfo) { $this->debugInfo = $debugInfo; } } ?>