德邦快递 电子面单模板打印预览效果 快递鸟API

快递鸟现在能支持所有常用快递公司电子面单打印,四通一达,顺丰,邮政等,大部分电商需要用到这个接口,在实际对接快递鸟电子面单的时候很多人都会有疑问:如何解析接口返回的一大段json字符串,使它呈现为我们打印效果的电子面单图片效果?下面我以德邦电子面单请求为例,跟大家分享一下我的经验。

请求电子面单接口成功后,会返回图一数据,PrintTemplate参数中包含了电子面单模板的信息,我们要做的就是处理printTemplate参数中的数据,使其以html的面单样式显示。

  PrintTemplate内容:





    
    


                                    
代收货款
                    
                    东莞市—深圳市            
                            
                                          苏州市                             服务信息
                声明价值:¥0元
                代收金额:¥0元
                付款方式:寄付月结                签单返回:${ShowSignType}                                        件                                                            杨有才  158****6935 广东省 深圳市                    福田区 华宝一号大厦A601                                        件                                                钱多余  139***65433 广东省                    东莞市 南城街道 **                                                                
                                    9098086850                                                                快件送达收件人地址,经收件人或收件人(寄件人)允许的代收人签字,视为送达,您的签字代表您已验收此包裹,并以确定商品信息无误,包装完好,没有划痕,破损等。            签收人:时间:             [二维码]                                                                                            
                
9098086850
                                                件                                                杨有才  158****6935                    广东省 深圳市 福田区 华宝一号大厦A601                                         [二维码]                            件                                                钱多余  139***65433                    广东省 东莞市 南城街道 **                                                                        数量:1  重量:1kg  商品:(N95 防护口罩)                已检视                        

这里提供两个方法供大家参考:

1、  使用C#开发语言,将printTemplate内容放在html页面的div层中显示:

(1)、在显示信息的*.aspx页面中定义一个id为“printHTML”的div层。

(2)、在*.aspx.cs中添加如下代码:

//将接口返回的json字符串反序列化。
//需要引用using Newtonsoft.Json;
JObject result = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(str);
//获取printTemplate的值
var html = result["PrintTemplate"];
if (html  != null)
{
//将html 中的内容放到printHTML中显示
   printHTML.InnerHtml = html.ToString();
}

  2、 使用jquery进行显示。

直接使用:

$('#printHTML').html(html)

使用上述两种方法均可以将返回的数据处理成html样式显示。

显示效果:

image.png