【移動(dòng)應(yīng)用開發(fā)技術(shù)】微信開發(fā)之現(xiàn)金紅包接口如何實(shí)現(xiàn)紅包發(fā)放功能_第1頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】微信開發(fā)之現(xiàn)金紅包接口如何實(shí)現(xiàn)紅包發(fā)放功能_第2頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】微信開發(fā)之現(xiàn)金紅包接口如何實(shí)現(xiàn)紅包發(fā)放功能_第3頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】微信開發(fā)之現(xiàn)金紅包接口如何實(shí)現(xiàn)紅包發(fā)放功能_第4頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】微信開發(fā)之現(xiàn)金紅包接口如何實(shí)現(xiàn)紅包發(fā)放功能_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】微信開發(fā)之現(xiàn)金紅包接口如何實(shí)現(xiàn)紅包發(fā)放功能

這篇文章給大家分享的是有關(guān)微信開發(fā)之現(xiàn)金紅包接口如何實(shí)現(xiàn)紅包發(fā)放功能的內(nèi)容。在下覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨在下過(guò)來(lái)看看吧。微信現(xiàn)金紅包接口實(shí)現(xiàn)紅包發(fā)放:一:流程:【流程:微信用戶訪問紅包活動(dòng)頁(yè)面--》后端判斷是否是微信訪問的【否:提示用微信打開連接,是:提示用戶是否授權(quán)允許,獲取其的用戶信息【openID等信息】】--》進(jìn)入紅包活動(dòng)頁(yè)面》用戶點(diǎn)擊領(lǐng)取紅包【判斷是否領(lǐng)取過(guò)紅包】是:【提示已領(lǐng)取過(guò)紅包】否--》后端程序調(diào)用接口發(fā)放紅包--》微信用戶在微信中收到紅包--》打開紅包--》紅包金額會(huì)添加到錢包零錢里--》完成紅包發(fā)放?!慷阂獙?shí)現(xiàn)微信現(xiàn)金紅包接口實(shí)現(xiàn)紅包發(fā)放,首先要符合以下條件:1.用于發(fā)放紅包的微信公眾號(hào)要是服務(wù)類型2.登錄微信公眾平臺(tái)官網(wǎng)后,在公眾平臺(tái)后臺(tái)管理頁(yè)面-開發(fā)者中心頁(yè),點(diǎn)擊“修改配置”按鈕,填寫服務(wù)器地址(URL)、Token和EncodingAESKey,其中URL是開發(fā)者用來(lái)接收微信消息和事件的接口URL。Token可由開發(fā)者可以任意填寫,用作生成簽名(該Token會(huì)和接口URL中包含的Token進(jìn)行比對(duì),從而驗(yàn)證安全性)。EncodingAESKey由開發(fā)者手動(dòng)填寫或隨機(jī)生成,將用作消息體加解密密鑰。3.獲取access_token:公眾號(hào)可以使用AppID和AppSecret調(diào)用本接口來(lái)獲取access_token?!続ppID和AppSecret可在微信公眾平臺(tái)官網(wǎng)-開發(fā)者中心頁(yè)中獲得(需要已經(jīng)成為開發(fā)者,且?guī)ぬ?hào)沒有異常狀態(tài))?!?.微信公眾號(hào)要開通“網(wǎng)頁(yè)授權(quán)接口”用戶獲取用戶基本信息【特別是openID,發(fā)紅包時(shí)用到】5.微信公眾號(hào)的“微信支付“

中的

”商戶號(hào)”要開通微信支付【發(fā)紅包的金額是該支付賬戶扣款】,開通“現(xiàn)金紅包”接口【調(diào)用該接口發(fā)放紅包】。6.登陸”商戶號(hào)”【微信公眾號(hào)分配的商戶號(hào)。第5中有說(shuō)明】在“API安全”中下載PHP版的證書【.pem格式】以上如描述不清楚,請(qǐng)查看微信開發(fā)者文檔里面有詳細(xì)的秒殺。部分代碼如下【其余的請(qǐng)查看附件】:<?php

namespace

RedClient\Controller;

use

Think\Controller;

use

RedClient\Redpack\WeiXinInfo;

use

RedClient\Redpack\Oauth;

use

RedClient\Redpack\SendRedPack;

use

RedClient\Redpack\CreateRedPack;

class

IndexController

extends

Controller

