Foxtable(狐表)用户栏目专家坐堂 → [求助]这个接口怎么写?详情见下【暂时没问题】快递鸟api


  共有3995人关注过本帖树形打印复制链接

主题:[求助]这个接口怎么写?详情见下【暂时没问题】快递鸟api

帅哥哟,离线,有人找我吗?
zto001
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1489 积分:10602 威望:0 精华:0 注册:2018/10/16 11:42:00
[求助]这个接口怎么写?详情见下【暂时没问题】快递鸟api  发帖心情 Post By:2019/11/17 13:32:00 [只看该作者]

这是我的部分代码
Dim hc订单 As new HttpClient("http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json")
hc订单 .C '
hc订单.FormData.Add("RequestData", "{ ""OrderCode"": ""012657018199"", ""ShipperCode"": ""SF"", ""PayType"": 1, ""MonthCode"": ""1234567890"", ""ExpType"": 1, ""Cost"": 1.0, ""OtherCost"": 1.0, ""Sender"": { ""Company"": ""LV"", ""Name"": ""Taylor"", ""Mobile"": ""15018442396"", ""ProvinceName"": ""上海"", ""CityName"": ""上海市"", ""ExpAreaName"": ""青浦区"", ""Address"": ""明珠路"" }, ""Receiver"": { ""Company"": ""GCCUI"", ""Name"": ""Yann"", ""Mobile"": ""15018442396"", ""ProvinceName"": ""北京"", ""CityName"": ""北京市"", ""ExpAreaName"": ""朝阳区"", ""Address"": ""三里屯街道"" }, ""Commodity"": [ { ""GoodsName"": ""鞋子"", ""GoodsQuantity"": 1, ""GoodsWeight"": 1.0 }, { ""GoodsName"": ""衣服"", ""GoodsQuantity"": 1, ""GoodsWeight"": 1.0 }, ], ""AddService"": [ { ""Name"": "" INSURE "", ""Value"": ""1000"" }, { ""Name"": ""COD"", ""Value"": ""1020"" "" CustomerID "": ""1234567890"" } ], ""Weight"": 1.0, ""Quantity"": 1, ""Volume"": 0.0, ""Remark"": ""小心轻放"" }")
hc订单 .FormData.Add("EBusinessID","ZTO77***83171")
hc订单 .FormData.Add("RequestType","1007")
hc订单 .FormData.Add("DataSign",???)  '这里不会写
output.Show(hc订单.GetData)
这个
DataSign怎么写?
电子面单接口
(1)电子面单接口是快递鸟提供给独立电商、仓储管理系统、物流供应链等物流系统平台使用的下单接口。
(2)为客户解决在线发货需求,商户通过网络选择快递公司发送请求通知快递公司有快递要发货。
(3) 客户把数据通过此接口转发到快递鸟,由快递鸟为您安排快递员上门取件的服务。
(4)订单编号(OrderCode)不可重复提交,重复提交系统会返回具体错误代码。
(5)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"
(6)接口地址: API测试地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json
API正式地址:http://api.kdniao.com/api/EOrderService
请求系统级参数说明:
参数名称类型说明必须要求
RequestDataString请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。R
EBusinessIDString商户ID,请在我的服务页面查看。R
RequestTypeString请求指令类型:1007R
DataSignString数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后 进行URL(utf-8)编码。详细过程请查看Demo。R
DataTypeString请求、返回数据类型:只支持JSON格式O
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)

接口参数
1.电子面单接口
请求内容字段定义:
参数名称类型说明是否必须
MemberIDString(50)ERP系统、电商平台等系统或平台类型用户的会员ID或店铺账号等唯一性标识,用于区分其用户O
CustomerNameString(50)电子面单客户号,需要下载《快递鸟电子面单客户号参数对照表.xlsx》,参考对应字段传值O
CustomerPwdString(30)O
SendSiteString(30)O
SendStaffString(30)C
MonthCodeStringC
CustomAreaString(500)商家自定义区域C
WareHouseIDString(30)发货仓编码O
TransTypeInt(1)运输方式 1- 陆运 2- 空运 不填默认为1O
ShipperCodeString(10)快递公司编码 详细编码参考《2019快递鸟接口支持快递公司编码.xlsx》R
LogisticCodeString(30)快递单号(仅宅急送可用)O
ThrOrderCodeString(50)第三方订单号 (ShipperCode为JD且ExpType为1时必填)C
OrderCodeString(30)订单编号(自定义,不可重复)R
PayTypeInt(1)邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付(仅SF支持)R
ExpTypeString(2)快递类型:1-标准快件 ,详细快递类型参考《快递公司快递业务类型.xlsx》R
IsReturnSignBillInt(1)是否要求签回单 1- 要求 0-不要求O
OperateRequireString(20)签回单操作要求(如:签名、盖章、身份证复印件等)O
CostCost Double(5)快递运费O
OtherCostDouble(5)其他费用O
ReceiverCompanyString(30)收件人公司O
NameString(30)收件人R
TelString(20)电话与手机,必填一个R
MobileString(20)
PostCodeString(10)收件人邮编c
ProvinceNameString(20)收件省 (如广东省,不要缺少“省”;如是直辖市,请直接传北京、上海等; 如是自治区,请直接传广西壮族自治区等)R
CityNameString(20)收件市(如深圳市,不要缺少“市”; 如果是市辖区,请直接传北京市、上海市等)R
ExpAreaNameString(20)收件区/县(如福田区,不要缺少“区”或“县”)R
AddressString(100)收件人详细地址R
SenderCompanyString(30)发件人公司O
NameString(30)发件人R
TelString(20)电话与手机,必填一个R
MobileString(20)
PostCodeString(10)发件地邮编(ShipperCode为EMS、YZPY、YZBK时必填)C
ProvinceNameString(20)发件省 (如广东省,不要缺少“省”; 如是直辖市,请直接传北京、上海等; 如是自治区,请直接传广西壮族自治区等)R
CityNameString(20)发件市(如深圳市,不要缺少“市; 如是市辖区,请直接传北京市、上海市等”)R
ExpAreaNameString(20)发件区/县(如福田区,不要缺少“区”或“县”)R
AddressString(100)发件人详细地址R
IsNoticeInt(1)是否通知快递员上门揽件 0- 通知 1- 不通知 不填则默认为1O
StartDateDate上门取货时间段:"yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同O
EndDateDateO
WeightDouble(10,3)包裹总重量kg 当为快运的订单时必填,不填时快递鸟将根据各个快运公司要求传对应的默认值C
QuantityInt(2)包裹数(最多支持30件) 一个包裹对应一个运单号,如果是大于1个包裹,返回则按照子母件的方式返回母运单号和子运单号R
VolumeDouble(20,3)包裹总体积m3 当为快运的订单时必填,不填时快递鸟将根据各个快运公司要求传对应的默认值C
RemarkString(60)备注O
AddServices
AddServiceNameString(20)增值服务名称
(数组形式,可以有多个增值服务)
C
ValueString(30)增值服务值C
CustomerIDString(30)客户标识(选填)O
Commoditys
CommodityGoodsNameString(100)商品名称R
GoodsCodeString(100)商品编码O
GoodsquantityInt(5)商品数量O
GoodsPriceDouble(10)商品价格O
GoodsWeightDouble(10,3)商品重量kgO
GoodsDescString(50)商品描述O
GoodsVolDouble(15,3)商品体积m3O
IsReturnPrintTemplateString(1)返回电子面单模板:0-不需要;1-需要O
IsSendMessageInt(1)是否订阅短信:0-不需要;1-需要O
TemplateSizeString(10)模板规格(默认的模板无需传值,非默认模板传对应模板尺寸)O
PackingTypeInt(2)包装类型(快运字段)默认为0; 0- 纸 1- 纤 2- 木 3- 托膜 4- 木托 99-其他C
DeliveryMethodInt(1)送货方式(快运字段)默认为0; 0- 自提 1- 送货上门(不含上楼) 2- 送货上楼C
[此贴子已经被作者于2020/3/19 23:15:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1489 积分:10602 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/11/17 13:34:00 [只看该作者]

这是demo

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:kdapieorderdemo(.net).rar




请求示例 JSON
{
                          "OrderCode": "012657018199",
                          "ShipperCode": "SF",
                          "PayType": 1,
                          "MonthCode": "1234567890",
                          "ExpType": 1,
                          "Cost": 1.0,
                          "OtherCost": 1.0,
                          "Sender": {
                            "Company": "LV",
                            "Name": "Taylor",
                            "Mobile": "15018442396",
                            "ProvinceName": "上海",
                            "CityName": "上海市",
                            "ExpAreaName": "青浦区",
                            "Address": "明珠路"
                          },
                          "Receiver": {
                            "Company": "GCCUI",
                            "Name": "Yann",
                            "Mobile": "15018442396",
                            "ProvinceName": "北京",
                            "CityName": "北京市",
                            "ExpAreaName": "朝阳区",
                            "Address": "三里屯街道"
                          },
                          "Commodity": [
                            {
                              "GoodsName": "鞋子",
                              "GoodsQuantity": 1,
                              "GoodsWeight": 1.0
                        },
                        {
                           "GoodsName": "衣服",
                           "GoodsQuantity": 1,
                           "GoodsWeight": 1.0
                        },
                          ],
                          "AddService": [
                            {
                              "Name": " INSURE ",
                              "Value": "1000"
                        },
                            {
                              "Name": "COD",
                              "Value": "1020"
                        " CustomerID ": "1234567890"
                            }
                          ],
                          "Weight": 1.0,
                          "Quantity": 1,
                          "Volume": 0.0,
                          "Remark": "小心轻放"
                        }
[此贴子已经被作者于2019/11/17 13:47:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/17 20:16:00 [只看该作者]

把2楼附件里3个函数:encrypt(String content, String keyValue, String charset)、MD5(string str, string charset)、base64(String str, String charset)转换为vb.net放到全局代码使用即可

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1489 积分:10602 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/11/20 12:24:00 [只看该作者]

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;

namespace Test
.......................
        /// <param name="charset">编码方式</param>
        /// <returns></returns>
        private string base64(String str, String charset)
        {
            return Convert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));
        }
    }
}

这一段全部放到全局代码吗?不对呀,部分放进去也不对。要怎么改?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/20 13:35:00 [只看该作者]

只让您转换3个函数,其它乱七八糟的不需要

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1489 积分:10602 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/11/20 20:56:00 [只看该作者]

encrypt

private string encrypt(String content, String keyValue, String charset)
        {
            if (keyValue != null)
            {
                return base64(MD5(content + keyValue, charset), charset);
            }
            return base64(MD5(content, charset), charset);
        }


private string encrypt(String content, String keyValue, String charset)
        {
            if (keyValue != null)
            {
                return base64(MD5(content + keyValue, charset), charset);
            }
            return base64(MD5(content, charset), charset);
        }

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1489 积分:10602 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/11/20 20:57:00 [只看该作者]

这两串吗?


 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1489 积分:10602 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/11/20 22:36:00 [只看该作者]

hc订单.FormData.Add("RequestData", "{ ""OrderCode"": ""012657018199"", ""ShipperCode"": ""SF"", ""PayType"": 1, ""MonthCode"": ""1234567890"", ""ExpType"": 1, ""Cost"": 1.0, ""OtherCost"": 1.0, ""Sender"": { ""Company"": ""LV"", ""Name"": ""Taylor"", ""Mobile"": ""15018442396"", ""ProvinceName"": ""上海"", ""CityName"": ""上海市"", ""ExpAreaName"": ""青浦区"", ""Address"": ""明珠路"" }, ""Receiver"": { ""Company"": ""GCCUI"", ""Name"": ""Yann"", ""Mobile"": ""15018442396"", ""ProvinceName"": ""北京"", ""CityName"": ""北京市"", ""ExpAreaName"": ""朝阳区"", ""Address"": ""三里屯街道"" }, ""Commodity"": [ { ""GoodsName"": ""鞋子"", ""GoodsQuantity"": 1, ""GoodsWeight"": 1.0 }, { ""GoodsName"": ""衣服"", ""GoodsQuantity"": 1, ""GoodsWeight"": 1.0 }, ], ""AddService"": [ { ""Name"": "" INSURE "", ""Value"": ""1000"" }, { ""Name"": ""COD"", ""Value"": ""1020"" "" CustomerID "": ""1234567890"" } ], ""Weight"": 1.0, ""Quantity"": 1, ""Volume"": 0.0, ""Remark"": ""小心轻放"" }")

这里这样写不对吧,怎么进行URL(utf-8)编码?
请求系统级参数说明:
参数名称类型说明必须要求
RequestDataString请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。R

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/21 8:48:00 [只看该作者]

直接赋值即可,默认就是utf-8,不需要另外处理

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1489 积分:10602 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/11/21 9:22:00 [只看该作者]




放进去提示
此主题相关图片如下:qq截图20191121092130.png
按此在新窗口浏览图片


encrypt

private string encrypt(String content, String keyValue, String charset)
        {
            if (keyValue != null)
            {
                return base64(MD5(content + keyValue, charset), charset);
            }
            return base64(MD5(content, charset), charset);
        }


private string encrypt(String content, String keyValue, String charset)
        {
            if (keyValue != null)
            {
                return base64(MD5(content + keyValue, charset), charset);
            }
            return base64(MD5(content, charset), charset);
        }

 回到顶部
总数 27 1 2 3 下一页