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;
        }
    
    }
  • 相关阅读:
    二分查找
    bracketed-paste-magic:zle:41: not enough arguments for -U
    逗号表达式返回值
    requestAnimationFrame实现一帧的函数节流
    phaser常用API总结
    table表头固定问题
    接口防刷的方法
    雪碧图background-position的rem用法
    sphinx 增量索引与主索引使用测试
    msysgit ls 中文显示
  • 原文地址:https://www.cnblogs.com/lujiang/p/7908829.html
Copyright © 2011-2022 走看看