php版微信小店API二次开发及使用示例
本文实例讲述了php版微信小店API二次开发及使用方法。分享给大家供大家参考,具体如下:
1.weixiaodian.php页面:
<?php
classwXd
{
public$AppID="";
public$AppSecret="";
public$OutPut="";
public$AccessToken="";
public$ID="";
public$HandleAT=array();
public$Logistics=array();
publicfunction__construct($ID='0'){
$this->ID=$ID;
$this->sLogisticsList();
}
publicfunctioncUrlRequest($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;
}
//获取ACCESSTOKEN
publicfunctionsAcessToken(){
$this->HandleAT=$this->gAccessToken();
if($this->HandleAT->expire_time<time()){
$appid=$this->AppID;
$appsecret=$this->AppSecret;
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
$result=https_request($url);
//echo'<pre>';var_dump($result);die;
$jsoninfo=json_decode($result,true);
$access_token=$jsoninfo["access_token"];
$this->pAccessToken($access_token);
return$access_token;
}
else{
return$this->HandleAT->access_token;
}
}
//保存ACCESSTOKEN
publicfunctionpAccessToken($accesstoken){
$Path=$_SERVER['DOCUMENT_ROOT']."/jSon_file/access_token_".$this->ID.".json";
//print_r($Path);
if(!file_exists($Path)){
touch($Path);
chmod($Path,0777);
}
$data['expire_time']=time()+7000;
$data['access_token']=$accesstoken;
$fp=fopen($Path,"w");
fwrite($fp,json_encode($data));
fclose($fp);
}
//读取ACCESSTOKEN
publicfunctiongAccessToken(){
$Path=$_SERVER['DOCUMENT_ROOT']."/jSon_file/access_token_".$this->ID.".json";
if(!file_exists($Path)){
$data['expire_time']=0;
$data['access_token']='';
}
else{
$data=json_decode(file_get_contents($Path));
//print_r($data);
}
return$data;
}
//获取所有商品
publicfunctiongStateProduct($state=0){
//https://api.weixin.qq.com/merchant/getbystatus?access_token=ACCESS_TOKEN
//{"status":0}
$this->AccessToken=$this->sAcessToken();
$url="https://api.weixin.qq.com/merchant/getbystatus?access_token=".$this->AccessToken;
//print_r($this->AccessToken);
$ResData=$this->cUrlRequest($url,'{"status":'.$state.'}');
//echo"<pre>";
print_r(json_decode($ResData));
}
//设置微小店物流支持列表
publicfunctionsLogisticsList(){
$this->Logistics['Fsearch_code']="邮政EMS";
$this->Logistics['002shentong']="申通快递";
$this->Logistics['066zhongtong']="中通速递";
$this->Logistics['056yuantong']="圆通速递";
$this->Logistics['042tiantian']="天天快递";
$this->Logistics['003shunfeng']="顺丰速运";
$this->Logistics['059Yunda']="韵达快运";
$this->Logistics['064zhaijisong']="宅急送";
$this->Logistics['020huitong']="汇通快运";
$this->Logistics['zj001yixun']="易迅快递";
}
//获取订单详情
publicfunctiongOrderInfo($order){
$this->AccessToken=$this->sAcessToken();
//print_r($this->AccessToken);
$url="https://api.weixin.qq.com/merchant/order/getbyid?access_token=".$this->AccessToken;
$ResData=$this->cUrlRequest($url,'{"order_id":"'.$order.'"}');
//$url="https://api.weixin.qq.com/merchant/order/getbyfilter?access_token=".$this->AccessToken;
//$ResData=$this->cUrlRequest($url,'{"status":2}');
print_r(json_decode($ResData));
}
//查询全部订单
publicfunctiongOrderAll($data=array()){
$this->AccessToken=$this->sAcessToken();
$url="https://api.weixin.qq.com/merchant/order/getbyfilter?access_token=".$this->AccessToken;
if(!empty($data)){
$data=json_encode($data);
}
else{
$firstday=strtotime(date("Y-m-01",time()));
$data=array('begintime'=>$firstday,'endtime'=>strtotime("$firstday+1month-1day"));
$data=json_encode($data);
}
$ResData=$this->cUrlRequest($url,$data);
print_r(json_decode($ResData));
}
//设置订单发货
publicfunctionsOrderDelivery($data=array("need_delivery"=>'0')){
$this->AccessToken=$this->sAcessToken();
$url="https://api.weixin.qq.com/merchant/order/setdelivery?access_token=".$this->AccessToken;
if(!empty($data)){
$data=json_encode($data);
}
else{
$data=array("need_delivery"=>'0');
$data=json_encode($data);
}
$ResData=$this->cUrlRequest($url,$data);
print_r(json_decode($ResData));
}
//关闭订单
publicfunctionsOrderClose($order){
$this->AccessToken=$this->sAcessToken();
$url="https://api.weixin.qq.com/merchant/order/close?access_token=".$this->AccessToken;
$ResData=$this->cUrlRequest($url,'{"order_id":"'.$order.'"}');
print_r(json_decode($ResData));
}
}
2.页面执行代码
<?php
include_once'class/weixiaodian.php';
$wXd=newwXd();
echo"<pre>";
//查询全部商品
$wXd->gStateProduct();
//获取订单信息
$wXd->gOrderInfo('12963133879983601645');
//关闭订单
$wXd->sOrderClose('12963133879983600740');
//发货订单设置
$data['need_delivery']='1';
$data['order_id']='12963133879983600667';
$data['delivery_company']='059Yunda';
$data['delivery_track_no']='1000464090326';
$wXd->sOrderDelivery($data);
//获取所有订单
$wXd->gOrderAll();
echo"</pre>";
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP微信开发技巧汇总》、《PHP编码与转码操作技巧汇总》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。