本文实例讲述了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程序设计有所帮助。