用了3天左右对接落实圆通快递电子面单,这过程遇到觉得坑的就是签名,用了将近一个下午。

接口地址:http://open.yto.net.cn/OpenPlatform/doc

电子面单创建标准接口:

签名流程:

1.1.3 数据处理

序号 步骤
1 在POST时用“logistics_interface”字段表示要发送的XML报文内容。
2 在POST时用“data_digest”字段进行签名验证。
3 假设xml内容为: <order></order>, partnerId(商家密钥)为123456。 则要签名的内容为<order></order>123456,然后对<order></order>123456先进行MD5加密,然后转换为base64字符串。 即经过md5(16位)和base64后的内容就为 LghTkEmsD2tbQ3fsIBRcBg==。
4 同样需要对签名的字符串进行URL编码,LghTkEmsD2tbQ3fsIBRcBg==的内容为:LghTkEmsD2tbQ3fsIBRcBg%3D%3D。
5 最终要发送的数据为logistics_interface=%3Corder%3E%3C%2Forder%3E &data_digest= LghTkEmsD2tbQ3fsIBRcBg%3D%3D &type=offline&clientId=K21000119

主要是每次自己签名跟上面的老是对上不,他又不给md5 16位的结果出来,郁闷。。。

假设xml内容为: <order></order>, partnerId(商家密钥)为123456。 则要签名的内容为<order></order>123456,然后对<order></order>123456先进行MD5加密,然后转换为base64字符串。 即经过md5(16位)和base64后的内容就为 LghTkEmsD2tbQ3fsIBRcBg==。

这个是重点,每次都是不一样的结果base64 md5换了几种方式都一样

下午快疯的时候,还是得吹下冷风

最后还是逆着来将  LghTkEmsD2tbQ3fsIBRcBg== base64网上解密是乱码,程序解也是,只能分析下解密后的byte数组,发现存在着负数的,而我们一般md5转出来的string,是默认加上256的,然后 然后就可以了

原来是 md5  16位byte数组 再base64,怎么就不写清楚点呢

另注意下 编码的问题

import java.security.MessageDigest;
import com.sun.org.apache.xml.internal.security.utils.Base64;
/**
* 签名  
* 参数xml+partnerId  md5加密 为16位byte
* 再base64位
* @param sourceStr 
* @param key
* @return
*/
private String MD5(String sourceStr, String key) {  
        String result = "";  
        try {  
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            byte[] bytes = md5.digest((sourceStr + key).getBytes(Charset.forName("utf-8")));
            result = Base64.encode(bytes);
        } catch (NoSuchAlgorithmException e) {  
            System.out.println(e);  
            LOG.info("圆通生成签名出错:{}", e.getMessage());
        }  
        return result;  
    }

圆通快递电子面单接口开发坑相关推荐

  1. 常用快递电子面单接口API对接方法

    快递电子面单接口API比较常用在电商.仓储系统和ERP系统,对接后不用下载安装软件,可以直接嵌入系统网站调用. 目前有快递鸟和菜鸟提供集成的电子面单打印接口,分别支持20,15家快递的电子面单打印 1 ...

  2. C#圆通快递电子面单api接口调用方法

    快递电子面单支持多家快递物流公司单号获取.分拣码返回.面单打印.在线下单发货.通知快递员上门取件等功能,可用于电商平台.自营商城.打单工具.WMS仓储系统.APP等需要发货的场景,可有效提高商家的打印 ...

  3. 天天快递电子面单接口对接说明及案例

    1.接口类型说明 1)接口支持的消息接收方式:HTTP POST 2)请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset= ...

  4. 常用快递电子面单接口参数配置对照表

    调用快递电子面单时IsNotice参数可控制是否通知快递员上门揽件(*0-通知:1-不通知:不填则默认为0) 表中帐号和密码指的是向快递公司网点申请开通电子面单权限后,快递鸟免费获取KEY IP地址h ...

  5. 常用电子面单接口API demo下载(菜鸟快递鸟)

    手写快递单太麻烦了,公司的订单又多,每次都写不过来,还容易出错,直接电子化在打印快递单就快了,不过现在有些人不懂怎么批量对接多个快递的电子面单,这里就给大家讲解讲解,希望对大家有用. 一.电子面单接口 ...

  6. 电商快递电子面单对接使用方法

    一.电子面单接口类型及定义 1. 快递电子面单接口:快递公司自己开发的电子面单服务, 商家使用必须快递公司上门做系统对接,使用一家快递则需要对接一次. 2.菜鸟电子面单接口:可一次对接15家快递公司, ...

  7. 多个电子面单接口平台分析和对接

    电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务.通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍.电子面单以接口形式嵌入到自己的系统.网站上,可以在自己的平台操作打印电子面单. 对比 ...

  8. 免费圆通电子面单接口对接

    电子面单接口是快递鸟提供给独立电商.仓储管理系统.物流供应链等物流系统平台使用的下单接口,满足客户在线发货需求并提供打印面单的服务,客户通过网络选择物流公司发送请求通知贵公司有快递要发货,把数据通过此 ...

  9. 电商对接使用圆通电子面单接口方法

    电子面单接口是快递鸟提供给独立电商.仓储管理系统.物流供应链等物流系统平台使用的下单接口,满足客户在线发货需求并提供打印面单的服务,客户通过网络选择物流公司发送请求通知贵公司有快递要发货,把数据通过此 ...

最新文章

  1. iOS 一些基础的方法
  2. 计算机无法识别华为m3,华为8寸M3(非青春版)电脑连接问题报告
  3. 中国互联网+政务建设发展现状及市场规模预测报告2022-2027年版
  4. mysql自动编号步进值_MySQL-自动编号
  5. python3爬虫(5)百度云盘暴力破解尝试
  6. linux-目录结构
  7. Symbian S60 签名工具
  8. linux安装控制台驱动,linux设备驱动之控制台驱动
  9. 自定义OutputFormat案例实操
  10. jquery 如何插入元素
  11. mac os 10.10 safari java插件_OS X 10.10 Yosemite强大而漂亮的Safari 8浏览器
  12. sht21 c语言程序,湿度传感器SHT21示例代码-SampleCodeforSHT21.PDF
  13. 《现代操作系统(中文第四版)》课后习题答案 第四章 文件系统
  14. JVM内存结构和Java内存模型别再傻傻分不清了
  15. 饿了么UI组件库中,Upload组件上传闪动的解决
  16. vivo手机支持html,vivo5G手机如何设置5G?教你开启SA模式
  17. 输出星期几的英文表示
  18. Mach Operating System
  19. pandas打印某一列_零基础学Python--不得不说的Pandas小技巧
  20. 虚拟机怎么安装软件 Mac虚拟机怎么安装软件

热门文章

  1. MSN病毒近日开始大爆发
  2. enclosing type java_No enclosing instance of type 异常详解
  3. Licode入门学习:Licode服务与启动过程分析
  4. 小程序地图转百度地图坐标
  5. atof函数 C++用法
  6. 解决Windows系统下网页自适应的终极方法
  7. 卷积神经网络怎么优化,卷积神经网络改进算法
  8. 计算机存储一个字节数是,一个字节可以存储多大的数字?
  9. VMware虚拟机克隆介绍
  10. 炉石传说服务器维护有补偿吗,炉石传说维护(炉石传说维护公告全文及具体补偿方案 炉石数据回档怎么补偿?)...