微信API接⼝整理
总结的⼀些微信API接⼝,包括微信⽀付、微信红包、微信卡券、微信⼩店等。
微信⼊⼝绑定,微信事件处理,微信API全部操作包含在这些⽂件中。
微信⽀付、微信红包、微信卡券、微信⼩店。
[代码]
<?php
include_once'';
$wcObj=newWeChat("YOUKUIYUAN");
$wcObj->wcValid();
[代码]微信⼊⼝类
<?php
/**
*Descriptionofwechat
*
*@authorAdministrator
*/
classWeChatextendsWxApi{
public$token="";
//putyourcodehere
publicfunction__construct($token=""){
parent::__construct();
$this->token=$token;
}
publicfunctionwcCheckSignature(){
try{
if(empty($this->token))血战小朱庄 {
thrownewException('TOKENisnotdefined!');
}
$signature=$_GET["signature"];
$timestamp=$_GET["timestamp"];
$nonce=$_GET["nonce"];
$token=$this->token;
$tmpArr=array($token,$timestamp,$nonce);
//uSORT_STRINGrule
sort($tmpArr,SORT_STRING);
$tmpStr=implode($tmpArr);
$tmpStr=sha1($tmpStr);
if($tmpStr==$signature){
returntrue;
}el{
returnfal;
}
}
catch(Exception$e){
echo'Message:'.$e->getMessage();
}
}
publicfunctionwcValid(){
$echoStr=ist($_GET["echostr"])&&!empty($_GET["echostr"])?addslashes($_GET["echostr"]):NULL;
if(is_null($echoStr)){
$this->wcMsg();
}
el{
//validsignature,option
if($this->wcCheckSignature()){
echo$echoStr;
exit;
}
el{
exit();
}
}
}
publicfunctionwcMsg(){
//getpostdata,Maybeduetothedifferentenvironments
$postStr=ist($GLOBALS["HTTP_RAW_POST_DATA"])&&!empty($GLOBALS["HTTP_RAW_POST_DATA"])?
$GLOBALS["HTTP_RAW_POST_DATA"]:"";
if(!empty($postStr)){
libxml_disable_entity_loader(true);
$postObj=simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);
$this->zcLog(TRUE,$postObj);
$fromUrname=$postObj->FromUrName;
$toUrname=$postObj->ToUrName;
$MsgType=$postObj->MsgType;
if($MsgType=='event'){//执⾏事件相应
$Event=$postObj->Event;
switch($Event){
ca'subscribe'://关注
break;
ca'unsubscribe'://取消关注
break;
ca'SCAN'://扫描
break;
ca'LOCATION'://地址
break;
ca'CLICK'://点击时间
break;
ca'VIEW'://跳转
break;
ca'card_pass_check'://卡券审核通过
break;
ca'card_not_pass_check'://卡券哈尔滨三日游最佳路线 审核失败
break;
ca'ur_get_card'://⽤户领取卡券
break;
ca'ur_del_card'://⽤户删除卡券
break;
ca'ur_view_card'://⽤户浏览会员卡
break;
ca'ur_consume_card'://⽤户核销卡券
break;
ca'merchant_order'://微⼩店⽤户下单付款
break;
default:
break;
}
}
el{
switch($MsgType){
ca'text'://⽂本格式
break;
ca'image'://图⽚格式
break;
ca'voice'://声⾳
break;
ca'video'://视频
break;
ca'shortvideo'://⼩视频
break;
ca'location'://上传地理位置
break;
ca'link'://链接相应
break;
default:
break;
}
}
$keyword=trim($postObj->Content);
$time=time();
$textTpl="
";
if(!empty($keyword)){
$msgType="text";
$contentStr="Welcometowechatworld!";
$resultStr=sprintf($textTpl,$fromUrname,$toUrname,$time,$msgType,$contentStr);
echo$resultStr;
}
el{
";
}
}
el{
echo"暂时没有任何信息!";
exit;
}
}
//⽇志LOG
publicfunctionzcLog($errcode,$errmsg){
$this->returnAy=array();
$this->returnAy['errcode']=$errcode;
$this->returnAy['errmsg']=$errmsg;
$this->returnAy['errtime']=date("Y-m-dH:i:s",time());
$logfile=fopen("logfile_".date("Ymd",time()).".txt","a+");
$txt=json_encode($this->returnAy)."n";
fwrite($logfile,$txt);
fclo($logfile);
//return$this->returnAy;
}
}
[代码]微信操作类-更新了⾃定义菜单部分
<?php
/********************************************************
*@authorKylerYou
*@version2.0.1
*@us$wxApi=newWxApi();
*@package微信API接⼝陆续会继续进⾏更新
********************************************************/
classWxApi{
//constappId="";
//constappSecret="";
constappId="";
constappSecret="";
//constmchid="";//商户号
//constprivatekey="";//私钥
public$parameters=array();
publicfunction__construct(){
}
/****************************************************
*微信提交API⽅法,返回微信指定JSON
****************************************************/
publicfunctionwxHttpsRequest($url,$data=null){
$curl=curl_init();
curl_topt($curl,CURLOPT_URL,$url);
curl_topt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_topt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
if(!empty($data)){
curl_topt($curl,CURLOPT_POST,1);
curl_topt($curl,CURLOPT_POSTFIELDS,$data);
}
curl_topt($curl,CURLOPT_RETURNTRANSFER,1);
$output=curl_exec($curl);
curl_clo($curl);
return$output;
}
/****************************************************
*微信带证书提交数据-微信红包使⽤
****************************************************/
publicfunctionwxHttpsRequestPem($url,$vars,$cond=30,$aHeader=array()){
$ch=curl_init();
//超时时间
curl_topt($ch,CURLOPT_TIMEOUT,$cond);
curl_topt($ch,CURLOPT_RETURNTRANSFER,1);
//这⾥设置代理,如果有的话
//curl_topt($ch,CURLOPT_PROXY,'10.206.30.98');
//curl_topt($ch,CURLOPT_PROXYPORT,8080);
curl_topt($ch,CURLOPT_URL,$url);
curl_topt($ch,CURLOPT_SSL_VERIFYPEER,fal);
curl_topt($ch,CURLOPT_SSL_VERIFYHOST,fal);
//以下两种⽅式需选择⼀种
//第⼀种⽅法,cert与key分别属于两个.pem⽂件
//默认格式为PEM,可以注释
curl_topt($ch,CURLOPT_SSLCERTTYPE,'PEM');
curl_topt($ch,CURLOPT_SSLCERT,getcwd().'/apiclient_');
//默认格式为PEM,可以注释
curl_topt($ch,CURLOPT_SSLKEYTYPE,'PEM');
curl_topt($ch,CURLOPT_SSLKEY,getcwd().'/apiclient_');
curl_topt($ch,CURLOPT_CAINFO,'PEM');
curl_topt($ch,CURLOPT_CAINFO,getcwd().'/');
//第⼆种⽅式,两个⽂件合成⼀个.pem⽂件
//curl_topt($ch,CURLOPT_SSLCERT,getcwd().'/');
if(count($aHeader)>=1){
curl_topt($ch,CURLOPT_HTTPHEADER,$aHeader);
}
curl_topt($ch,CURLOPT_POST,1);
curl_topt($ch,CURLOPT_POSTFIELDS,$vars);
$data=curl_exec($ch);
if($data){
curl_clo($ch);
return$data;
}
el{
$error=curl_errno($ch);
echo"callfaild,errorCode:$errorn";
curl_clo($ch);
returnfal;
}
}
/****************************************************
*微信获取AccessToken返回指定微信公众号的at信息
****************************************************/
publicfunctionwxAccessToken($appId=NULL,$appSecret=NULL){
$appId=is_null($appId)?lf::appId:$appId;
$appSecret=is_null($appSecret)?lf::appSecret:$appSecret;
$data=json_decode(file_get_contents("access_"));
if($data->expire_time
//echo$appId,$appSecret;
$result=$this->wxHttpsRequest($url);
//print_r($result);
$jsoninfo=json_decode($result,true);
$access_token=$jsoninfo["access_token"];
if($access_token){
$data->expire_time=time()+7000;
$data->access_token=$access_token;
$fp=fopen("access_","w");
fwrite($fp,json_encode($data));
fclo($fp);
}
}
el{
$access_token=$data->access_token;
}
return$access_token;
}
/****************************************************
*微信获取AccessToken返回指定微信公众号的at信息
****************************************************/
publicfunctionwxJsApiTicket($appId=NULL,$appSecret=NULL){
$appId=is_null($appId)?lf::appId:$appId;
$appSecret=is_null($appSecret)?lf::appSecret:$appSecret;
$data=json_decode(file_get_contents("jsapi_"));
if($data->expire_time
$result=$this->wxHttpsRequest($url);
$jsoninfo=json_decode($result,true);
$ticket=$jsoninfo['ticket'];
if($ticket){
$data->expire_time=time()+7000;
$data->jsapi_ticket=$ticket;
$fp=fopen("jsapi_","w");
fwrite($fp,json_encode($data));
fclo($fp);
}
}
el{
$ticket=$data->jsapi_ticket;
}
return$ticket;
}
/****************************************************
*微信通过OPENID获取⽤户信息,返回数组
**********************************南通小题 ******************/
publicfunctionwxGetUr($openId){
$wxAccessToken=$this->wxAccessToken();
$result=$this->wxHttpsRequest($url);
$jsoninfo=json_decode($result,true);
return$jsoninfo;
}
/****************************************************
*微信⽣成⼆维码ticket
****************************************************/
publicfunctionwxQrCodeTicket($jsonData){
$wxAccessToken=$this->wxAccessToken();
$result=$this->wxHttpsRequest($url,$jsonData);
return$result;
}
/****************************************************
*山中古诗 微信通过ticket⽣成⼆维码
****************************************************/
publicfunctionwxQrCode($ticket){
return$url;
}
/****************************************************
*发送⾃定义的模板消息
****************************************************/
publicfunctionwxSetSend($tour,$template_id,$url,$data,$topcolor='#7B68EE'){
$template=array(
'tour'=>$tour,
'template_id'=>$template_id,
'url'=>$url,
'topcolor'=>$topcolor,
'data'=>$data
);
$jsonData=json_encode($template);
$result=$this->wxSendTemplate($jsonData);
return$result;
}
/****************************************************
*微信设置OAUTH跳转URL,返回字符串信息-SCOPE=snsapi_ba//验证时不返回确认页⾯,只能获取OPENID
****************************************************/
publicfunctionwxOauthBa($redirectUrl,$state="",$appId=NULL){
$appId=is_null($appId)?lf::appId:$appId;
return$url;
}
/****************************************************
*微信设置OAUTH跳转URL,返回字符串信息-SCOPE=snsapi_urinfo//获取⽤户完整信息
****************************************************/
publicfunctionwxOauthUrinfo($redirectUrl,$state="",$appId=NULL){
$appId=is_null($appId)?lf::appId:$appId;
return$url;
}
/*******描述秋天的词语 *********************************************
*微信OAUTH跳转指定URL
****************************************************/
publicfunctionwxHeader($url){
header("location:".$url);
}
/****************************************************
*微信通过OAUTH返回页⾯中获取AT信息
****************************************************/
publicfunctionwxOauthAccessToken($code,$appId=NULL,$appSecret=NULL){
$appId=is_null($appId)?lf::appId:$appId;
$appSecret=is_null($appSecret)?lf::appSecret:$appSecret;
$result=$this->wxHttpsRequest($url);
//print_r($result);
$jsoninfo=json_decode($result,true);
//$access_token=$jsoninfo["access_token"];
return$jsoninfo;
}
/****************************************************
*微信通过OAUTH的Access_Token的信息获取当前⽤户信息//只执⾏在snsapi_urinfo模式运⾏
****************************************************/
publicfunctionwxOauthUr($OauthAT,$openId){
$result=$this->wxHttpsRequest($url);
$jsoninfo=json_decode($result,true);
return$jsoninfo;
}
/****************************************************
*创建⾃定义菜单
****************************************************/
publicfunctionwxMenuCreate($jsonData){
$wxAccessToken=$this->wxAccessToken();
$result=$this->wxHttpsRequest($url,$jsonData);
$jsoninfo=json_decode($result,true);
return$jsoninfo;
}
/****************************************************
*获取⾃定义菜单
****************************************************/
publicfunctionwxMenuGet(){
$wxAccessToken=$this->wxAccessToken();
$result=$this->wxHttpsRequest($url);
$jsoninfo=json_decode($result,true);
return$jsoninfo;
}
/****************************************************
*删除⾃定义菜单
****************************************************/
publicfunctionwxMenuDelete(){
$wxAccessToken=$this->wxAccessToken();
$result=$this->wxHttpsRequest($url);
$jsoninfo=json_decode($result,true);
return$jsoninfo;
}
/****************************************************
*获取第三⽅⾃定义菜单
****************************************************/
publicfunctionwxMenuGetInfo(){
$wxAccessToken=$this->wxAccessToken();
$result=$this->wxHttpsRequest($url);
$jsoninfo=json_decode($result,true);
return$jsoninfo;
}
/*****************************************************
*⽣成随机字符串-最长为32位字符串
*****************************************************/
publicfunctionwxNonceStr($length=16,$type=FALSE){
$chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str="";
for($i=0;$i<$length;$i++){
$str.=substr($chars,mt_rand(0,strlen($chars)-1),1);
}
if($type==TRUE){
returnstrtoupper(md5(time().$str));
}
el{
return$str;
}
}
/*******************************************************
*微信商户订单号-最长28位字符串
*******************************************************/
publicfunctionwxMchBillno($mchid=NULL){
if(is_null($mchid)){
if(lf::mchid==""||is_null(lf::mchid)){
$mchid=time();
}
el{
$mchid=lf::mchid;
}
}
el{
$mchid=substr(addslashes($mchid),0,10);
}
returndate志愿服务感悟 ("Ymd",time()).time().$mchid;
}
/*******************************************************
*微信格式化数组变成参数格式-⽀持url加密
*******************************************************/
publicfunctionwxSetParam($parameters){
if(is_array($parameters)&&!empty($parameters)){
$this->parameters=$parameters;
return$this->parameters;
}
el{
returnarray();
}
}
/*******************************************************
*微信格式化数组变成参数格式-⽀持url加密
*******************************************************/
publicfunctionwxFormatArray($parameters=NULL,$urlencode=FALSE){
if(is_null($parameters)){
$parameters=$this->parameters;
}
$restr="";//初始化空
ksort($parameters);//排序参数
foreach($parametersas$k=>$v){//循环定制参数
if(null!=$v&&"null"!=$v&&"sign"!=$k){
if($urlencode){//如果参数需要增加URL加密就增加,不需要则不需要
$v=urlencode($v);
}
$restr.=$k."=".$v."&";//返回完整字符串
}
}
if(strlen($restr)>0){//如果存在数据则将最后“&”删除
$restr=substr($restr,0,strlen($restr)-1);
}
return$restr;//返回字符串
}
/*******************************************************
*微信MD5签名⽣成器-需要将参数数组转化成为字符串[wxFormatArray⽅法]
*******************************************************/
publicfunctionwxMd5Sign($content,$privatekey){
try{
if(is_null($p胃口不好 rivatekey)){
thrownewException("财付通签名key不能为空!");
}
if(is_null($content)){
thrownewException("财付通签名内容不能为空");
}
$signStr=$content."&key=".$privatekey;
returnstrtoupper(md5($signStr));
}
catch(Exception$e)
{
die($e->getMessage());
}
}
/*******************************************************
*微信Sha1签名⽣成器-需要将参数数组转化成为字符串[wxFormatArray⽅法]
*******************************************************/
publicfunctionwxSha1Sign($content){
try{
if(is_null($content)){
thrownewException("签名内容不能为空");
}
//$signStr=$content;
returnsha1($content);
}
catch(Exception$e)
{
die($e->getMessage());
}
}
/*******************************************************
*微信jsApi整合⽅法-通过调⽤此⽅法获得jsapi数据
*******************************************************/
publicfunctionwxJsapiPackage(){
$jsapi_ticket=$this->wxJsApiTicket();
//注意URL⼀定要动态获取,不能hardcode.
$url=$protocol.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
$timestamp=time();
$nonceStr=$this->wxNonceStr();
$signPackage=array(
"jsapi_ticket"=>$jsapi_ticket,
"nonceStr"=>$nonceStr,
"timestamp"=>$timestamp,
"url"=>$url
);
//这⾥参数的顺序要按照key值ASCII码升序排序
$rawString="jsapi_ticket=$jsapi_ticket&noncestr=$nonceStrtamp=$timestamp&url=$url";
//$rawString=$this->wxFormatArray($signPackage);
$signature=$this->wxSha1Sign($rawString);
$signPackage['signature']=$signature;
$signPackage['rawString']=$rawString;
$signPackage['appId被动语态的构成 ']=lf::appId;
return$signPackage;
}
/*******************************************************
*将数组解析XML-微信红包接⼝
*******************************************************/
publicfunctionwxArrayToXml($parameters=NULL){
if(is_null($parameters)){
$parameters=$this->parameters;
}
if(!is_array($parameters)||empty($parameters)){
die("参数不为数组⽆法解析");
}
$xml="
foreach($arras$key=>$val)
{
if(is_numeric($val))
{
$xml.="<".$key.">".$val."".$key.">";
}
el
$xml.="<".$key.">".$key.">";
}
$xml.="";
return$xml;
}
/*******************************************************
*微信卡券:上传LOGO-需要改写动态功能
*******************************************************/
publicfunctionwxCardUpdateImg(){
$wxAccessToken=$this->wxAccessToken();
//$data['access_token']=$wxAccessToken;
$data['buffer']='@D:workspacehtdocsyky_';
$result=$this->wxHttpsRequest($url,$data);
$jsoninfo=json_decode($result,true);
return$jsoninfo;
}
/*******************************************************
*微信卡券:获取颜⾊
*******************************************************/
publicfunctionwxCardColor(){
$wxAccessToken=$this->wxAccessToken();
$result=$this->wxHttpsRequest($url);
$jsoninfo=json_decode($result,true);
return$jsoninfo;
}
/*******************************************************
*微信卡券:创建卡券
*******************************************************/
publicfunctionwxCardCreated($jsonData){
$wxAccessToken=$this->wxAccessToken();
$result=$this->wxHttpsRequest($url,$jsonData);
$jsoninfo=json_decode($result,true);
return$jsoninfo;
}
/*******************************************************
*微信卡券:JSAPI卡券Package-基础参数没有附带任何值-再⽣产环境中需要根据实际情况进⾏修改
*******************************************************/
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';
$resultAr刘邦后人 ray['card_ext']['timestamp']=$timestamp;
$resultArray['card_ext']['signature']=$string;
return$resultArray;
}
}
[代码]微信JSAPI
<?php
require_once'';
$wx=newWxApi();
//通过⽹页获取openid
//if(!ist($_GET['code'])){
//}
//el{
//$CODE=$_GET['code'];
//$Info=$wx->wxOauthAccessToken($CODE);
//print_r($Info);
//$openId=$Info['openid'];
//}
$signPackage=$wx->wxJsapiPackage();
//print_r($signPackage);
$kqInfo=$wx->wxCardPackage("");
$listInfo=$wx->wxCardListPackage();
>
({
debug:fal,
appId:'<?phpecho$signPackage["appId"];?>',
timestamp:<?phpecho$signPackage["timestamp"];?>,
nonceStr:'<?phpecho$signPackage["nonceStr"];?>',
signature:'<?phpecho$signPackage["signature"];?>',
jsApiList:[
//所有要调⽤的API都要加到这个列表中
'onMenuShareTimeline',
'onMenuShareAppMessage',
'addCard',
'openCard'
]
});
(function(){
//在这⾥调⽤API
ShareAppMessage({
title:'互联⽹之⼦',
desc:'在长⼤的过程中,我才慢慢发现,我⾝边的所有事,别⼈跟我说的所有事,那些所谓本来如此,注定如此的事,它们其实没有
⾮得如此,事情是可以改变的。更重要的是,有些事既然错了,那就该做出改变。',
trigger:function(res){
//不要尝试在trigger中使⽤ajax异步请求修改本次分享的内容,因为客户端分享操作是⼀个同步操作,这时候使⽤ajax的回包会还
没有返回
alert('⽤户点击发送给朋友');
},
success:function(res){
alert('已分享');
},
cancel:function(res){
alert('已取消');
},
fail:function(res){
alert(ify(res));
}
});
elector('#ShareTimeLine').nclick=function(){
ShareTimeline({
title:'互联⽹之⼦',
trigger:function(res){
//不要尝试在trigger中使⽤ajax异步请求修改本次分享的内容,因为客户端分享操作是⼀个同步操作,这时候使⽤ajax的回包会
还没有返回
alert('⽤户点击分享到朋友圈');
},
success:function(res){
alert('已分享');
},
cancel:function(res){
alert('已取消');
},
fail:function(res){
alert(ify(res));
}
});
};
elector('#batchAddCard').nclick=function(){
d({
cardList:[
{
cardId:'p7G0Cj_1HGF2nijO4sTlVTzawFhI',
cardExt:'{"timestamp":"<?phpecho$kqInfo['cardExt']['timestamp'];?>","signature":"<?phpecho$kqInfo['cardExt']
['signature'];?>"}'
}
],
success:function(res){
varcardList=st;//添加的卡券列表信息
alert(cardList);
},
cancel:function(res){
alert('已取消');
},
fail:function(res){
alert(ify(res));
}
});
};
varshareData={
title:'微信JS-SDKDemo',
desc:'微信JS-SDK,帮助第三⽅为⽤户提供更优质的移动web服务',
};
ShareAppMessage(shareData);
ShareTimeline(shareData);
});
varreadyFunc=function尊重自己 onBridgeReady(){
//绑定关注事件
elector('#openCard').addEventListener('click',
function(e){
('chooCard',{
"app_id":"<?phpecho$listInfo['app_id']?>",
"location_id":'',
"sign_type":"SHA1",
"card_sign":"<?phpecho$listInfo['card_sign']?>",
"card_id":"<?phpecho$listInfo['card_id']?>",
"card_type":"<?phpecho$listInfo['card_type']?>",
"time_stamp":"<?phpecho$listInfo['time_stamp']?>",
"nonce_str":"<?phpecho$listInfo['nonce_str']?>"
},
function(res){
alert(_msg+_card_info);
$("#showInfo").empty().append(_msg+_card_info);
});
});
}
if(typeofWeixinJSBridge==="undefined"){
ntListener('WeixinJSBridgeReady',readyFunc,fal);
}el{
readyFunc();
}
[代码]创建卡券
$kqinfo=array("card"=>array());
$kqinfo['card']['card_type']='GENERAL_COUPON';
$kqinfo['card']['general_coupon']=array('ba_info'=>array(),'default_detail'=>array());
$kqinfo['card']['general_coupon']['ba_info']['logo_url']='URL';
$kqinfo['card']['general_coupon']['ba_info']['code_type']='CODE_TYPE_QRCODE';
$kqinfo['card']['general_coupon']['ba_info']['brand_name']='';
$kqinfo['card']['general_coupon']['ba_info']['title']='测试卡券';
$kqinfo['card']['general_coupon']['ba_info']['color']='Color030';
$kqinfo['card']['general_coupon']['ba_info']['notice']='测试测试测试';
$kqinfo['card']['general_coupon']['ba_info']['description']='这是⼀张优惠券';
$kqinfo['card']['general_coupon']['ba_info']['date_info']['type']=1;
$kqinfo['card']['general_coupon']['ba_info']['date_info']['begin_timestamp']=time();
$kqinfo['card']['general_coupon']['ba_info']['date_info']['end_timestamp']=time()+100*24*3600;
$kqinfo['card']['general_coupon']['ba_info']['sku']['quantity']=100000;
$kqinfo['card']['general_coupon']['default_detail']='测试数据n测试数据n测试数据';
//var_dump($kqinfo);
//$kqinfo=json_encode($kqinfo);
$kqinfo=C::enJson($kqinfo);
//print_r($kqinfo);
//$resultData=$wx->wxCardCreated($kqinfo);
本文发布于:2023-03-16 18:05:57,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678961158280179.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:微信小店.doc
本文 PDF 下载地址:微信小店.pdf
留言与评论(共有 0 条评论) |