{

public

function

index()

{

$this->isWeixin();//是否是微信打開

if($this->access)

{

$this->display();

}

else

{

$class=new

Oauth();

$class->index('/index.php/Index/oauth');

}

}

//獲取用戶信息

openID

public

function

oauth()

{

$code=isset($_GET['code'])?strip_tags(trim($_GET['code'])):'';

$state=isset($_GET['state'])?strip_tags(trim($_GET['state'])):'';

$class=new

Oauth();

$userInfo=$class->getCode($code,$state);//獲取用戶信息

if(!empty($userInfo['data']))

{

//$model=M('wxuser');

//$result=$model->where('openid

=

"'.$userInfo['data']->openid.'"')->field('openid')->select();

if(empty($result))

{

$userInfo['data']=$this->object2array($userInfo['data']);

$model->data($userInfo['data'])->add();

}

}

$userInfo['data']=$this->object2array($userInfo['data']);

//創(chuàng)建紅包

$class=new

CreateRedPack();

$red=$class->redval();

//發(fā)紅包

$class=new

SendRedPack();

$configs=array(

'send_name'=>'紅包發(fā)送者名稱',//紅包發(fā)送者名稱

're_openid'=>$userInfo['data']['openid'],//接受紅包的用戶,用戶在wxappid下的openid

'total_amount'=>$red,//付款金額,單位分

'total_num'=>'1',//紅包發(fā)放總?cè)藬?shù)

'wishing'=>'紅包祝福語(yǔ)',//紅包祝福語(yǔ)

'client_ip'=>$_SERVER['SERVER_ADDR'],//調(diào)用接口的機(jī)器Ip地址

'act_name'=>'活動(dòng)名稱',//活動(dòng)名稱

'remark'=>'備注信息',//

備注信息

);

$class->setFields($configs);

$result=$class->requestXml();

//微信返回信息處理

if(strtoupper($result['return_code'])=='SUCCESS')

{

if(strtoupper($result['result_code'])=='SUCCESS')

{

//紅包發(fā)送成功!

$datas['flag']=1;

echo

$result['err_code_des'];

}

else

{

//紅包發(fā)送失敗

$datas['flag']=0;

$datas['msg']=$result['err_code_des'];

echo

$result['err_code_des'];

}

}

else

{

//紅包發(fā)送失敗

$datas['flag']=0;

$datas['msg']=$result['err_code_des'];

echo

$result['err_code_des'];

}

}

public

function

isWeixin()

{

if

(strpos($_SERVER['HTTP_USER_AGENT'],

'MicroMessenger')

!==

false)

{

$this->access=true;

}

return

false;

}

//類轉(zhuǎn)換成數(shù)組

public

function

object2array($object)

{

if

(is_object($object))

{

foreach

($object

as

$key

=>

$value)

{

$array[$key]

=

$value;

}

}

else

{

$array

=

$object;

}

return

$array;

}

}

?><?php

namespace

RedClient\Redpack;

/**

簡(jiǎn)單紅包算法類

**/

class

CreateRedPack

{

private

$rid=0;//當(dāng)前紅包隨機(jī)數(shù)

private

$rand_arr=array();//35%是1.0到1.1

紅包隨機(jī)數(shù)

private

$rand_arr1=array();//35%是1.1到1.2

紅包隨機(jī)數(shù)

private

$rand_arr2=array();//30%是1.2到1.95

紅包隨機(jī)數(shù)

private

$red=0;//紅包金額

private

$simplered=0;

private

$red_config=array(

array('min'=>1.0,'max'=>1.1),

array('min'=>1.1,'max'=>1.2),

array('min'=>1.2,'max'=>1.95)

);

public

function

__construct()

{

$this->rid=mt_rand(1,10000);//當(dāng)前紅包隨機(jī)數(shù)

$this->rand_arr=range(1,3500);//35%是1.0到1.1

$this->rand_arr1=range(3501,7000);//35%是1.1到1.2

$this->rand_arr2=range(7001,10000);//30%是1.2到1.95

$this->simplered=666;

}

public

function

redval()

{

$maxrp=$this->maxred();//隨機(jī)最大紅包金額

if($maxrp!=$this->simplered)

{

if(in_array($this->rid,$this->rand_arr))

{

$red_val=$this->red_config[0];

$min=$red_val['min']*100;

$max=$red_val['max']*100;

$this->red=mt_rand($min,$max);

$this->red=$this->red/100;

}

elseif(in_array($this->rid,$this->rand_arr1))

{

$red_val=$this->red_config[1];

$min=$red_val['min']*100;

$max=$red_val['max']*100;

$red=mt_rand($min,$max);

$this->red=$this->red/100;

}

elseif(in_array($this->rid,$this->rand_arr2))

{

$red_val=$this->red_config[2];

$min=$red_val['min']*100;

$max=$red_val['max']*100;

$this->red=mt_rand($min,$max);

$this->red=$this->red/100;

}

}

else

{

$this->red=$maxrp;

}

return

$this->red?$this->red:1;

}

protected

function

maxred()

{

$rid=mt_rand(1,100000);

$rid1=mt_rand(1,100000);

$red=0;

$dff=$rid-$rid1;

if($dff

>

0)

{

if(($rid1%$rid1)==$this->simplered)

{

$red=$this->simplered;

}

}

else

{

if(($rid1%$rid)==$this->simplered)

{

$red=$this->simplered;

}

}

return

$red;

}

}

