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

5年以前  |  阅读数:804 次  |  编程语言:PHP 

本文实例讲述了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. 页面执行代码


    <?php
    include_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微信开发技巧汇总》、《PHP编码与转码操作技巧汇总》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例