热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信微小店API二次开发-PHP源码

微信微小店API二次开发

通过微信微小店API控制,微信订单处理。使其用户可以在会员卡中查看订单信息。

1. [文件] weixiaodian.php

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 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 '
'; 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://www.php1.cn/ 
             //{"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 "
";
             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. [代码]页面执行代码

";
    
    //查询全部商品
    $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 "
";

推荐阅读
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。使用Gson解析json成对象时,默认将json里对应字段的值解析到java对象里对应字段的属性里面。然而,当我们自己定义的java对象里的属性名与json里的字段名不一样时,我们可以使用@SerializedName注解来将对象里的属性跟json里字段对应值匹配起来。本文介绍了使用@SerializedName注解解析json数据的方法,并给出了具体的使用示例。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
author-avatar
幸运幸福一家人1314_332_887
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有