?><?php

namespace

RedClient\Redpack;

/*********

先在公共平臺(tái)配置授權(quán)的域名;

然后才能通過(guò),

網(wǎng)頁(yè)授權(quán)方式獲取微信用戶基本信息

網(wǎng)頁(yè)授權(quán)流程分為四步:

1.引導(dǎo)用戶進(jìn)入授權(quán)頁(yè)面同意授權(quán),獲取code

2.通過(guò)code換取網(wǎng)頁(yè)授權(quán)access_token(與基礎(chǔ)支持中的access_token不同)

3.如果需要,開發(fā)者可以刷新網(wǎng)頁(yè)授權(quán)access_token,避免過(guò)期

4.通過(guò)網(wǎng)頁(yè)授權(quán)access_token和openid獲取用戶基本信息

**********/

class

Oauth

{

protected

$appid='';

protected

$redirect_uri='';

protected

$state='';//mt_rand(100,999);

protected

$appsecret='';

protected

$data=array('flag'=>0,'msg'=>'','data'=>'');

public

function

__construct()

{

$this->appid='appid';//

$this->appsecret='secret';//;

$this->state=mt_rand(100,999);

}

//引導(dǎo)用戶訪問鏈接處理函數(shù)

public

function

index($redirect_uri)

{

$this->redirect_uri=urlencode($redirect_uri);//微信自動(dòng)跳轉(zhuǎn)到$redirect_uri

header('location:/connect/oauth3/authorize?appid='.$this->appid.'&redirect_uri='.$this->redirect_uri.'/oauth.php&response_type=code&scope=snsapi_userinfo&state='.$this->state.'&connect_redirect=1#wechat_redirect');

}

public

function

getCode($code='',$state='',$token='',$webToken='')

{

$data=array(

'errorno'=>'',

'errormsg'=>'',

'data'=>''

);

if(empty($code))

{

$this->data['flag']=0;

$this->data['msg']='授權(quán)失?。?;

}

else

{

/*

1獲取webtoken

2獲取reflash_token

3獲取用戶信息

*/

$token_url

=

'/sns/oauth3/access_token?appid='.$this->appid.'&secret='.$this->appsecret.'&code='.$code.'&grant_type=authorization_code';

$token

=

json_decode(file_get_contents($token_url));

if

(isset($token->errcode))

{

$data['errorno']=$token->errcode;

$data['errormsg']=$token->errmsg;

}

else

{

$access_token_url

=

'/sns/oauth3/refresh_token?appid='.$this->appid.'&grant_type=refresh_token&refresh_token='.$token->refresh_token;

//轉(zhuǎn)成對(duì)象

$accessToken

=

json_decode(file_get_contents($access_token_url));

if

(isset($accessToken->errcode))

{

$data['errorno']=$token->errcode;

$data['errormsg']=$token->errmsg;

}

else

{

$user_info_url

=

'/sns/userinfo?access_token='.$accessToken->access_token.'&openid='.$accessToken->openid.'&lang=zh_CN';

//轉(zhuǎn)成對(duì)象

$userInfo

=

json_decode(file_get_contents($user_info_url));

if

(isset($userInfo->errcode))

{

$data['errorno']=$token->errcode;

$data['errormsg']=$token->errmsg;

}

else

{

$data['data']=$userInfo;

}

}

}

}

return

$data;

}

}

?><?php

/******

用于企業(yè)向微信用戶個(gè)人發(fā)現(xiàn)金紅包

目前支持向指定微信用戶的openid發(fā)放指定金額紅包。

(獲取openid參見微信公眾平臺(tái)開發(fā)者文檔:

網(wǎng)頁(yè)授權(quán)獲取用戶基本信息)

****/

namespace

RedClient\Redpack;

class

SendRedPack

{

private

$config=array(

'nonce_str'=>'',//隨機(jī)字符串,不長(zhǎng)于32位

'sign'=>'',//簽名

'mch_billno'=>'',//商戶訂單號(hào)

'mch_id'=>'1111sdfsafsaddf',//微信支付分配的商戶號(hào)

'wxappid'=>'sddafdsadfdsafdsdd',//微信分配的公眾賬號(hào)ID

'send_name'=>'',//紅包發(fā)送者名稱

're_openid'=>'',//接受紅包的用戶,用戶在wxappid下的openid

'total_amount'=>'',//付款金額,單位分

'total_num'=>'',//紅包發(fā)放總?cè)藬?shù)

'wishing'=>'',//紅包祝福語(yǔ)

'client_ip'=>'',//調(diào)用接口的機(jī)器Ip地址

'act_name'=>'',//活動(dòng)名稱

'remark'=>'',//

備注信息

);

protected

$key='';

protected

$url='/mmpaymkttransfers/sendredpack';

protected

$requestXml='';

//設(shè)置必要參數(shù)

public

function

setFields($conf=array())

{

foreach($conf

as

$k=>$v)

{

if(isset($this->config[$k])

&&

!empty($v))

{

$this->config[$k]=$v;

}

}

$this->config['mch_billno']=$this->billno();

$this->config['nonce_str']=$this->createNonceStr();

$this->createSign($conf);

$this->createXml();

//echo

$this->requestXml;

}

protected

function

billno()

{

return

$this->config['mch_id'].time().md5(mt_rand(1000,9999));

}

/*

//檢查必要參數(shù)是否為空!

public

function

checkConfig()

{

$flag=true;

foreach($this->config

as

$k=>$v)

{

if(empty($v))

{

$flag=false;

break;

}

}

}

*/

//隨機(jī)字符串,不長(zhǎng)于32位

public

function

createNonceStr(

$len=32

)

{

$strs

=

"abcdefghijklmnopqrstuvwxyz0123456789";

$str

="";

$len=$len<=32?$len:32;

for

(

$i

=

0;

$i

<

$len;

$i++

)

{

$str.=

substr($strs,

mt_rand(0,

strlen($strs)-1),

1);

}

return

$str;

}

//格式化參數(shù)

public

function

formatParam($config=array(),$flag=1)

{

$format='';

if(!empty($config))

{

ksort($config);

foreach($config

as

$k=>$v)

{

if($flag)

{

$v=urlencode($v);

}

if($flag==0

&&

strtolower($k)=='sign')

{

continue;

}

$format.=$k.'='.$v.'&';

}

$format=trim($format,'&');

}

return

$format;

}

//創(chuàng)建SIGNATURE

protected

function

createSign($config)

{

$format=$this->formatParam($config,0);

$format.='&key='.$this->key;

$signature=strtoupper(md5($format));

$this->config['sign']=$signature;

return

true;//$signature;

}

//創(chuàng)建xml格式數(shù)據(jù)

protected

function

createXml()

{

$xml='<xml>';

foreach($this->config

as

$k=>$v)

{

if(!empty($v))

{

$xml.='<'.$k.'><![CDATA['.$v.']]></'.$k.'>';

}

}

$xml.='</xml>';

$this->requestXml=$xml;

}

//XML格式數(shù)據(jù)轉(zhuǎn)換為數(shù)組

public

function

createArray($xml='')

{

$arr

=

json_decode(json_encode(simplexml_load_string($xml,

'SimpleXMLElement',

LIBXML_NOCDATA)),

true);

return

$arr;

}

//發(fā)送紅包

public

function

requestXml($timeout=30,$header=array())

{

$ch

=

curl_init();

//超時(shí)時(shí)間

curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,

1);

curl_setopt($ch,CURLOPT_URL,$this->url);

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);

//默認(rèn)格式為PEM,可以注釋

curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');

curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).'/apiclient_cert.pem');//pem證書地址

//默認(rèn)格式為PEM,可以注釋

curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');

curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).'/apiclient_key.pem');//key證書地址

curl_setopt($ch,CURLOPT_CAINFO,'PEM');

curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).'/rootca.pem');//CA證書地址

//兩個(gè)文件合成一個(gè).pem文件

//curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/all.pem');

if(

count($header)

>=

1

)

{

curl_setopt($ch,

CURLOPT_HTTPHEADER,

$header);

}

curl_setopt($ch,CURLOPT_POST,

1);

curl_setopt($ch,CURLOPT_POSTFIELDS,$this->requestXml);

$data

=

curl_exec($ch);

var_dump($data);

if($data)

{

curl_close($ch);

var_dump($data);

return

$data;

}

else

{

$error

=

curl_errno($ch);

echo

'ERROR:'.$error;

curl_close($ch);

return

false;

}

}

//返回非空值,非NULL

public

function

notEmpty($val='')

