Arliki

博客园 首页 新随笔 联系 订阅 管理

目标:订单详情页可以根据订单查询当前物流信息。

效果图:

  

思路:点击后异步请求快递查询api,接受返回信息,拼接。

代码:

admin下:order_info.htm

//一:顶部插入jquery,在{if $user}{/if}后添加
<div id="topbara" style="display: none">
  <table width="100%" border="0" id="aaa">
  </table>
</div>
{if $ship}
<input type="hidden" id="apiname" value="{$apiname}">
{/if}


//二:80行左右 查找{$order.order_sn} 替换这一个td
<td width="34%">{$order.order_sn}&nbsp;&nbsp;{if $ship}[<span id="postnu" style="cursor:pointer" value="{$postnu}">查看物流</span>]{else}[<span >暂无物流信息</span>]{/if}{if $order.extension_code eq "group_buy"}<a href="group_buy.php?act=edit&id={$order.extension_id}">{$lang.group_buy}</a>{elseif $order.extension_code eq "exchange_goods"}<a href="exchange_goods.php?act=edit&id={$order.extension_id}">{$lang.exchange_goods}</a>{/if}</td>

//三:插入底部文件上面插入  Ajax异步接受和拼接数据
{literal}
<script>
    $("#postnu").click(function () {
        var postnu=$("#postnu").attr('value');
        var apiname=$("#apiname").attr('value');
        Ajax.call('order.php?act=show_wuliu','postnu='+postnu+'&apiname='+apiname ,showwuliu,'GET','TEXT');
    });
    function showwuliu(res) {
        var data=JSON.parse(res);
        var html="<caption><strong>物流详情 <span  style='color:orangered' onclick='myclose()'><i>点击关闭</i></span></strong></caption>";
        if (data["nu"]==''&&data["ischeck"]==0) {
            html+="<caption><strong>"+data["message"]+"</strong></caption>";
        }else{
            for (var i = 0;i<data["data"].length;i++){
                html+="<tr><td> 时间 :</td><td>"+data["data"][i]["time"]+"</td></tr><tr><td> 物流状态: </td><td>"+data["data"][i]["context"]+"</td></tr>}";
            }
        }
        html +=" ";
        $("#aaa").empty();
        $("#aaa").append(html);
        $("#topbara").show();
    }
    function myclose() {
        document.getElementById( "topbara" ).style="display:none";
    }
</script>
{/literal}
View Code

admin下:order.php

/*在act==info里面插入(判断是否打印订单上面即可)查询语句根据自己数据库调整*/
$select_sql = 'SELECT shipping_status,invoice_no,sp_api_name FROM '.$ecs->table('order_info').' order_info INNER JOIN '.$ecs->table('shipping').' shipping ON order_info.shipping_id=shipping.shipping_id where order_id='.$order_id;
    $order_val=$db->getRow($select_sql);
    $smarty->assign('ship',$order_val["shipping_status"]);
    $smarty->assign('postnu',$order_val["invoice_no"]);
    $smarty->assign('apiname',$order_val["sp_api_name"]);

/*act==info下添加(该获取方式不推荐,次数多会被封账号,建议购买)*/
elseif ($_REQUEST['act']== 'show_wuliu'){
    $apiname=$_GET['apiname'];
    $postnu=$_GET['postnu'];
    $url = "http://m.kuaidi100.com/query?type=" . $apiname . "&postid=" . $postnu . "&id=1&valicode=&temp=0.90644506498" . $temp;
    $aaa=file_get_contents($url);
    die($aaa);
}
View Code

部分代码根据自己的结构进行调整即可。

tag:ecshop二次开发 查询物流信息 订单号查询 复制可用 快递信息

 

posted on 2017-11-29 11:48  小程序源码下载  阅读(355)  评论(0编辑  收藏  举报