• ECStore 外部调用接口


    <?php
    $api_params = array('tid' => '171020150090107');//订单编号
    $basic_params = array(
        'to_api_v' => '2.3.9', //版本号
        'direct' => 'true', // 
        'task' => uniqid(),
        'method' => 'b2c.order.detail22',
    );
    $token='';
    $params = array_merge($api_params, $basic_params);
    $params['sign'] = get_sign($params,$token);
    //$url = 'http://202.104.118.80/index.php/api';
    $url = 'http://localhost/ecstore/index.php/api';
    ///////*/ 
    /* 使用POST方法将上述$params提交至$url即可 
    ///////*/
    $response=curl_request($url,$params);
    $data = json_decode($response, true);
    print_r($data);
    //参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
     function curl_request($url,$post='',$cookie='', $returnCookie=0){
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
            curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
            curl_setopt($curl, CURLOPT_REFERER, "http://www.baidu.com");
            if($post) {
                curl_setopt($curl, CURLOPT_POST, 1);
                curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
            }
            if($cookie) {
                curl_setopt($curl, CURLOPT_COOKIE, $cookie);
            }
            curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
            curl_setopt($curl, CURLOPT_TIMEOUT, 10);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($curl);
            if (curl_errno($curl)) {
                return curl_error($curl);
            }
            curl_close($curl);
            if($returnCookie){
                list($header, $body) = explode("
    
    ", $data, 2);
                preg_match_all("/Set-Cookie:([^;]*);/", $header, $matches);
                $info['cookie']  = substr($matches[1][0], 1);
                $info['content'] = $body;
                return $info;
            }else{
                return $data;
            }
    }
    function get_sign($params, $token) {
        return strtoupper(md5(strtoupper(md5(assemble($params))) . $token)); //开源软件:phpfensi.com 
    }
    function assemble($params) {
        if (!is_array($params))
            return null;
        ksort($params, SORT_STRING);
        $sign = '';
        foreach ($params AS $key => $val) {
            $sign .= $key . (is_array($val) ? assemble($val) : $val);
        }
        return $sign;
    }
    ?>
  • 相关阅读:
    F广搜
    Python中range和xrange的异同之处
    数组中出现次数超过一半的数字
    iOS开发之剖析&quot;秘密&quot;App内容页面效果(一)
    Balloon Comes!
    scikit-learn: isotonic regression(保序回归,非常有意思,仅做知识点了解,但差点儿没用到过)
    C#数据缓存介绍及Caching通用帮助类整理
    SVN Working copying &#39;xxxxx/xxxx/xxxx&#39; locked
    读书笔记-APUE第三版-(7)进程环境
    UVA 10555
  • 原文地址:https://www.cnblogs.com/limonyun/p/7700167.html
Copyright © 2020-2023  润新知