微信各種類庫整理_第1頁
微信各種類庫整理_第2頁
微信各種類庫整理_第3頁
微信各種類庫整理_第4頁
微信各種類庫整理_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

微信各種類庫整理index.php1<?php2include_once'lib.inc.php';34$wcObj=newWeChat("YOUKUIYUAN");5$wcObj->wcValid();微信類??驗(yàn)證及回復(fù)類auth.php1<?php2/********************************************************3456789*****@authorKylerYou<QQ:2444756311>@link/wiki/home/index.html@version2.0.1@uses$wxApi=newWxApi();@package微信API接?陸續(xù)會(huì)繼續(xù)進(jìn)?更新********************************************************/10classWxApi{111213141516//constappId//constappSecret="";constappId="";constappSecret="";="";//constmchid="";//商戶號(hào)//constprivatekey="";//私鑰17181920212223242526272829303132333435363738394041public$parameters=array();publicfunction__construct(){}/*****************************************************微信提交API?法,返回微信指定JSON****************************************************/publicfunctionwxHttpsRequest($url,$data=null){$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);if(!empty($data)){curl_setopt($curl,CURLOPT_POST,1);curl_setopt($curl,CURLOPT_POSTFIELDS,$data);}curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$output=curl_exec($curl);curl_close($curl);return$output;}424344454647484950515253545556575859606162636465/*****************************************************微信帶證書提交數(shù)據(jù)-微信紅包使?****************************************************/publicfunctionwxHttpsRequestPem($url,$vars,$second=30,$aHeader=array()){$ch=curl_init();//超時(shí)時(shí)間curl_setopt($ch,CURLOPT_TIMEOUT,$second);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//這?設(shè)置代理,如果有的話//curl_setopt($ch,CURLOPT_PROXY,'8');//curl_setopt($ch,CURLOPT_PROXYPORT,8080);curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);//以下兩種?式需選擇?種//第?種?法,cert與key分別屬于兩個(gè).pem?件//默認(rèn)格式為PEM,可以注釋curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/apiclient_cert.pem');//默認(rèn)格式為PEM,可以注釋curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');66676869707172737475767778798081828384858687888990curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'/apiclient_key.pem');curl_setopt($ch,CURLOPT_CAINFO,'PEM');curl_setopt($ch,CURLOPT_CAINFO,getcwd().'/rootca.pem');//第?種?式,兩個(gè)?件合成?個(gè).pem?件//curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/all.pem');if(count($aHeader)>=1){curl_setopt($ch,CURLOPT_HTTPHEADER,$aHeader);}curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);$data=curl_exec($ch);if($data){curl_close($ch);return$data;}else{$error=curl_errno($ch);echo"callfaild,errorCode:$error\n";curl_close($ch);returnfalse;}91}9293/*****************************************************微信獲取AccessToken返回指定微信公眾號(hào)的at信息****************************************************/94959697publicfunctionwxAccessToken($appId=NULL,$appSecret=NULL){98$appId=is_null($appId)?self::appId:$appId;99$appSecret=is_null($appSecret)?self::appSecret:$appSecret;100101102103104$data=json_decode(file_get_contents("access_token.json"));if($data->expire_time<time()){//echo$appId,$appSecret;$url="/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret;105>wxHttpsRequest($url);$result=$this-106107108109//print_r($result);$jsoninfo=json_decode($result,true);$access_token=$jsoninfo["access_token"];if($access_token){110111112113$data->expire_time=time()+7000;$data->access_token=$access_token;$fp=fopen("access_token.json","w");fwrite($fp,json_encode($data));114115116117118119120121122123124125126127128129130131132133fclose($fp);}}else{$access_token=$data->access_token;}return$access_token;}/*****************************************************微信獲取AccessToken返回指定微信公眾號(hào)的at信息****************************************************/publicfunctionwxJsApiTicket($appId=NULL,$appSecret=NULL){$appId=is_null($appId)?self::appId:$appId;$appSecret=is_null($appSecret)?self::appSecret:$appSecret;$data=json_decode(file_get_contents("jsapi_ticket.json"));if($data->expire_time<time()){$url="/cgi-bin/ticket/getticket?type=jsapi&access_token=".$this->wxAccessToken();134135136137$result=$this->wxHttpsRequest($url);=json_decode($result,true);$jsoninfo$ticket=$jsoninfo['ticket'];if($ticket){138139140141142143144145146147148149150151152153154155156157$data->expire_time=time()+7000;$data->jsapi_ticket=$ticket;$fp=fopen("jsapi_ticket.json","w");fwrite($fp,json_encode($data));fclose($fp);}}else{$ticket=$data->jsapi_ticket;}return$ticket;}/*****************************************************微信通過OPENID獲取?戶信息,返回?cái)?shù)組****************************************************/publicfunctionwxGetUser($openId){$wxAccessToken=$this->wxAccessToken();$url="/cgi-bin/user/info?access_token=".$wxAccessToken."&openid=".$openId."&lang=zh_CN";158159160161$result=$this->wxHttpsRequest($url);=json_decode($result,true);$jsoninforeturn$jsoninfo;}162163164165166167168169170171172173174175176177178179180181182183184185186/*****************************************************微信?成?維碼ticket****************************************************/publicfunctionwxQrCodeTicket($jsonData){$wxAccessToken=$this->wxAccessToken();$url="/cgi-bin/qrcode/create?access_token=".$wxAccessToken;=$this->wxHttpsRequest($url,$jsonData);$resultreturn$result;}/*****************************************************微信通過ticket?成?維碼****************************************************/publicfunctionwxQrCode($ticket){$url="/cgi-bin/showqrcode?ticket=".urlencode($ticket);return$url;}/*****************************************************發(fā)送?定義的模板消息****************************************************/publicfunctionwxSetSend($touser,$template_id,$url,$data,$topcolor='#7B68EE'){187188189190191192193194195196197198199200$template=array('touser'=>$touser,'template_id'=>$template_id,'url'=>$url,'topcolor'=>$topcolor,'data'=>$data);$jsonData=json_encode($template);$result=$this->wxSendTemplate($jsonData);return$result;}/*****************************************************微信設(shè)置OAUTH跳轉(zhuǎn)URL,返回字符串信息-SCOPE=snsapi_base//驗(yàn)證時(shí)不返回確認(rèn)頁?,只能獲取OPENID201202203204205****************************************************/publicfunctionwxOauthBase($redirectUrl,$state="",$appId=NULL){=is_null($appId)?self::appId:$appId;$url="/connect/oauth2/authorize?$appIdappid=".$appId."&redirect_uri=".$redirectUrl."&response_type=code&scope=snsapi_base&state=".$state."#wechat_redirect";206return$url;207208209210}/*****************************************************微信設(shè)置OAUTH跳轉(zhuǎn)URL,返回字符串信息-SCOPE=snsapi_userinfo//獲取?戶完整信息211212213214215****************************************************/publicfunctionwxOauthUserinfo($redirectUrl,$state="",$appId=NULL){$appId=is_null($appId)?self::appId:$appId;$url="/connect/oauth2/authorize?appid=".$appId."&redirect_uri=".$redirectUrl."&response_type=code&scope=snsapi_userinfo&state=".$state."#wechat_redirect";216return$url;217218219220221222223224225226227228229230231232}/*****************************************************微信OAUTH跳轉(zhuǎn)指定URL****************************************************/publicfunctionwxHeader($url){header("location:".$url);}/*****************************************************微信通過OAUTH返回頁?中獲取AT信息****************************************************/publicfunctionwxOauthAccessToken($code,$appId=NULL,$appSecret=NULL){$appId=is_null($appId)?self::appId:$appId;233$appSecret=is_null($appSecret)?self::appSecret:$appSecret;234$url="/sns/oauth2/access_token?appid=".$appId."&secret=".$appSecret."&code=".$code."&grant_type=authorization_code";235$result236=$this->wxHttpsRequest($url);//print_r($result);237$jsoninfo=json_decode($result,true);238//$access_token=$jsoninfo["access_token"];return$jsoninfo;239240}241242/****************************************************243*微信通過OAUTH的Access_Token的信息獲取當(dāng)前?戶信息//只執(zhí)?在snsapi_userinfo模式運(yùn)?244245246247****************************************************/publicfunctionwxOauthUser($OauthAT,$openId){$url="/sns/userinfo?access_token=".$OauthAT."&openid=".$openId."&lang=zh_CN";248249250251252253254255256$result=$this->wxHttpsRequest($url);=json_decode($result,true);$jsoninforeturn$jsoninfo;}/*****************************************************創(chuàng)建?定義菜單****************************************************/257258259260261262263264265266267268269270271272273274275276277278279280281publicfunctionwxMenuCreate($jsonData){$wxAccessToken=$this->wxAccessToken();$url="/cgi-bin/menu/create?access_token=".$wxAccessToken;$result$jsoninfo=$this->wxHttpsRequest($url,$jsonData);=json_decode($result,true);return$jsoninfo;}/*****************************************************獲取?定義菜單****************************************************/publicfunctionwxMenuGet(){$wxAccessToken=$this->wxAccessToken();$url="/cgi-bin/menu/get?access_token=".$wxAccessToken;=$this->wxHttpsRequest($url);$result$jsoninfo=json_decode($result,true);return$jsoninfo;}/*****************************************************刪除?定義菜單****************************************************/publicfunctionwxMenuDelete(){282283284285286287288289290291292293294295$wxAccessToken=$this->wxAccessToken();$url="/cgi-bin/menu/delete?access_token=".$wxAccessToken;=$this->wxHttpsRequest($url);$result$jsoninfo=json_decode($result,true);return$jsoninfo;}/*****************************************************獲取第三??定義菜單****************************************************/publicfunctionwxMenuGetInfo(){$wxAccessToken=$this->wxAccessToken();$url="/cgi-bin/get_current_selfmenu_info?access_token=".$wxAccessToken;296297298299300301302303304305$result=$this->wxHttpsRequest($url);=json_decode($result,true);$jsoninforeturn$jsoninfo;}/******************************************************?成隨機(jī)字符串-最長為32位字符串*****************************************************/publicfunctionwxNonceStr($length=16,$type=FALSE){$chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";306307308309310311312313314315316317318319320321322323324325326327328329330$str="";for($i=0;$i<$length;$i++){$str.=substr($chars,mt_rand(0,strlen($chars)-1),1);}if($type==TRUE){returnstrtoupper(md5(time().$str));}else{return$str;}}/********************************************************微信商戶訂單號(hào)-最長28位字符串*******************************************************/publicfunctionwxMchBillno($mchid=NULL){if(is_null($mchid)){if(self::mchid==""||is_null(self::mchid)){$mchid=time();}else{$mchid=self::mchid;}}331332333334335336337338339340341342343344345346347348349350351352353354else{$mchid=substr(addslashes($mchid),0,10);}returndate("Ymd",time()).time().$mchid;}/********************************************************微信格式化數(shù)組變成參數(shù)格式-?持url加密*******************************************************/publicfunctionwxSetParam($parameters){if(is_array($parameters)&&!empty($parameters)){$this->parameters=$parameters;return$this->parameters;}else{returnarray();}}/********************************************************微信格式化數(shù)組變成參數(shù)格式-?持url加密*******************************************************/355publicfunctionwxFormatArray($parameters=NULL,$urlencode=FALSE){356357358359360361362363364365366367368369370371372373}374375376377378if(is_null($parameters)){$parameters=$this->parameters;}$restr="";//初始化空ksort($parameters);//排序參數(shù)foreach($parametersas$k=>$v){//循環(huán)定制參數(shù)if(null!=$v&&"null"!=$v&&"sign"!=$k){if($urlencode){//如果參數(shù)需要增加URL加密就增加,不需要?jiǎng)t不需要$v=urlencode($v);}$restr.=$k."=".$v."&";//返回完整字符串}}if(strlen($restr)>0){//如果存在數(shù)據(jù)則將最后“&”刪除$restr=substr($restr,0,strlen($restr)-1);}return$restr;//返回字符串/********************************************************微信MD5簽名?成器-需要將參數(shù)數(shù)組轉(zhuǎn)化成為字符串[wxFormatArray?法]*******************************************************/publicfunctionwxMd5Sign($content,$privatekey){379380381382383384385386387388389390391392393394395396397398399400401402403try{if(is_null($privatekey)){thrownewException("財(cái)付通簽名key不能為空!");}if(is_null($content)){thrownewException("財(cái)付通簽名內(nèi)容不能為空");}$signStr=$content."&key=".$privatekey;returnstrtoupper(md5($signStr));}catch(Exception$e){die($e->getMessage());}}/********************************************************微信Sha1簽名?成器-需要將參數(shù)數(shù)組轉(zhuǎn)化成為字符串[wxFormatArray?法]*******************************************************/publicfunctionwxSha1Sign($content){try{if(is_null($content)){thrownewException("簽名內(nèi)容不能為空");}//$signStr=$content;404405406407408409410411412413414415416417418419returnsha1($content);}catch(Exception$e){die($e->getMessage());}}/********************************************************微信jsApi整合?法-通過調(diào)?此?法獲得jsapi數(shù)據(jù)*******************************************************/publicfunctionwxJsapiPackage(){$jsapi_ticket=$this->wxJsApiTicket();//注意URL?定要?jiǎng)討B(tài)獲取,不能hardcode.$protocol=(!empty($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off'||$_SERVER['SERVER_PORT']==443)?"https://":"http://";420$url=$protocol.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];421422423424425426427$timestamp=time();$nonceStr=$this->wxNonceStr();$signPackage=array("jsapi_ticket"=>$jsapi_ticket,"nonceStr"=>$nonceStr,428429430431432433434435436437438439440441442443444445446447448449450451452"timestamp"=>$timestamp,=>$url"url");//這?參數(shù)的順序要按照key值A(chǔ)SCII碼升序排序$rawString="jsapi_ticket=$jsapi_ticket&noncestr=$nonceStr×tamp=$timestamp&url=$url";//$rawString=$this->wxFormatArray($signPackage);$signature=$this->wxSha1Sign($rawString);$signPackage['signature']=$signature;$signPackage['rawString']=$rawString;$signPackage['appId']=self::appId;return$signPackage;}/********************************************************將數(shù)組解析XML-微信紅包接?*******************************************************/publicfunctionwxArrayToXml($parameters=NULL){if(is_null($parameters)){$parameters=$this->parameters;}453454455456457458459460461462463464465466467468469470471472473474475476if(!is_array($parameters)||empty($parameters)){die("參數(shù)不為數(shù)組?法解析");}$xml="<xml>";foreach($arras$key=>$val){if(is_numeric($val)){$xml.="<".$key.">".$val."</".$key.">";}else$xml.="<".$key."><![CDATA[".$val."]]></".$key.">";}$xml.="</xml>";return$xml;}/********************************************************微信卡券:上傳LOGO-需要改寫動(dòng)態(tài)功能*******************************************************/publicfunctionwxCardUpdateImg(){$wxAccessToken=$this->wxAccessToken();477478//$data['access_token']=$wxAccessToken;$data['buffer']='@D:\\workspace\\htdocs\\yky_test\\logo.jpg';479480481482483$url="/cgi-bin/media/uploadimg?access_token=".$wxAccessToken;=$this->wxHttpsRequest($url,$data);$result$jsoninfo=json_decode($result,true);return$jsoninfo;//array(1){["url"]=>string(121)"/mmbiz/ibuYxPHqeXePNTW4ATKyias1Cf3zTKiars9PFPzF1k5icvXD7xW0kXUAxHDzkEPd9micCMCN0dcTJfW6Tnm93MiaAfRQ/0"}484485486487488489490491492493494495496497498}/********************************************************微信卡券:獲取顏?*******************************************************/publicfunctionwxCardColor(){$wxAccessToken=$this->wxAccessToken();$url="/card/getcolors?access_token=".$wxAccessToken;=$this->wxHttpsRequest($url);$result$jsoninfo=json_decode($result,true);return$jsoninfo;}/********************************************************微信卡券:創(chuàng)建卡券499500501502503504505506507508509*******************************************************/publicfunctionwxCardCreated($jsonData){$wxAccessToken=$this->wxAccessToken();$url="/card/create?access_token=".$wxAccessToken;=$this->wxHttpsRequest($url,$jsonData);$result$jsoninfo=json_decode($result,true);return$jsoninfo;}/********************************************************微信卡券:JSAPI卡券Package-基礎(chǔ)參數(shù)沒有附帶任何值-再?產(chǎn)環(huán)境中需要根據(jù)實(shí)際情況進(jìn)?修改510511512513514515516517518519520521522*******************************************************/publicfunctionwxCardPackage($cardId){$timestamp=time();$api_ticket=$this->wxJsApiTicket();$cardId=$cardId;$arrays=array($api_ticket,$timestamp,$cardId);sort($arrays);$string=sha1(implode("",$arrays));$resultArray['card_id']=$cardId;$resultArray['card_ext']=array();$resultArray['card_ext']['openid']='oOmn4s9MiwqHSNNvPn0dBtU23toA';$resultArray['card_ext']['timestamp']=$timestamp;523$resultArray['card_ext']['signature']=$string;return$resultArray;524525526}527528529}微信JSAPI1<?php2require_once'lib.inc.php';3$wx=newWxApi();4//通過?頁獲取openid5//if(!isset($_GET['code'])){6//header("location:/connect/oauth2/authorize?appid=".WxApi::appId."&redirect_uri=http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."&response_type=code&scope=snsapi_base&state=1#we7//}8//else{9//$CODE=$_GET['code'];10//$Info=$wx->wxOauthAccessToken($CODE);11//print_r($Info);12//$openId=$Info['openid'];13//}14////////////////////////////////////////////1516$signPackage=$wx->wxJsapiPackage();17//print_r($signPackage);18$kqInfo=$wx->wxCardPackage("");19$listInfo=$wx->wxCardListPackage();20?>21<html>22<head>232425262728<title>JSAPI接?測試</title><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><scriptsrc="/jquery-1.11.2.min.js"></script><scriptsrc="/open/js/jweixin-1.0.0.js"></script>29</head>30<body>31323334353637383940<div><inputtype="button"id="batchAddCard"name="batchAddCard"value="添加卡券"/><br/><inputtype="button"id="openCard"name="openCard"value="拉起卡券庫"/><br/><inputtype="button"id="ShareTimeLine"name="ShareTimeLine"value="分享朋友圈"/><br/><divid="showInfo"></div></div><script>4142434445464748495051525354555657585960wx.config({debug:false,appId:'<?phpecho$signPackage["appId"];?>',timestamp:<?phpecho$signPackage["timestamp"];?>,nonceStr:'<?phpecho$signPackage["nonceStr"];?>',signature:'<?phpecho$signPackage["signature"];?>',jsApiList:[//所有要調(diào)?的API都要加到這個(gè)列表中'onMenuShareTimeline','onMenuShareAppMessage','addCard','openCard']});wx.ready(function(){//在這?調(diào)?APIwx.onMenuShareAppMessage({title:'互聯(lián)?之?',desc:'在長?的過程中,我才慢慢發(fā)現(xiàn),我?邊的所有事,別?跟我說的所有事,那些所謂本來如此,注定如此的事,它們其實(shí)沒有?得如此,事情是可以改變的。更重要的是,有些事既然錯(cuò)了,那就該做出改變。616263link:'/subject/25785114/',imgUrl:'/jssdk/images/p2166127561.jpg',trigger:function(res){64//不要嘗試在trigger中使?ajax異步請求修改本次分享的內(nèi)容,因?yàn)榭蛻舳朔窒聿僮魇?個(gè)同步操作,這時(shí)候使?ajax的回包會(huì)還沒有返回6566676869alert('?戶點(diǎn)擊發(fā)送給朋友');},success:function(res){alert('已分享');},707172737475767778798081828384cancel:function(res){alert('已取消');},fail:function(res){alert(JSON.stringify(res));}});document.querySelector('#ShareTimeLine').onclick=function(){wx.onMenuShareTimeline({title:'互聯(lián)?之?',link:'/subject/25785114/',imgUrl:'/jssdk/images/p2166127561.jpg',trigger:function(res){//不要嘗試在trigger中使?ajax異步請求修改本次分享的內(nèi)容,因?yàn)榭蛻舳朔窒聿僮魇?個(gè)同步操作,這時(shí)候使?ajax的回包會(huì)還沒有返回85alert('?戶點(diǎn)擊分享到朋友圈');86},87success:function(res){88alert('已分享');89},90cancel:function(res){91alert('已取消');92},93fail:function(res){94alert(JSON.stringify(res));}9596});97};9899document.querySelector('#batchAddCard').onclick=function(){100101102103104wx.addCard({cardList:[{cardId:'***********************',cardExt:'{"timestamp":"<?phpecho$kqInfo['cardExt']['timestamp'];?>","signature":"<?phpecho$kqInfo['cardExt']['signature'];?>"}'105106107108109}],success:function(res){varcardList=res.cardList;//添加的卡券列表信息alert(cardList);110111112113114115116117118119120121122123124},cancel:function(res){alert('已取消');},fail:function(res){alert(JSON.stringify(res));}});};varshareData={title:'微信JS-SDKDemo',desc:'微信JS-SDK,幫助第三?為?戶提供更優(yōu)質(zhì)的移動(dòng)web服務(wù)',link:'/jssdk/',imgUrl:'/mmbiz/icTdbqWNOwNRt8Qia4lv7k3M9J1SKqKCImxJCt7j9rHYicKDI45jRPBxdzdyREWnk0ia0N5TMnMfth7SdxtzMvVgXg/0'125};126127128129130131132133wx.onMenuShareAppMessage(shareData);wx.onMenuShareTimeline(shareData);});varreadyFunc=func

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論