首页 > 语言 > PHP > 正文

php版微信小店API二次开发及使用示例

2024-05-04 23:52:15
字体:
来源:转载
供稿:网友

本文实例讲述了php版微信小店API二次开发及使用方法。分享给大家供大家参考,具体如下:

1. weixiaodian.php页面:

<?php  class wXd  {    public $AppID = "";    public $AppSecret = "";    public $OutPut = "";    public $AccessToken = "";    public $ID = "";    public $HandleAT = array();    public $Logistics = array();    public function __construct($ID = '0'){      $this->ID = $ID;      $this->sLogisticsList();    }    public function cUrlRequest($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    public function sAcessToken(){      $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    public function pAccessToken($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    public function gAccessToken(){      $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;    }    //获取所有商品    public function gStateProduct($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) );    }    //设置微小店物流支持列表    public function sLogisticsList(){      $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'] = "易迅快递";    }    //获取订单详情    public function gOrderInfo($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) );    }    //查询全部订单    public function gOrderAll($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 +1 month -1 day"));        $data = json_encode($data);      }      $ResData = $this->cUrlRequest($url,$data);      print_r( json_decode($ResData) );    }    //设置订单发货    public function sOrderDelivery($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) );    }    //关闭订单    public function sOrderClose($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. 页面执行代码

<?phpinclude_once 'class/weixiaodian.php';$wXd = new wXd();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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选