快递鸟现在能支持所有常用快递公司电子面单打印,四通一达,顺丰,邮政等,大部分电商需要用到这个接口,在实际对接快递鸟电子面单的时候很多人都会有疑问:如何解析接口返回的一大段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样式显示。
显示效果:
