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

本文实例讲述了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>;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


网页授权获取用户信息的方法
报错config:invalid signature的解决方案
微信开发百思不得姐实战教程
详解微信开发input输入框
教你libco是如何支撑巨大数据信息量的
微信二次开发之文本消息请求与发送
微信开发H5轻游戏
scroll-view完成列表页的方法详解
Java微信开发之自定义菜单的创建
微信开发之input控件的实例详解
微信开发Emoji表情的实例教程
微信开发中详解textarea的使用方法
微信开发中使元素占满全屏的方法介绍
微信开发之数据访问的方法详解
微信二次开发之各类型消息封装
微信开发之数据库操作
如何获取微信好友的地理位置信息
分享3款微信开发开源框架
微信开发之获取服务器IP
微信开发之公交换乘功能代码详解