Home  >  Article  >  WeChat Applet  >  PHP version of WeChat store API secondary development and usage examples

PHP version of WeChat store API secondary development and usage examples

黄舟
黄舟Original
2017-01-03 09:17:371983browse

The example in this article describes the secondary development and usage of the PHP version of WeChat Store API. Share it with everyone for your reference, the details are as follows:

1. weixiaodian.php page:

<?php
  class wXd
  {
    public $AppID = "";
    public $AppSecret = "";
    public $OutPut = "";
    public $AccessToken = "";
    public $ID = "";
    public $HandleAT = array();
    public $Logistics = array();
    public function __construct($ID = &#39;0&#39;){
      $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 &#39;<pre class="brush:php;toolbar:false">&#39;; 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[&#39;DOCUMENT_ROOT&#39;]."/jSon_file/access_token_".$this->ID.".json";
      //print_r($Path);
      if(!file_exists($Path)){
        touch($Path);
        chmod($Path,0777);
      }
      $data[&#39;expire_time&#39;] = time() + 7000;
      $data[&#39;access_token&#39;] = $accesstoken;
      $fp = fopen($Path, "w");
      fwrite($fp, json_encode($data));
      fclose($fp);
    }
    //读取ACCESSTOKEN
    public function gAccessToken(){
      $Path = $_SERVER[&#39;DOCUMENT_ROOT&#39;]."/jSon_file/access_token_".$this->ID.".json";
      if(!file_exists($Path)){
        $data[&#39;expire_time&#39;] = 0;
        $data[&#39;access_token&#39;] = &#39;&#39;;
      }
      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,&#39;{"status": &#39;.$state.&#39;}&#39;);
       //echo "<pre class="brush:php;toolbar:false">";
       print_r( json_decode($ResData) );
    }
    //设置微小店物流支持列表
    public function sLogisticsList(){
      $this->Logistics[&#39;Fsearch_code&#39;] = "邮政EMS";
      $this->Logistics[&#39;002shentong&#39;] = "申通快递";
      $this->Logistics[&#39;066zhongtong&#39;] = "中通速递";
      $this->Logistics[&#39;056yuantong&#39;] = "圆通速递";
      $this->Logistics[&#39;042tiantian&#39;] = "天天快递";
      $this->Logistics[&#39;003shunfeng&#39;] = "顺丰速运";
      $this->Logistics[&#39;059Yunda&#39;] = "韵达快运";
      $this->Logistics[&#39;064zhaijisong&#39;] = "宅急送";
      $this->Logistics[&#39;020huitong&#39;] = "汇通快运";
      $this->Logistics[&#39;zj001yixun&#39;] = "易迅快递";
    }
    //获取订单详情
    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,&#39;{"order_id": "&#39;.$order.&#39;"}&#39;);
      //$url = "https://api.weixin.qq.com/merchant/order/getbyfilter?access_token=".$this->AccessToken;
      //$ResData = $this->cUrlRequest($url,&#39;{"status": 2}&#39;);
      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(&#39;begintime&#39; => $firstday,&#39;endtime&#39; => 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" => &#39;0&#39;)){
      $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" => &#39;0&#39;);
        $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,&#39;{"order_id": "&#39;.$order.&#39;"}&#39;);
      print_r( json_decode($ResData) );
    }
}

2. Page execution code

<?php
include_once &#39;class/weixiaodian.php&#39;;
$wXd = new wXd();
echo "<pre class="brush:php;toolbar:false">";
//查询全部商品
$wXd->gStateProduct();
//获取订单信息
$wXd->gOrderInfo(&#39;12963133879983601645&#39;);
//关闭订单
$wXd->sOrderClose(&#39;12963133879983600740&#39;);
//发货订单设置
$data[&#39;need_delivery&#39;] = &#39;1&#39;;
$data[&#39;order_id&#39;] = &#39;12963133879983600667&#39;;
$data[&#39;delivery_company&#39;] = &#39;059Yunda&#39;;
$data[&#39;delivery_track_no&#39;] = &#39;1000464090326&#39;;
$wXd->sOrderDelivery($data);
//获取所有订单
$wXd->gOrderAll();
echo "
";

The above is PHP version of WeChat store API secondary development and usage examples. For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn