/firstrend/src/sdks/paipai/Util.php
PHP | 226 lines | 153 code | 23 blank | 50 comment | 17 complexity | e5ebef60dadbb44dd0db2cb2c655d591 MD5 | raw file
Possible License(s): Apache-2.0, AGPL-1.0, GPL-2.0, GPL-3.0, LGPL-2.1
- <?php
- require_once 'Snoopy.class.php';
-
- class Util {
- static private $snoopy = NULL;
-
- /**
- * ???Snoopy
- */
- static public function instanceSnoopy() {
- if (self::$snoopy == NULL) {
- self::$snoopy = new Snoopy();
- }
- }
-
- //??cmdid
- /*
- *???http://api.paipai.com/item/addItem.xhtml??requestURLPath="/item/addItem.xhtml "????cmdid="item.addItem"?
- *???http://api.paipai.com/deal/getDeal.xhtml??requestURLPath="/deal/getDeal.xhtml "????cmdid="deal.getDeal"?
- */
- static public function createCmdid($requestURLPath)
- {
- if(strlen($requestURLPath)==0)return false;
- if($requestURLPath{0} != '/')return false;
- if(strpos($requestURLPath,'/')===false)return false;
- if(strpos($requestURLPath,'.')===false)return false;
- $pos_start = 1;
- $pos_end = strpos($requestURLPath,'.');
- $cmd = substr($requestURLPath,$pos_start,$pos_end-1);
- $cmd = str_replace('/','.',$cmd);
- return $cmd;
-
- }
-
- /**
- * ????
- * @param $paramArr?api????
- * @return $sign
- */
- static public function createSign ($paramArr,$cmdid='') {
- ksort($paramArr);
- $sign = $cmdid;
- foreach ($paramArr as $key => $val) {
- if ($key !='' && $val !='') {
- $sign .= $key.$val;
- }
- }
- $sign .= PAIPAI_API_SECRETKEY;
- $sign = md5($sign);
- return $sign;
- }
-
- /**
- * ???????
- * @param $paramArr?api????
- * @return $strParam
- */
- static public function createStrParam ($paramArr) {
- $strParam = '';
- foreach ($paramArr as $key => $val) {
- if ($key != '' && $val !='') {
- $strParam .= $key.'='.urlencode($val).'&';
- }
- }
- return $strParam;
- }
-
- /**
- * ?GET????api??
- * @param $paramArr?api????
- * @return $result
- */
- static public function getResult($paramArr,$requestURLPath='') {
- self::instanceSnoopy();
- //????
- $cmdid = self::createCmdid($requestURLPath);
- $sign = self::createSign($paramArr,$cmdid);
- $strParam = self::createStrParam($paramArr);
- $strParam .= 'sign='.$sign;
- $strParam = PAIPAI_API_URL.$requestURLPath.'?'.$strParam;
- //????
- self::$snoopy->fetch($strParam);
-
- //echo "<a href='".$strParam."' style='color:#fff' target='_blank'>??</a>";
-
-
-
- $result = self::$snoopy->results;
- //????
- return $result;
- }
-
-
- /**
- * ?POST????api??
- * @param $paramArr?api????
- * @return $result
- */
- static public function postResult($paramArr,$requestURLPath) {
- self::instanceSnoopy();
- //?????Snoopy????submit????????????urlencode???????????get??????????????urlencode??
- $cmdid = self::createCmdid($requestURLPath);
- $sign = self::createSign($paramArr,$cmdid);
- $paramArr['sign'] = $sign;
- $api_url = PAIPAI_API_URL . $requestURLPath . "?charset=";
- $api_url .= isset($paramArr['charset'])?$paramArr['charset']:'gbk';
- //????
- self::$snoopy->submit($api_url, $paramArr);
- $result = self::$snoopy->results;
- //????
- return $result;
- }
-
- /**
- * ?POST????api??????
- * @param $paramArr?api????
- * @param $imageArr????????????array('pic' => '/tmp/cs.jpg')??
- * @return $result
- */
- static public function postImageResult($paramArr,$requestURLPath,$imageArr) {
- self::instanceSnoopy();
- //????
- $cmdid = self::createCmdid($requestURLPath);
- $sign = self::createSign($paramArr,$cmdid);
- $paramArr['sign'] = $sign;
- $api_url = PAIPAI_API_URL . $requestURLPath . "?charset=";
- $api_url .= isset($paramArr['charset'])?$paramArr['charset']:'gbk';
- //????
- self::$snoopy->_submit_type = "multipart/form-data";
- self::$snoopy->submit($api_url,$paramArr,$imageArr);
- $result = self::$snoopy->results;
- //????
- return $result;
- }
-
- /**
- * ??xml
- */
- static public function getXmlData ($strXml) {
-
- //ADD BY ROGER???XML??????
- $strXml = preg_replace("/[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]/",'',$strXml);
-
- //?????
- $strXml = SBC_DBC($strXml,1);
-
- $pos = strpos($strXml, 'xml');
- if ($pos !== false) {
- $xmlCode=simplexml_load_string($strXml,'SimpleXMLElement', LIBXML_NOCDATA);
- $arrayCode=self::get_object_vars_final($xmlCode);
- return $arrayCode ;
- } else {
- return '';
- }
- }
-
- static private function get_object_vars_final($obj){
- if(is_object($obj)){
- $obj=get_object_vars($obj);
- }
-
- if(is_array($obj)){
- foreach ($obj as $key=>$value){
- $v = self::get_object_vars_final($value);
- //ADD BY ROGER??????????????
- if(is_array($v)&&(count($v)==0))$v=NULL;
- $obj[$key] = $v;
- }
- }
- return $obj;
- }
-
-
- }
-
- function SBC_DBC($str,$args2) { //??????????????????0,???????????1????????
- $DBC = array(
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?' , '?' , '?' ,
- '?' , '?' , '?'
- );
- $SBC = array( //??
- '0', '1', '2', '3', '4',
- '5', '6', '7', '8', '9',
- 'A', 'B', 'C', 'D', 'E',
- 'F', 'G', 'H', 'I', 'J',
- 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T',
- 'U', 'V', 'W', 'X', 'Y',
- 'Z', 'a', 'b', 'c', 'd',
- 'e', 'f', 'g', 'h', 'i',
- 'j', 'k', 'l', 'm', 'n',
- 'o', 'p', 'q', 'r', 's',
- 't', 'u', 'v', 'w', 'x',
- 'y', 'z', '-', ' ', ':',
- '.', ',', '/', '%', '#',
- '!', '@', '&', '(', ')',
- '<', '>', '"', '\'','?',
- '[', ']', '{', '}', '\\',
- '|', '+', '=', '_', '^',
- '$', '~', '`'
- );
- if($args2==0)
- return str_replace($SBC,$DBC,$str); //?????
- if($args2==1)
- return str_replace($DBC,$SBC,$str); //?????
- else
- return false;
- }
- ?>