查询支持的服务
- 应用场景:获取有效的运输方式列表(中文名,英文名,代码,时效,图标)
- 函数名称:getStockChannel(secretkey,StockID)
- 提交参数:secretkey(API密钥),StockID(仓库ID)
- 授权:需要
- 返回:JSON
输入参数
字段 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
Secretkey |
String |
必须 |
|
密钥 |
d0fc2606-611f-443a-aea2-aa209673a32c80000 |
返回结果
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
Base_ChannelInfoID |
String |
必须 |
|
渠道代码 |
46 |
ChannelCode |
String |
必须 |
|
运输编码 |
CNDHL |
CnName |
String |
必须 |
|
运输中文名称 |
大陆DHL普货价 |
EnName |
String |
必须 |
|
运输英文名称 |
CNDHL |
RefTime |
String |
必须 |
|
时效 |
2 - 4 |
ShortenImage |
String |
可选 |
|
运输图标 |
635195880046832907_dhl.gif |
错误码
名称 |
类型 |
是否必须 |
示例值 |
描述 |
complete |
Boolean |
否 |
true |
表示提交是否成功 |
API示例工具
示例
.NET 示例
- 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址:
"http://{网址}/webservice/APIWebService.asmx"
- 第二步:初始化,再调用方法,即可获取到数据
.webservice p=new .webservice();
string result = p.getChannel (secretkey);
返回示例
[{"base_Channelinfoid":"46","ChannelCode":"CNDHL","CnName":"\u5927\u9646DHL\u666E\u8D27\u4EF7","enname":"CNDHL","reftime":"2 - 4","shortenimage":"635195880046832907_dhl.gif"}
运费查询
- 应用场景:通过国家和重量及体积获取各运输方式价格(运输方式中文名CHCnName、英文名CHEnName、服务代码ChannelCode、时效RefTime、图标、总费用MinSaleAmountTotal)
- 函数名称:getFeeByCWV(string country,stringweight,stringvolume,stringcustomerid, string secretkey)
- 如果可以识别账户得的是折扣后总费用
- 提交参数:country(国家编码), weight(重量), volume(体积), customerid(客户ID),scretkey(密钥)
- 授权:需要
- 返回:JSON
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
country |
String |
必须 |
|
国家编码 |
Austria-澳大利亚 |
Weight |
String |
必须 |
|
重量 |
0.25 (kg) |
Volume |
String |
必须 |
|
体积 |
0.25 立方厘米 |
Customer ID |
String |
必须 |
|
客户ID |
80000 |
Identifier |
String |
必须 |
|
密钥 |
d0fc2606-611f-443a-aea2-aa209673a32c80000 |
返回结果
名称 |
类型 |
返回值 |
描述 |
CHCnName |
string |
香港邮政航空大包 |
服务中文名 |
CHEnName |
string |
HKBPOST |
服务英文名 |
ChannelCode |
string |
HKBPOST |
渠道代码 |
RefTime |
string |
7 - 14 |
参考时效 |
MinSaleAmountTotal |
string |
109.740 |
总金额(RMB) |
错误码
API示例工具
示例
.NET 示例
- 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址:
"http://{网址}/webservice/APIWebService.asmx"
- 第二步:初始化,再调用方法,即可获取到数据
.webservice p=new .webservice();
string result = p.getFeeByCWV(country,weight, volume,stringcustomerid, secretkey);
返回示例
[{"CHCnName":"\u9999\u6E2F\u90AE\u653F\u822A\u7A7A\u5927\u5305","CHEnName":"HKBPOST","ChannelCode":"HKBPOST","RefTime":"7 - 14","MinSaleAmountTotal":"200.620"}
订单信息查询
- 应用场景:通过订单号或跟踪号获取(订单状态、总费用、订单号、跟踪号、转单号)
- 函数名称:getPackage(string orderNo,stringcustomerid, string secretkey)
- 提交参数:strwhere(订单号或跟踪号), customerid(客户ID),scretkey(密钥)
- 授权:需要
- 返回:JSON
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
OrderNo |
String |
必须 |
|
订单号 |
R800001407290002
|
CustomerId |
String |
必须 |
|
客户编号 |
80000 |
SecretKey |
String |
必须 |
|
密钥 |
d0fc2606-611f-443a-aea2-aa209673a32c80000 |
Remark |
String |
可选
|
|
备注 |
Null |
返回结果
名称 |
类型 |
返回值 |
描述 |
OrderNo |
String |
R800001407290002 |
订单号 |
TrackingNo |
String |
|
跟踪号 |
field1 |
String |
234234 |
转单号 |
OrderStatus |
String |
6 |
订单状态1 |
OrderStatus2 |
String |
已发货 |
订单状态2 |
TotalAmount |
String |
6027.250 |
总费用 |
EnName |
String |
Albania |
收件人国家英文名 |
ChannelCode |
String |
GBPOST |
渠道代码 |
错误码
API示例工具
示例
.NET 示例
- 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址:
"http://{网址}/webservice/APIWebService.asmx"
- 第二步:初始化,再调用方法,即可获取到数据
.webservice p=new .webservice();
string result = p.getPackage(orderNO, string customerid, secretkey);
返回示例
[{"OrderNo":"R800001411160002","TrackingNo":"DDU1371690781102767","field1":"","OrderStatus2":"\u5DF2\u53D1\u8D27","TotalAmount":"26.500","ChannelCode":"GBPOST","EnName":"Argentina","OrderStatus":"6"}]
创建订单
- 应用场景:用户可以通过API建立订单信息到系统中
- 请求的地址:
"http://{网址}/webservice/APIWebService.asmx"
- 授权:需要
- 输入参数:如下
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
Strorderinfo |
String |
必须 |
|
主信息 |
|
Style |
String |
必须 |
|
订单类型(仓储订单或普通订购单)仓储订单为1,普通订单为2 |
2 |
GFF_CustomerID |
String |
必须 |
|
客户ID |
80000 |
GFF_ReceiveSendAddressID |
String |
选填 |
|
发件人ID |
189 |
ConsigneeName |
String |
必须 |
|
收件人 |
小明 |
Country |
String |
必须 |
|
国家 |
US;美国;223 (二次代码;中文名称;国家ID都支持填一即可) |
Base_ChannelInfoID |
String |
必须 |
|
渠道 |
EUB;89(渠道代码;渠道ID 填一即可) |
State |
String |
必须 |
|
州 |
San Fernando |
City |
String |
必须 |
|
城市 |
Bernardo Ohiggins |
OrderStatus |
String |
必须 |
|
订单状态--(草稿=1),(确认=3) |
1 |
Address1 |
String |
必须 |
|
收件人地址行 1 |
United States,,,MN.USA |
Address2 |
String |
可选 |
|
收件人地址行 2 |
United States,,,MN.USA |
CsRefNo |
String |
可选 |
|
客户参考号 |
1122 |
Zipcode |
String |
可选 |
|
邮编 |
2134342 |
Contact |
String |
可选 |
|
联系方式 |
180344345665 |
CusRemark |
String |
可选 |
|
客户订单备注 |
Null |
TrackingNo |
String |
可选 |
|
跟踪号 |
RT209114500HK |
InsuranceAmount |
String |
可选 |
|
投保价值 |
189.00 |
Strorderproduct |
String |
必须 |
|
明细数据 |
|
MaterialRefNo |
String |
必须 |
|
物品1 产品编号 |
SKU1 |
Quantity |
String |
必须 |
|
物品1 数量 |
10 |
Price |
String |
必须 |
|
物品1 单位价值(美元) |
10.2 |
Weight |
String |
必须 |
|
物品1 重量(KG) |
10 |
EnName |
String |
必须 |
|
物品1 产品英文名 |
MP31232 |
Warehouse ID |
String |
必须 |
|
物品1 仓储ID |
302,可使用仓储信息查询api获取 |
ProducingArea |
String |
可选 |
|
物品1 原产地 |
|
CnName |
String |
必须 |
|
物品1 产品中文名 |
中文名 |
提交实例
主信息:string strorderinfo = "Style:2;GFF_CustomerID:80000;GFF_ReceiveSendAddressID:;ConsigneeName:Ameerahmed;Country:84;Base_ChannelInfoID:CNGZGH;State:Paris-;City:Paris;OrderStatus:1;Address1:144 rue de rennes, 5eme etage – CODE 6335A – NOM –COTTIN AMEER;Address2:;CsRefNo:D4N3YZMJ69LI;Zipcode:75006;Contact:+33643052323;CusRemark:;TrackingNo:;"; |
明细信息:string strorderproduct = "MaterialRefNo:VB40021,MaterialQuantity:1,Price:27.5,Weight:0.2,EnName:Handheld Massager,WarehouseID:302,ProducingArea:112,CnName:,;MaterialRefNo:VB40021,MaterialQuantity:1,Price:27.5,Weight:0.2,EnName:Handheld Massager,WarehouseID:302,ProducingArea:112,CnName:,;";
|
密钥:string key = "ca0c0b19-4d8c-46b2-b91b-10fb3b44da9f80000"; |
.NET 提交实例
第一步:在你建好的 asp.net 项目中,添加 web 引用,输入皇家物流提供的 API 服务地址。为:
http://www.pfcexpress.com/we bservice/APIWebService.asmx
pfc.pfcwebservice p = newpfc.pfcwebservice();
stringresult = p. InsertUpdateOrder(strorderinfo, strorderproduct, stradd, secretkey);
JAVA 提交实例
String endpoint=" http://pfcexpress.com/webservice/APIWebService.asmx";
try{
//创建一个服务(service)调用(call)
Service service=new Service();
Call call= (Call) service.createCall();//通过service创建call对象
//设置service所在URL
call.setTargetEndpointAddress(new java.net.URL(endpoint)); //这个就是传参数的变量,也就是NET方面的参数,一定不要带错了
call.addParameter(new QName(" http://tempuri.org/","strorderinfo"), org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(" http://tempuri.org/","strorderproduct"),org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(" http://tempuri.org/","stradd"),
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(" http://tempuri.org/","secretkey"),
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.setOperationName(new QName(" http://tempuri.org/","InsertUpdateOrder"));//方法名
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
call.setUseSOAPAction(true);
call.setSOAPActionURI(" http://tempuri.org/InsertUpdateOrder");
String strorderinfo="Style:1;GFF_CustomerID:80000;GFF_ReceiveSendAddressID:;ConsigneeName:Ameerahmed;Country:84;Base_ChannelInfoID:46;State:Paris-;City:Paris;OrderStatus:1;Address1:144 rue de rennes, 5eme etage – CODE 6335A – NOM –COTTIN AMEER;Address2:;CsRefNo:D4N3YZMJ69LI;Zipcode:75006;Contact:+33643052323;CusRemark:;TrackingNo:;";
String strorderproduct="MaterialRefNo:VB40021,MaterialQuantity:1,Price:27.5,Weight:0.2,EnName:Handheld Massager,WarehouseID:302,ProducingArea:112,CnName:,;";
String a = (String) call.invoke(new Object[] {
strorderinfo,strorderproduct,"","d0fc2606-611f-443a-aea2-aa209673a32c80000"});
System.out.println("--------"+a);
} catch (ServiceException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
}
返回结果
名称 |
类型 |
是否必须 |
示例值 |
描述 |
complete |
Boolean |
否 |
True |
表示提交是否成功 输出参数提交后返回系统生成的订单号加返回的提示信息,订单号和提示信息用'-'隔开,如果错误返回错误编码信息
返回成功的示列直接返回字符串:订单保存并提交成功!-DL140887(追踪号);R800001409100028(订单号)注:有追踪号返回追踪号,没有追踪号不返回,订单号必返回
返回错误信息实例:保存失败,请检查数据录入项是否有误!收件人国家错误!系统匹配不到相应的收件人国家
订单新建成功,预报成功结果实例:订单保存并提交成功!-DL140887(追踪号);R800001409100028(订单号)预报结果:预报:1条记录!,成功预报1条记录
订单新建成功,预报失败结果实例:订单保存并提交成功!-DL140887(追踪号);R800001409100028(订单号)预报结果:预报失败的订单号:R800001409090003错误信息:订单验证错误,错误信息为【商品重量不能为0】 |
返回示例
描述 |
示例 |
订单保存并提交成功 |
DL140887;R800001411160002 |
错误码
错误码 |
错误描述 |
解决方案 |
|
保存失败,请检查数据录入项是否有误!! |
根据提示请输入正确的数据 |
API示例工具
示例
.NET 示例
- 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址:
"http://{网址}/webservice/APIWebService.asmx"
- 第二步:初始化,再调用方法,即可获取到数据
.webservice p = new.webservice();
string result = p. InsertUpdateOrder(strorderinfo, strorderproduct, stradd, secretkey);
返回示例
订单保存并提交成功!-R800001501190004
查询产品库存
- 应用场景:用户可以通过API查询SKU/条形码的存储信息。
- 需要授权,请到用户中心申请key.
- 请求的地址:
"http://{网址}/webservice/APIWebService.asmx/getStock"
- 输入参数:如下
- 授权:需要
- 返回:Json
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
skuorcode |
String |
必须 |
|
SKU/条形码 |
A00001 |
customerid |
String |
必须 |
|
用户 id |
80000 |
Secretkey |
String |
必须 |
|
密钥 --identifier |
d0fc2606-611f-443a-aea2-aa209673a32c80000 |
WarehouseName |
String |
必须 |
|
仓储(SZWH-深圳西丽仓(302),GZWH广州仓储(381)HKWH-香港仓储(382)) |
302 |
返回结果
名称 |
返回值 |
描述 |
OutinQuantity |
8662 |
库存数量 |
Stock |
6 |
占用数量 |
CnName |
MP31243 112\uFF0C |
产品中文名 |
EnName |
MP31 |
产品英文名 |
OutinQuantity |
1 |
库存数量 |
Stock |
1 |
占用数量 |
CnName |
MP31243 112\uFF0C |
产品中文名 |
EnName |
MP31 |
产品英文名 |
错误码
API示例工具
示例
.NET 示例
- 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址
:"http://{网址}/webservice/APIWebService.asmx"
- 第二步:初始化,再调用方法,即可获取到数据
string result = p. getStock (skuorcode, customerid, secretkey, WarehouseName);
例如:p.getStock(S4-ACHEB, 80003,2acd2496-78f8-4eac-ba9c-fd152c2fb41e80003,302)
返回示例
[{"OutinQuantity":"8662","Stock":"6","CnName":"MP31243 112\uFF0C","EnName":"MP31"},{"OutinQuantity":"1","Stock":"1","CnName":"MP31243 112\uFF0C","EnName":"MP31"}]
包裹追踪信息
- 应用场景:用户可以通过API查询订单追踪信息.
- 请求的地址:
"http://{网址}/webservice/APIWebService.asmx/getOrder_Track"
- 输入参数:OrderNo(订单号,追踪号)
- 输出参数:返回json字符串
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
Order number/Tracking number |
String |
必须 |
|
订单号/快递单号 |
R800001411160002 |
返回结果
名称 |
返回值 |
派送内容 |
SHENZHEN - CHINA:交运发往目的地(Departed Facility in ) |
时间 |
2014-11-16 16:19:55 |
错误码
API示例工具
示例
.NET 示例
- 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址。假设为:
"http://{网址}/webservice/APIWebService.asmx"
- 第二步:初始化,再调用方法,即可获取到数据。
.webservice p = new.webservice();
string result = p. getOrder_Track("R807521408070065")
返回示例
描述( Describe) 最后投递时间(the last delivery time)
SHENZHEN - CHINA:交运发往目的地(Departed Facility in ) 2014-11-16 16:32:09
SHENZHEN - CHINA:收取包裹(Shipment picked up) 2014-11-16 16:19:55
打印标签
- 应用场景:用户可以直接访问地址填写相应的信息可打印标签
- 请求的地址:
http://{网址}/webservice/APIWebService.asmx
- 请求方法 GetLablesUrl
- 返回PDF连接
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
OrderNo |
|
必须 |
|
订单号/跟踪号 |
R800001411160002 |
测试工具 获取仓储信息
- 应用场景:用户可以通过API获取仓储信息
- 请求的地址:
"http://{网址}/webservice/APIWebService.asmx"
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
Secretkey |
String |
必须 |
|
密钥 |
d0fc2606-611f-443a-aea2-aa209673a32c80000 |
返回结果
名称 |
返回值 |
SZWH-深圳西丽仓 |
仓储名称 |
302 |
仓储ID |
测试工具 示例
.NET 示例
- 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址。假设为:
"http://{网址}/webservice/APIWebService.asmx"
- 第二步:初始化,再调用方法,即可获取到数据。
.webservice p = new.webservice();
string result = p. GetWarehouse();//返回字符串
返回示例
302:SZWH-深圳西丽仓;381:GZWH广州仓储;382:HKWH-香港仓储;457:深圳VIP仓储
创建订单错误返回
返回值 |
说明 |
解决方案 |
"" |
没有权限插入日志 |
联系管理员 |
你的密钥不正确 |
系统匹配不到正确的密钥 |
请检查密钥和用户ID是否正确,调用的接口地址是否匹配 |
Strorderinfo(订单主数据)或Strorderproduct(订单明细)为空! |
订单数据不正确 |
请查看“创建订单”中的提交实例 |
发件人无效,请检查是否在系统新建发件人? |
用户没有发件人 |
请进入用户的客户端新建一个发件人 |
收件人国家错误!系统匹配不到相应的收件人国家! |
系统匹配不到发件人国家 |
请查看“创建订单”中的输入参数 |
运输方式(渠道)数据错误!系统匹配不到相应的运输方式(渠道)! |
系统匹配不到运输方式(渠道) |
请查看“创建订单”中的输入参数 |
订单保存并提交成功!-DL140887(跟踪号,运单号);R800001409100028(订单号) |
订单提交成功(没有任何错误) |
提交到确认的订单才会返回跟踪号 |
订单保存并提交成功!-R800001409100028(订单号) |
订单提交成功(没有任何错误) |
订单没有返回跟踪号,本身渠道部返回跟踪号,也不预报 |
订单保存并提交成功!-R800001409100028(订单号)-预报失败:订单号R800001409100028邮编不正确 |
订单提交成功(没有任何错误) |
订单没有返回跟踪号,渠道有预报,但是预报失败,会返回预报后的错误信息 |
订单保存成功,但提交到确认状态失败!-明细插入失败 |
订单主数据提交成功(明细插入失败) |
请检查传入的明细数据 |
订单保存成功,但提交到确认状态失败!错误信息 |
提交到确认失败 |
请检查传入的“订单类型”Style:1 仓储订单(如果传入的明细产品不存在则提交到确认失败) |
订单保存成功,但由于不满足跟踪号必须唯一或者收件人名称、收件人国家、运输方式、地址行1都不能为空,提交到确认状态失败!-" 错误信息 |
订单保存成功 |
请检查传入数据是否有误! |
订单出错 |
传入的数据格式不正确 |
请参考“创建订单”中的提交实例 |
技术支持
API问题请发邮件至 eleven@pfcexpress.com