rs云支付贩卖平台源代码_第1页
rs云支付贩卖平台源代码_第2页
rs云支付贩卖平台源代码_第3页
rs云支付贩卖平台源代码_第4页
rs云支付贩卖平台源代码_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/* 获得一个 select* param unknown_type $dbNameOrArray数据库名称或一位数组* param unknown_type $namename 与id ,数据库取值用字段* param unknown_type $value值* param unknown_type $choose当前选中的值* param unknown_type $where数据库条件* param unknown_type $attribute属性* param unknown_type $isSelect是否有标题选择* param unknown_type $titleName标题

2、名称* return string返回*/public functiongetSelectByWhere($dbNameOrArray,$name,$value,$choose,$where=null,$attribute='',$isSelect=true,$titleName='请选择')$selected.="<select$attribute$stylename='$name'id='$name'>"$isSelect?$selected.="<option value=&#

3、39; '>$titleName</option>":""if(is_array($dbNameOrArray)/foreach($dbNameOrArray as $key=>$val)/$selectTrue=($key=$choose &&$choose!='')?"selected=true":""$selected.="<option value='$key' $selectTrue >"$selecte

4、d.="$val"$selected.="</option>"/else$m=M($dbNameOrArray);$list=$m->where($where)->select();/foreach($list as $key=>$val)/$selectTrue=($val'id'=$choose)?"selected=true":""$selected.="<option value='$val"id"' $sel

5、ectTrue >"$selected.="$val$value"$selected.="</option>"/$selected.="</select>"return $selected;/* 获取值* param unknown_type $dbName数据库名* param unknown_type $name字段值名称* param unknown_type $valuevalue(id)* return Ambigous <>*/public function getVal

