zoukankan      html  css  js  c++  java
  • api接口

    <?php
    class Reward
    {
        public $appid;
        public $mch_id;
        public $key;
        public $order_id;
        public function __construct($appid = false,$mch_id = false,$key = false,$order_id = flase)
        {
            if($appid){  
                $this->appid = $appid;
                $this->mch_id = $mch_id;
                $this->key = $key;
                $this->order_id = $order_id; 
            }else{
                $this->appid = '2222';
                $this->mch_id = '131331';
                $this->key = '30815ymdvqi1lk';
            }
          
        }
        public function bonus()
        {
            $orderinfo = D('Order')->where(['order_id'=>$this->order_id])->find();//获取订单信息
            if($orderinfo){
                $store_contact = D('Store_contact')->where(['store_id'=>$orderinfo['store_id']])->find();
                $store = D('Store')->where(array('store_id' => $orderinfo['store_id']))->find();
                $userinfo = D('User')->where(['uid'=>$store['uid']])->find();
                $admin = D('Admin')->field('ep_id')->where(['id'=>$userinfo['invite_admin']])->find();
                //$userinfo1 = D('User')->where(['uid'=>$userinfo['invite_admin']])->find();
                //返回数据
               /*  json_return(1001,$this->order_id.'-'.$store_contact['long'].'-'.$store_contact['lat'].'-'.$orderinfo['order_id'].'-'.$orderinfo['total'].'-'.$orderinfo['store_id'].'-'.$admin['ep_id']);*/
                $data = [];
                $data['order_id'] = $this->order_id;
                $data['lng'] = $store_contact['long'];
                $data['lat'] = $store_contact['lat'];
                $data['total'] = $orderinfo['total'];
                $data['store_id'] = $orderinfo['store_id'];
                $data['ep_id'] = $admin['ep_id'];
                $this->apply($data);
            }else{
                json_return(1001,'无此订单');
            }
        }
        public function apply($data)
        {
            $api = 'http://fen.51ao.com/wap/aaep_test.php';
            $datas=[
            'ep_id'=>$data['ep_id'],
            'lng'=> $data['lng'],
            'lat'=>$data['lat'],
            'order_id'=>$data['order_id'],
            'total'=>$data['total'],
            'store_id'=>$data['store_id'],
            'appid' => $this->appid,
            'mch_id' => $this->mch_id,
            ];
            $xml = $this->arr_xml($datas);
            file_put_contents(PIGCMS_PATH.'/1.txt', $xml);
            $ret = $this->post($api,$xml);
            $ret = $this->xml_arr($ret);
            if($ret['return_code'] == 'Error' ){
                json_return(1001,$ret['msg']);
            }else{
                json_return(0,$ret['msg']);
            }
        }
        //ep用户同步
        public function ep_user($tel,$paw)
        {
            $user = $this->find_user($tel);
            if($user['code'] == 1){
                $user = $this->register($tel,$paw);
                dump($user);die;
            }
    
            if($user['code'] == 0){
                $data['code'] = 0;
                $data['ep_id'] = $user['userId'];
                $data['user_type'] = $user['userType'];
            }else{
                $data['code'] = 1;
            }
            return $data;
    
        }
        //查询api
        public function find_user($tel)
        {
            //$api='https://api.epaikj.com/user/get';
            $api='https://api.epaikj.com/user/get.html';
            $data=[
            'appid'=>$this->appid,
            'mch_id'=>$this->mch_id,
            'mobile'=>$tel,
            'nonce_str'=>$this->randomkey(32),  
            ];
            return json_decode($this->post($api,$this->arr_xml($data)),true);
            
        }
        //注册api
        public function register ($tel,$paw)
        {
            $api='https://api.epaikj.com/user/register.html';
            $data=[
            'appid'=>$this->appid,
            'mch_id'=>$this->mch_id,
            'mobile'=>$tel,
            'password'=>$paw,
            'nonce_str'=>$this->randomkey(32),  
            ];
           return json_decode($this->post($api,$this->arr_xml($data)),true);
                  
    
        }
    
        public function randomkey($length)   
        {   
            $key = '';
            $pattern = '1234567890abcdefghijklmnopqrstuvwxyz   
                         ABCDEFGHIJKLOMNOPQRSTUVWXYZ';  
            for($i=0;$i<$length;$i++){    
               $key .= $pattern{mt_rand(0,35)};    //生成php随机数   
            }   
            return $key;   
        }
        public function arr_xml($data)
        {
            ksort($data);//以键名排序
            $string='';
            foreach($data as $k=>$v){
                $string.="$k=$v&";
            }
            $string.='key='.$this->key;
            $sign=strtoupper(md5($string));
            $data['sign']=$sign;
            $xml='<xml>';
            foreach($data as $key=>$val){
                if (is_numeric($val)){
                    $xml.="<".$key.">".$val."</".$key.">";
                }else{
                    $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
                }
            }
            $xml.='</xml>';
            return $xml;
        }
        public function xml_arr($xml)
        {
            return json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
        }
        public function post($url, $data, $isHttps = TRUE)
        {
            // 创建curl对象
            $ch = curl_init ();
            // 配置这个对象
            curl_setopt ( $ch, CURLOPT_URL, $url);  // 请求的URL地址
            curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
            if($isHttps)
            {
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
            }
            curl_setopt ( $ch, CURLOPT_POST, true);  // 是否是POST请求
            curl_setopt ( $ch, CURLOPT_HEADER, 0);  // 去掉HTTP协议头
            curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1);  // 返回接口的结果,而不是输出
            curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data);  // 提交的数据
            // 发出请求
            $return = curl_exec ( $ch );
            // 关闭对象
            curl_close ( $ch );
            // 返回数据
            return $return;
        }
    
    }
  • 相关阅读:
    Combine 框架,从0到1 —— 4.在 Combine 中使用计时器
    Combine 框架,从0到1 —— 4.在 Combine 中使用通知
    Combine 框架,从0到1 —— 3.使用 Subscriber 控制发布速度
    Combine 框架,从0到1 —— 2.通过 ConnectablePublisher 控制何时发布
    使用 Swift Package Manager 集成依赖库
    iOS 高效灵活地配置可复用视图组件的主题
    构建个人博客网站(基于Python Flask)
    Swift dynamic关键字
    Swift @objcMembers
    仅用递归函数操作逆序一个栈(Swift 4)
  • 原文地址:https://www.cnblogs.com/lujiang/p/7908829.html
Copyright © 2011-2022 走看看