php教程

超轻量级php框架startmvc

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

更新时间:2020-03-14 21:49:56 作者:startmvc
本文实例讲述了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>";

php版 微信小店 API 二次开发