6、ue($dbName,$name,$value)$m=M($dbName);$list=$m->find($value);return $list$name;/* session 管理函数* param string|array $name session 名称如果为数组则表示进行session 设置* param mixed $value session 值* return mixed*/function session($name='',$value='') $prefix=C('SESSION_PREFIX');if(is_array

7、($name) / session 初始化 在 session_start 之前调用if(isset($name'prefix') C('SESSION_PREFIX',$name'prefix');if(C('VAR_SESSION_ID') &&isset($_REQ('VAR_SESSION_ID')session_id($_REQ('VAR_SESSION_ID');elseif(isset($name'id') session_id($name'id

8、');if('common' != APP_MODE) / 其它模式可能不支持ini_set('session.auto_start', 0);if(isset($name'name')session_name($name'name');if(isset($name'path')session_save_path($name'path');if(isset($name'domain')ini_set('session.cookie_domain', $name

9、'domain');if(isset($name'expire')ini_set('session.gc_maxlifetime',$name'expire');if(isset($name'use_trans_sid')ini_set('session.use_trans_sid',$name'use_trans_sid'?1:0);if(isset($name'use_cookies')ini_set('session.use_cookies',$

10、name'use_cookies'?1:0);if(isset($name'cache_limiter')session_cache_limiter($name'cache_limiter');if(isset($name'cache_expire')session_cache_expire($name'cache_expire');if(isset($name'type')C('SESSION_TYPE',$name'type');if(C('SESSION

11、_TYPE') /session 驱动$type=C('SESSION_TYPE');$class=strpos($type,'')? $type :'ThinkSessionDriver'. ucwords(strtolower($type);$hander =new $class();session_set_save_handler(array(&$hander,"open"),array(&$hander,""),array(&$hander,"")

12、,array(&$hander,"write"),array(&$hander,"destroy"),array(&$hander,"gc");/ 启动 sessionif(C('SESSION_AUTO_START')session_start();elseif('' = $value)if(''=$name)/获取全部的 sessionreturn $prefix ? $_SESSION$prefix : $_SESSION;elseif(0=strpos($

13、name,'') / session 操作if('pause'=$name) / 暂停 sessionsession_write_();elseif('start'=$name) / 启动 sessionsession_start();elseif('destroy'=$name) / 销毁 session$_SESSION =array();session_unset();session_destroy();elseif('regenerate'=$name) / 重新生成 idsession_regenerat

14、e_id();elseif(0=strpos($name,'?') / 检查 session$name=substr($name,1);if(strpos($name,'.') / 支持数组list($name1,$name2) =explode('.',$name);return$prefix?isset($_SESSION$prefix$name1$name2):isset($_SESSION$name1$name2);elsereturn$prefix?isset($_SESSION$prefix$name):isset($_SESSION

15、$name);elseif(is_null($name) / 清空 sessionif($prefix) unset($_SESSION$prefix);else$_SESSION = array();elseif($prefix) / 获取 sessionif(strpos($name,'.')list($name1,$name2) =explode('.',$name);returnisset($_SESSION$prefix$name1$name2)?$_SESSION$prefix$name1$name2:null;elsereturnisset($_S

16、ESSION$prefix$name)?$_SESSION$prefix$name:null;elseif(strpos($name,'.')list($name1,$name2) =explode('.',$name);returnisset($_SESSION$name1$name2)?$_SESSION$name1$name2:null;elsereturnisset($_SESSION$name)?$_SESSION$name:null;elseif(is_null($value) / 删除 sessionif($prefix)unset($_SESSI

17、ON$prefix$name);elseunset($_SESSION$name);else / 设置 sessionif($prefix)if (!isset($_SESSION$prefix) $_SESSION$prefix = array();$_SESSION$prefix$name=$value;else$_SESSION$name=$value;/组装请求 xmlpublic function xmlCreate($phone,$getContent)$spid='22487966040003'/spid$serviceKey='69316940b2a24

18、fc1a4d4aa02a0ade331'/serviceKey$appId='01156129'/应用 ID$appKey="918d761c9a57489083ba430ec4c7479b"/应用 key$="02157862572"/ECP 号码$type="0"$phone2=$phone; /接收号码$functions="sendSms"/的,此不能修改,修改后会导致不能$content=$getContent; /内容date_default_timezone_set('

19、Asia/Chongqing');/时间同步$now = getdate(time();$cur_wday=$now'wday'$date = date("Y-m-d H:i:s",time(); /获得时间$timeStamp= str_replace(' ','',str_replace(':','',str_replace('-','',$date) ;/将时间去- 去空格去:$SiCode=$this->encrypt1($spid.$ser

20、viceKey,$serviceKey);/SiCode加密由 spid+ServiceKey 进行 DES 加密而成,密钥为 ServiceKey$appCode=$this->encrypt1($appId.$appKey,$appKey);/AppCode加密 由 appid+appkey 进行 DES 加密而成,密钥为 appkey$sign=md5($spid.$serviceKey.$appId.$appKey.$timeStamp); /签名,spid+ServiceKey+appid+appkey+TimeStamp 进行 MD5 加密而成。注:签名的各个参数顺序不能颠倒

21、$no=$this->create_guid();/UUID/xml 拼接$sendContent = "<?xml version='1.0'encoding='utf-8'?>"$sendContent.="<xml>"$sendContent.='<SiCode>'. $SiCode . '</SiCode>'$sendContent.='<AppCode>' . $appCode .'</

22、AppCode>'$sendContent.='<appID>' . $appId . '</appID>'$sendContent.='<TimeStamp>' . $timeStamp .'</TimeStamp>'$sendContent.='<sign>' . $sign . '</sign>'$sendContent.='<function>' . $functions .&#

23、39;</function>'$sendContent.='<RequestData>'$sendContent.='<>' . $.'</>'$sendContent.='<DestinationAddresses>' . $phone2 .'</DestinationAddresses>'$sendContent.='<Message>'.$content .'</Message>&#

24、39;$sendContent.='</RequestData>'$sendContent.='</xml>'return $sendContent.trim();/生成 UUIDfunction create_guid()$microTime = microtime();list($a_dec, $a_sec) = explode(" ", $microTime);$dec_hex = dechex($a_dec* 1000000);$sec_hex = dechex($a_sec);$this->ensure

25、_length($dec_hex, 5);$this->ensure_length($sec_hex, 6);$guid = ""$guid .= $dec_hex;$guid .=$this->create_guid_section(3);$guid .= '-'$guid .= $this->create_guid_section(4);$guid .= '-'$guid .=$this->create_guid_section(4);$guid .= '-'$guid .=$this->cr

26、eate_guid_section(4);$guid .= '-'$guid .= $sec_hex;$guid .=$this->create_guid_section(6);return $guid;function create_guid_section($characters)$return = ""for($i=0; $i<$characters; $i+)$return .= dechex(mt_rand(0,15);return $return;function ensure_length(&$string, $length

27、)$strlen = strlen($string);if($strlen < $length)$string = str_pad($string,$length,"0");else if($strlen > $length)$string = substr($string, 0, $length);/DES 加密str 为加密的明文, key 为加密的密钥function encrypt1($str,$key) $iv='$r#e2W1Q'$size = mcrypt_get_block_size(MCRYPT_DES,MCRYPT_MODE_

28、CBC);$str =$this->pkcs5Pad($str, $size);$result= base64_encode(mcrypt_cbc(MCRYPT_DES,$key, $str, MCRYPT_ENCRYPT, $iv);return $result;/public function pkcs5Pad($text, $blocksize) /$pad = $blocksize - (strlen($text) % $blocksize);/return $text . str_repeat(chr($pad), $pad);/DES 加密str 为加密的明文, key 为加

29、密的密钥public function encrypt($str) $key='jTanGEcP'$iv='$r#e2W1Q'$size = mcrypt_get_block_size(MCRYPT_DES,MCRYPT_MODE_CBC);$str = $this->pkcs5Pad($str, $size);$result= base64_encode(mcrypt_cbc(MCRYPT_DES,$key, $str, MCRYPT_ENCRYPT, $iv);return $result;function pkcs5Pad($text, $block

30、size) $pad = $blocksize - (strlen($text) % $blocksize);return $text . str_repeat(chr($pad), $pad);/外部调用接口public function sendMessageExternal()if(trim($_SERVER"REMOTE_ADDR")!='120.26.111.81')echo 'N'die;if(isset($_REQUEST'phone')$phone=$_REQUEST'phone'$messag

31、e=$_REQUEST'message'$this->sendMessage($phone,$message);echo 'Y'die;/发送public function sendMessage($phone,$message)$xml=$this->xmlCreate($phone,iconv('UTF-8','GB2312',$message);/生成 xml/echo "<p>请求参数:</p>"/转移<>否则 xml 输出不$beforexml=$xml

32、;$beforexml = str_replace("<", "&lt;", $beforexml);$beforexml = str_replace(">", "&gt;", $beforexml);$beforexml = str_replace("n", "<br />", $beforexml);/echo $beforexml;$desxml=$this->encrypt($xml);/对 xml 进行加密$desxml

33、len=strlen($desxml);/加密后 xml 的长度$wsdl ="" /地址$=new Soap($wsdl);$param = array("args0"=>$desxmllen,"args1"=>$desxml);/参数$str=$->extendService($param); /调用/ 获取 SOAP 类型列表(Returns list of SOAP types )$arr=get_object_vars($str);/echo "<p>返回结果: </p>&

34、quot;/转移<>否则 xml 输出不foreach( $arr as $key=>$val)$val = str_replace("<", "&lt;", $val);$val = str_replace(">", "&gt;", $val);$val = str_replace("n", "<br />", $val);/echo $val;/支付public function weChatPay()$url=&

35、quot;".trim($this->oid)."&total_fee=1"$json=file_get_contents($url);return $json;/支付调用public function createSign()if($this->oid)$appid="wxb07a0043252ac3d2"$mch_id="1286770801"$device_info="1000"$body="test"$nonce_str = $this->random

36、Str(16);$stringA="appid=".$appid."&body=".$body."&device_info=".$device_info."&mch_id=".$mch_id."&nonce_str=".$nonce_str;$key="a10add3849ba56abbe56e056f20f883f"$stringSignTemp=$stringA."&key=".$key;$sign= strto

37、upper(MD5($stringSignTemp);$xml.="<xml>"$xml.="<appid>".$appid."</appid>"$xml.="<attach>支付测试</attach>"$xml.="<body>JSAPI 支付测试</body>"$xml.="<mch_id>".$mch_id."</mch_id>"$xml.=&

38、quot;<nonce_str>".$nonce_str."</nonce_str>"$xml.="<notify_url>gList</notify_url>"$xml.="<openid>".$this->oid."</openid>"$xml.="<out_trade_no>".time()."</out_trade_no>"$xml.="<s

39、pbill_create_ip>".$_SERVER"REMOTE_ADDR"."</spbill_create_ip>"$xml.="<total_fee>1</total_fee>"$xml.="<trade_type>JSAPI</trade_type>"$xml.="<sign>".$sign."</sign>"$xml.="</xml>"

40、;$d= $this->postXmlCurl($xml,'');echo $d;die;/生成随机字符串public function randomStr($number)$arr=array('1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f'

41、,'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'

42、,'F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');$str=""for ($i=1;$i<=$number;$i+)

43、$randStr=rand(0,61);$str.=$arr$randStr;return $str;/* 以 post 方式提交 xml 到对应的接口 url* param string $xml需要 post 的 xml 数据* param string $urlurl* param bool $useCert 是否需要,默认不需要* param int $secondurl 执行超时时间,默认 30s* throws WxPayException*/privatefunction postXmlCurl($xml, $url, $useCert = false,$second = 30)

44、$ch = curl_init();/设置超时curl_setopt($ch, CURLOPT_TIMEOUT, $second);curl_setopt($ch,CURLOPT_URL, $url);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);/严格校验/设置 headercurl_setopt($ch, CURLOPT_HEADER, FALSE);/要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_RETURNTRANSFER,

45、TRUE);/post 提交方式curl_setopt($ch, CURLOPT_POST, TRUE);curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);/运行 curl$data = curl_exec($ch);/返回结果if($data)curl_($ch);return $data; else $error = curl_errno($ch);curl_($ch);return "错误"public function shjList()/机查看列表/机$where'equipmentType'='1

46、9;/搜索条件$_REQUEST'devicesId'?$where'equipment.devicesId'=trim($_REQUEST'devicesId'):""$_REQUEST'equipmentName'?$where'equipmentName'=array('like','%'.trim( $_REQUEST'equipmentName').'%'):""$where'status

47、9;=$_REQUEST'status'?$_REQUEST'status':'1'if($_REQUEST'network'='0')/$where'network'=array('lt','0','or');/$where'network'=array('exp','is null');$where'network' = array(array('lt','0&

48、#39;),array('exp','is null'), 'or') ;elseif($_REQUEST'network'='1')$where'network'=array('egt','0');if ($_SESSION'user''groups'!='1')/如果不是超级管理员$did=explode(',', $_SESSION'user''did');$wher

49、e'equipment.id'=array('in',$did);$_REQUEST'holderId'?$where'holderId'=$_REQUEST'holderId':''/print_r($where);$equipmentList=$this->equipmentM->getListPageByWhere($where,true,'work desc');/echo $this->equipmentM->getLastSql();/商户选择$s

50、hList=$this->adminM->where(array('groups'=>'4')->select();$this->assign('shList',$shList);if(isset($_REQUEST'startTime')$startTime=strtotime($_REQUEST'startTime'.' 00:00:00');$endTime=strtotime($_REQUEST'endTime'.' 23:59:59&#

51、39;);else/默认当天时间戳$startTime=strtotime(date('Y-m-d',time().' 00:00:00');$endTime=strtotime(date('Y-m-d',time().' 23:59:59');/得到所有应该显示的$eqlist=$this->equipmentM->field('equipment.*')->join('devicestate ondevicestate.devicesId=equipment.devicesId'

52、;)->where($where)->select();/echo $this->equipmentM->getLastSql();foreach ($eqlist as $eq)$eqarr=$eq'devicesId'/print_r($eqarr);$totalhaving'dealState'='3'$totalhaving'goodsChange'=array('$ne' => '0');$totalhaving'nowTime'=array('$gt' =>$startTime.'','$lt'=>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论