开放平台

开放平台( Open Platform)是基于业务的开放平台,提供外部合作伙伴及用户产品信息、订单信息、包裹计费、包裹查询等信息,用户可以方便的集成到网站或系统,实现信息无缝对接。

如何使用

1.首先您需要拥有账号
2.进入用户中心启用API服务,获取秘钥
3.API服务请求的地址: "http://{网址}/webservice/APIWebService.asmx"

授权

1.使用API需要到用户中心申请,系统生成秘钥,秘钥可停用或更换
2.API只能调用自己账户的信息

API用户授权类型

需要

获取国家名称

  1. 应用场景:查询所支持的邮寄国家
  2. 函数名称:getCountry(secretkey)
  3. 提交参数:secretkey(API密钥)
  4. 授权:需要
  5. 返回:JSON

输入参数

字段 类型 是否必须 默认值 说明 示例
Secretkey String 必须 密钥 d0fc2606-611f-443a-aea2-aa209673a32c80000

返回结果

字段 类型 是否必须 默认值 说明 示例
ShortName String 必须 国家简写 AF
EnName String 必须 国家英文名称 Afghanistan
Cnname String 必须 国家中文名称 阿富汗
Base_placeId String 必须 国家编码 20

错误码

名称 类型 是否必须 示例值 描述
complete Boolean true true表示提交成功

API示例工具

示例

.NET 示例

  1. 第一步:在建好的asp.net项目中,添加web引用,输入提供的API服务地址: "http://{网址}/webservice/APIWebService.asmx"
  2. 第二步:初始化,再调用方法,即可获取到数据
    .webservice p=new .webservice();
    string result = p.getCountry(secretkey);

返回示例

  
[{"ShortName":"AF","EnName":"Afghanistan","Cnname":"\u963F\u5BCC\u6C57","Base_placeId":"20"}]

查询支持的服务

  1. 应用场景:获取有效的运输方式列表(中文名,英文名,代码,时效,图标)
  2. 函数名称:getChannel(secretkey)
  3. 提交参数:secretkey(API密钥)
  4. 授权:需要
  5. 返回: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 示例

  1. 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址: "http://{网址}/webservice/APIWebService.asmx"
  2. 第二步:初始化,再调用方法,即可获取到数据
    .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"}
                              

运费查询

  1. 应用场景:通过国家和重量及体积获取各运输方式价格(运输方式中文名CHCnName、英文名CHEnName、服务代码ChannelCode、时效RefTime、图标、总费用MinSaleAmountTotal)
  2. 函数名称:getFeeByCWV(string country,stringweight,stringvolume,stringcustomerid, string secretkey)
  3. 如果可以识别账户得的是折扣后总费用
  4. 提交参数:country(国家编码), weight(重量), volume(体积), customerid(客户ID),scretkey(密钥)
  5. 授权:需要
  6. 返回: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 示例

  1. 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址: "http://{网址}/webservice/APIWebService.asmx"
  2. 第二步:初始化,再调用方法,即可获取到数据
    .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"}

订单信息查询

  1. 应用场景:通过订单号或跟踪号获取(订单状态、总费用、订单号、跟踪号、转单号)
  2. 函数名称:getPackage(string orderNo,stringcustomerid, string secretkey)
  3. 提交参数:strwhere(订单号或跟踪号), customerid(客户ID),scretkey(密钥)
  4. 授权:需要
  5. 返回: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 示例

  1. 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址: "http://{网址}/webservice/APIWebService.asmx"
  2. 第二步:初始化,再调用方法,即可获取到数据
    .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"}]

创建订单

  1. 应用场景:用户可以通过API建立订单信息到系统中
  2. 请求的地址: "http://{网址}/webservice/APIWebService.asmx"
  3. 授权:需要
  4. 输入参数:如下

输入参数

名称 类型 是否必须 默认值 说明 示例
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
Strorderproduct String 必须 明细数据  
MaterialRefNo String 必须 物品1 产品编号 SKU1
MaterialQuantity 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 stradd = "";(不要传NULL 传空)
密钥: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 示例

  1. 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址: "http://{网址}/webservice/APIWebService.asmx"
  2. 第二步:初始化,再调用方法,即可获取到数据
    .webservice p = new.webservice();
    string result = p. InsertUpdateOrder(strorderinfo, strorderproduct, stradd, secretkey);

返回示例

订单保存并提交成功!-R800001501190004 

查询产品库存

  1. 应用场景:用户可以通过API查询SKU/条形码的存储信息。
  2. 需要授权,请到用户中心申请key.
  3. 请求的地址:"http://{网址}/webservice/APIWebService.asmx/getStock"
  4. 输入参数:如下
  5. 授权:需要
  6. 返回: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 示例

  1. 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址:"http://{网址}/webservice/APIWebService.asmx"
  2. 第二步:初始化,再调用方法,即可获取到数据
    ԌEԌert alert-danger">--> 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"}]

包裹追踪信息

  1. 应用场景:用户可以通过API查询订单追踪信息.
  2. 请求的地址: "http://{网址}/webservice/APIWebService.asmx/getOrder_Track"
  3. 输入参数:OrderNo(订单号,追踪号)
  4. 输出参数:返回json字符串

输入参数

名称 类型 是否必须 默认值 说明 示例
Order number/Tracking number String 必须 订单号/快递单号 R800001411160002

返回结果

名称 返回值
派送内容 SHENZHEN - CHINA:交运发往目的地(Departed Facility in )
时间 2014-11-16 16:19:55

错误码

错误码 错误描述 解决方案

API示例工具

示例

.NET 示例

  1. 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址。假设为: "http://{网址}/webservice/APIWebService.asmx"
  2. 第二步:初始化,再调用方法,即可获取到数据。
    .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

打印标签

  1. 应用场景:用户可以直接访问地址填写相应的信息可打印标签
  2. 请求的地址:
    "http://{网址}/Manage/PrintPage/Print_PDF.aspx?OrderNo=RP05851311190001,&type=A4"(A4标签)
    "http://{网址}/Manage/PrintPage/Print_PDF.aspx?OrderNo=RP05851311190001,&type= (热敏标签)"
  3. 参数介绍:OrderNo可以填单号,追踪号。RP05851311190001,RP05851311190001逗号隔开type:打印格式=A4就打印A4的
  4. Type空的话,就是打印热敏的。

输入参数

名称 类型 是否必须 默认值 说明 示例
type     打印纸张格式:A4打印A4尺寸; 留空打印热敏的格式。 A4
Order number   必须 订单号/快递单号 R800001411160002
测试工具

获取仓储信息

  1. 应用场景:用户可以通过API获取仓储信息
  2. 请求的地址: "http://{网址}/webservice/APIWebService.asmx"

输入参数

名称 类型 是否必须 默认值 说明 示例
Secretkey String 必须 密钥 d0fc2606-611f-443a-aea2-aa209673a32c80000

返回结果

名称 返回值
SZWH-深圳西丽仓 仓储名称
302 仓储ID
测试工具

示例

.NET 示例

  1. 第一步:在你建好的asp.net项目中,添加web引用,输入提供的API服务地址。假设为: "http://{网址}/webservice/APIWebService.asmx"
  2. 第二步:初始化,再调用方法,即可获取到数据。
    .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问题请发邮件至 sales@pfcexpress.com