166 lines
2.8 KiB
PHP
166 lines
2.8 KiB
PHP
![]() |
<?php
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* ============================================================================
|
|||
|
* api˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* init(),<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϸ<EFBFBD>һЩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>cmdno,date<EFBFBD>ȡ<EFBFBD>
|
|||
|
* getGateURL()/setGateURL(),<EFBFBD><EFBFBD>ȡ/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ַ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
* getKey()/setKey(),<EFBFBD><EFBFBD>ȡ/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ
|
|||
|
* getParameter()/setParameter(),<EFBFBD><EFBFBD>ȡ/<EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
* getAllParameters(),<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* getRequestURL(),<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>URL
|
|||
|
* doSend(),<EFBFBD>ض<EFBFBD><EFBFBD>Ƹ<EFBFBD>֧ͨ<EFBFBD><EFBFBD>
|
|||
|
* getDebugInfo(),<EFBFBD><EFBFBD>ȡdebug<EFBFBD><EFBFBD>Ϣ
|
|||
|
*
|
|||
|
* ============================================================================
|
|||
|
*
|
|||
|
*/
|
|||
|
class RequestHandler {
|
|||
|
|
|||
|
/** <20><><EFBFBD><EFBFBD>url<72><6C>ַ */
|
|||
|
var $gateUrl;
|
|||
|
|
|||
|
/** <20><>Կ */
|
|||
|
var $key;
|
|||
|
|
|||
|
/** <20><><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD> */
|
|||
|
var $parameters;
|
|||
|
|
|||
|
/** debug<75><67>Ϣ */
|
|||
|
var $debugInfo;
|
|||
|
|
|||
|
function __construct() {
|
|||
|
$this->RequestHandler();
|
|||
|
}
|
|||
|
|
|||
|
function RequestHandler() {
|
|||
|
$this->gateUrl = "https://www.tenpay.com/cgi-bin/v1.0/service_gate.cgi";
|
|||
|
$this->key = "";
|
|||
|
$this->parameters = array();
|
|||
|
$this->debugInfo = "";
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
*<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
function init() {
|
|||
|
//nothing to do
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
*<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ַ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
function getGateURL() {
|
|||
|
return $this->gateUrl;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ַ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
function setGateURL($gateUrl) {
|
|||
|
$this->gateUrl = $gateUrl;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
*<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>URL
|
|||
|
*/
|
|||
|
function getRequestURL() {
|
|||
|
|
|||
|
$this->createSign();
|
|||
|
|
|||
|
$reqPar = "";
|
|||
|
ksort($this->parameters);
|
|||
|
foreach($this->parameters as $k => $v) {
|
|||
|
$reqPar .= $k . "=" . urlencode($v) . "&";
|
|||
|
}
|
|||
|
|
|||
|
//ȥ<><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>&
|
|||
|
$reqPar = substr($reqPar, 0, strlen($reqPar)-1);
|
|||
|
|
|||
|
$requestURL = $this->getGateURL() . "?" . $reqPar;
|
|||
|
|
|||
|
return $requestURL;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
*<EFBFBD><EFBFBD>ȡdebug<EFBFBD><EFBFBD>Ϣ
|
|||
|
*/
|
|||
|
function getDebugInfo() {
|
|||
|
return $this->debugInfo;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
*<EFBFBD>ض<EFBFBD><EFBFBD>Ƹ<EFBFBD>֧ͨ<EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
function doSend() {
|
|||
|
header("Location:" . $this->getRequestURL());
|
|||
|
exit;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>md5ժҪ,<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>
|
|||
|
*/
|
|||
|
function createSign() {
|
|||
|
$signPars = "";
|
|||
|
ksort($this->parameters);
|
|||
|
foreach($this->parameters as $k => $v) {
|
|||
|
if("" != $v && "sign" != $k) {
|
|||
|
$signPars .= $k . "=" . $v . "&";
|
|||
|
}
|
|||
|
}
|
|||
|
$signPars .= "key=" . $this->getKey();
|
|||
|
$sign = strtolower(md5($signPars));
|
|||
|
$this->setParameter("sign", $sign);
|
|||
|
|
|||
|
//debug<75><67>Ϣ
|
|||
|
$this->_setDebugInfo($signPars . " => sign:" . $sign);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>debug<EFBFBD><EFBFBD>Ϣ
|
|||
|
*/
|
|||
|
function _setDebugInfo($debugInfo) {
|
|||
|
$this->debugInfo = $debugInfo;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
?>
|