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;
    }

}

 

posted @ 2017-11-28 11:43  6671  阅读(358)  评论(0编辑  收藏  举报