{

$return='';

if(null

!=$val

&&

strlen($val)

!=

0)

{

$return=$val;

}

return

$return?$return:false;

}

}

?><?php

namespace

RedClient\Redpack;

class

WeiXinInfo

{

private

$AppID='appid';

private

$AppSecret='secret';

private

$grant_type='client_credential';

private

$url='/cgi-bin/token';

public

function

__construct()

{

//$arr=array('access_token'=>'1','expires'=>'7200');

}

//設(shè)置獲取ACCESSTOKEN

的URL

public

function

setUrl()

{

return

$this->url=$this->url.'?grant_type='.$this->grant_type.'&appid='.$this->AppID.'&secret='.$this->AppSecret;

}

//獲取APPID,SECRET

public

function

getAppid()

{

$sql='select

appid,secret

from

ly_appid

where

flag=1';

$model=M();

$result=$model->query($sql);

if(!empty($result))

{

$this->AppID=$result[0]['appid'];

$this->AppSecret=$result[0]['secret'];

return

$result[0];

}

}

public

function

object2array($object)

{

if

(is_object($object))

{

foreach

($object

as

$key

=>

$value)

{

$array[$key]

=

$value;

}

}

else

{

$array

=

$object;

}

return

$array;

}

//檢驗(yàn)URL有效

public

function

checkUrl()

{

$signature=isset($_GET['signature'])?strip_tags(trim($_GET['signature'])):'';

$timestamp=isset($_GET['timestamp'])?strip_tags(trim($_GET['timestamp'])):'';

$nonce=isset($_GET['nonce'])?strip_tags(trim($_GET['nonce'])):'';

$echostr=isset($_GET['echostr'])?$_GET['echostr']:'';

if(!empty($signature)

&&

!empty($timestamp)

&&

!empty($nonce))

{

if($this->checkSign($signature,$timestamp,$nonce))

{

echo

$echostr;

return

true;

}

else

{

return

false;

}

}

}

//驗(yàn)證SIGNATURE是否有效

private

function

checkSign($sign,$timestamp,$nonce)

{

$token=$this->getAccessToken();

//$token=$this->object2array($token);

$sign_arr=array($token,$timstamp,$nonce);

sort($sign_arr,SORT_STRING);

$signStr=implode($sign_arr);

$signStr=sha1($signStr);

if(strtoupper($signStr)==strtoupper($sign))

{

return

true;

}

return

false;

}

//通過(guò)微信接口獲取微信Access_Token

public

function

getAccessToken()

{

$token='';

$this->setUrl();

$check=$this->checkToken();

if(session('?'.md5('getaccesstoken'))

&&

$check)

{

$tokens=session(md5('getaccesstoken'));

$token=$tokens->access_token;

}

else

{

$result=file_get_contents($this->url);

$result=json_decode($result);

$token=$result->access_token;

$result->expires_in=$result->expires_in+time();

session(md5('getaccesstoken'),$result);

}

return

$token;

}

//檢查微信ACCESS_TOKEN是否有效

public

function

checkToken()

{

if(session('?'.md5('getaccesstoken'))

&&

session(md5('getaccesstoken')))

{

$time=time();

$token=session(md5('getaccesstoken'));

if($token->expires_in-$time

>

30)

{

return

true;

}

else

{

session(md5('getaccesstoken'),null);

}

}

return

false;

}

//保存微信ACCESSTOKEN到數(shù)據(jù)庫(kù)

public

function

saveAccessToken()

{

$token=$this->getAccessToken();

$sql='select

`id`,`rate`,token,ex_time,createtime

from

ly_token

where

token="'.$token.'"

where

appid="'.$this->AppID.'"

AND

secret="'.$this->AppSecret.'"';

$model=M();

$result=$model->query($sql);

if(!empty($result))

{

$time=time();

$expires=$time-$result[0]['createtime'];

if($result[0]['ex_time']-$expires

>

0)

{

return

$result[0]['token'];

}

else

{

$token=$this->getAccessToken();

if(!empty($token))

{

$token=json_decode($token);

if(!isset($token['errcode'])

or

!$token['errcode'])

{

if(isset($token['access_token'])

&&

$token['access_token'])

{

$data['access_token']=$token['access_token'];

$data['createtime']=$time;

$data['ex_time']=$token['expires_in'];

$data['rate']=$result[0]['rate']+1;

//$sql='update

ly_token

set

token="'.$token['access_token'].'"

,createtime='.$time.',ex_time='.$token['expires_in'].'

where

`id`='.$result[0]['id'];

$model=M('token');

溫馨提示

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

評(píng)論

0/150

提交評(píng)論