2018年10月

使用前你需要通过http://www.juhe.cn/docs/api/id/43 申请一个专用appkey
<?php
// +----------------------------------------------------------------------
// | JuhePHP [ NO ZUO NO DIE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2010-2015 http://juhe.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: Juhedata <info@juhe.cn-->
// +----------------------------------------------------------------------

//----------------------------------
// 聚合数据-快递查询API调用示例代码
//----------------------------------
header('Content-type:text/html;charset=utf-8');
$params = array(
    'key' => '1168c59dc1d06c99c425e4503f8ba7c3', //您申请的快递appkey
    'com' => 'zto', //快递公司编码,可以通过$exp->getComs()获取支持的公司列表
    'no'  => '264977774032' //快递编号
);
$exp = new exp($params['key']); //初始化类

$result = $exp->query($params['com'],$params['no']); //执行查询
//$a = $exp->getComs();
//var_dump($a);die;
if($result['error_code'] == 0){//查询成功
    $list = $result['result']['list'];
    print_r($list);
}else{
    echo "获取失败,原因:".$result['reason'];
}

class exp{
    private $appkey = false; //申请的快递查询APPKEY

    private $queryUrl = 'http://v.juhe.cn/exp/index';

    private $comUrl = 'http://v.juhe.cn/exp/com';

    public function __construct($appkey){
        $this->appkey = $appkey;
    }

    /**
     * 返回支持的快递公司公司列表
     * @return array
     */
    public function getComs(){
        $params = 'key='.$this->appkey;
        $content = $this->juhecurl($this->comUrl,$params);
        return $this->_returnArray($content);
    }

    public function query($com,$no){
        $params = array(
            'key' => $this->appkey,
            'com'  => $com,
            'no' => $no
        );
        $content = $this->juhecurl($this->queryUrl,$params,1);
        return $this->_returnArray($content);
    }

    /**
     * 将JSON内容转为数据,并返回
     * @param string $content [内容]
     * @return array
     */
    public function _returnArray($content){
        return json_decode($content,true);
    }

    /**
     * 请求接口返回内容
     * @param  string $url [请求的URL地址]
     * @param  string $params [请求的参数]
     * @param  int $ipost [是否采用POST形式]
     * @return  string
     */
    public function juhecurl($url,$params=false,$ispost=0){
        $httpInfo = array();
        $ch = curl_init();

        curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
        curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' );
        curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
        curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
        if( $ispost )
        {
            curl_setopt( $ch , CURLOPT_POST , true );
            curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
            curl_setopt( $ch , CURLOPT_URL , $url );
        }
        else
        {
            if($params){
                curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
            }else{
                curl_setopt( $ch , CURLOPT_URL , $url);
            }
        }
        $response = curl_exec( $ch );
        if ($response === FALSE) {
            //echo "cURL Error: " . curl_error($ch);
            return false;
        }
        $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
        $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
        curl_close( $ch );
        return $response;
    }
}
?>

支付宝有三个参数:

1、ali_public(支付宝公钥)
2、public_key(应用公钥)
3、private_key(应用私钥)

支付、二维码支付、退款都用2和3,

但是提现要用1和3,否则虽然转账成功,但是会报签名错误,无法进入结果判断状态!!

多个未支付的订单,倒计时30分钟,超过删除

timeTimer();//先走一下
    //单纯分钟和秒倒计时
    var timer = setInterval(jishiMs,1000);
    function jishiMs() {
        if($('.daojishi').length <= 0){
            clearInterval(timer);
        }else{
            timeTimer();
        }
    }
function timeTimer() {
        if($('.daojishi').length > 0) { //如果有未支付的订单(将未支付的订单给统一的类daojishi)
            $('.daojishi').each(function (data, index) {
                var orderTime = $(this).attr('otime');//下单时间(日期)
                var nowTime = Date.parse(new Date());//当前时间(时间戳)
                //var oid = $(this).attr('orderid');//订单id(PS:用于后续操作)
                var time1 = datetime_to_unix(orderTime);//下单时间戳(如果保存的是时间戳直接计算)
                var cha = nowTime / 1000 - time1;//差值
                if (cha < 1800) {
                    var M = 29 - Math.floor(cha / 60);
                    var S = 59 - Math.floor(cha % 60);
                    if (M < 10) {
                        M = '0' + M;
                    }
                    if (S < 10) {
                        S = '0' + S;
                    }
                    $(this).text(M + ':' + S);
                } else {
                   //倒计时结束,执行操作
                }
            })
        }
    }
//将日期转为时间戳
function datetime_to_unix(datetime){
        var tmp_datetime = datetime.replace(/:/g,'-');
        tmp_datetime = tmp_datetime.replace(/ /g,'-');
        var arr = tmp_datetime.split("-");
        var now = new Date(Date.UTC(arr[0],arr[1]-1,arr[2],arr[3]-8,arr[4],arr[5]));
        return parseInt(now.getTime()/1000);
    }

1、日期转时间戳

function datetime_to_unix(datetime){
    var tmp_datetime = datetime.replace(/:/g,'-');
    tmp_datetime = tmp_datetime.replace(/ /g,'-');
    var arr = tmp_datetime.split("-");
    var now = new Date(Date.UTC(arr[0],arr[1]-1,arr[2],arr[3]-8,arr[4],arr[5]));
    return parseInt(now.getTime()/1000);
}
datetime_to_unix('2018-08-08 22:22:22');