查询支持的服务
- 应用场景:获取有效的运输方式列表(中文名,英文名,代码,时效,图标)
- 函数名称:getChannel(secretkey)
- 提交参数:secretkey(API密钥)
- 授权:需要
- 返回: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"}
运费查询(v2)
- 应用场景:通过国家和重量及体积获取各运输方式价格(运输方式中文名CHCnName、英文名CHEnName、服务代码ChannelCode、时效RefTime、图标、总费用MinSaleAmountTotal)
- 请求的地址: http://m.pfcexpress.com:84/api/PriceQuery/Get/US/1/1000
- 授权:需要
- 输入参数:如下
参数说明
名称 |
类型 |
是否必须 |
说明 |
示例 |
ISO Code |
String |
必须 |
国家二字码 |
US |
Weight |
decimal |
必须 |
重量 单位Kg |
0.5 |
Volume |
decimal |
必须 |
体积 |
1000 |
.NET 提交实例
string serverurl = "http://m.pfcexpress.com:84/";
string acition = "api/PriceQuery/Get/US/0.5/1000";
string apikey = "75273d06-3371-4cfb-9fa3-4621644d53b180000";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serverurl + acition);
request.ContentType = "application/json";
request.Accept = "application/json";
request.Headers.Add("Authorization", "Bearer " + apikey);
request.Method = "Get";
try
{
using (WebResponse response = request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string text = reader.ReadToEnd();
}
}
}
catch (WebException ex)
{
throw ex;
}
JAVA 提交实例
try {
String serverurl="http://m.pfcexpress.com:84/";
String action="api/PriceQuery/Get/US/0.5/1000";
String apikey="75273d06-3371-4cfb-9fa3-4621644d53b180000";
URL url = new URL(serverurl+action);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod("Get");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Bearer " + apikey);
conn.connect();
OutputStream out = conn.getOutputStream();
out.write((shipment.toString()).getBytes());
out.flush();
out.close();
System.out.println(conn.getResponseCode());
if (conn.getResponseCode() == 200) {
System.out.println("ok");
InputStream in = conn.getInputStream();
String result = null;
try {
byte[] rsdata = new byte[in.available()];
in.read(rsdata);
result = new String(rsdata);
System.out.println(result);
} catch (Exception e1) {
e1.printStackTrace();
}
} else {
System.out.println("no++");
}
} catch (Exception e) {
}
PHP 提交实例
$serverurl = "http://m.pfcexpress.com:84/";
$acition = "api/PriceQuery/Get/US/0.5/1000";
$apikey = "75273d06-3371-4cfb-9fa3-4621644d53b180000";
$headers=array('Authorization: '.'Bearer '.$apikey,'Content-type: application/json');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $serverurl.$acition);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$json = curl_exec($ch);
curl_close($ch);
$result=json_decode($json, true);
print_r($result);
返回结果
序号 |
参数名 |
参数类型 |
描述 |
1 |
status |
Int |
200代表成功
500代表未知错误
501代表 秘钥错误
|
2 |
msg |
string |
信息提示 |
3 |
data |
string |
返回的数据 |
返回示例
成功
成功:
{
"status": 200,
"msg": "",
"data": [
{
"CHCnName": "比利时全球小包",
"CHEnName": "Bpost Global Mail",
"ChannelCode": "GBPOST",
"RefTime": "7 - 15",
"MinSaleAmountTotal": "105.000",
"CalWeight": "1.000",
"BaseFee": "91.600",
"FuelFee": "0.000",
"TrackFlag": "1",
"VolWeightFlag": "0",
"ImageUrl": "http://oms.pfcexpress.com/Manage/UpFile/ChannelLabelPicture/635774794688066451_QQ图片20140628093941.jpg",
"Remark": "",
"StyleName": "国际小包"
}
]
}
失败
失败:
{
"status": 501,
"msg": "API key is not correct",
"data": null
}
订单信息查询
- 应用场景:通过订单号或跟踪号获取(订单状态、总费用、订单号、跟踪号、转单号)
- 函数名称: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"}]
创建订单(v1)
- 应用场景:用户可以通过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 |
可选 |
|
客户订单备注(税号类型;IOSS:填入import;No-IOSS:填入non-union;Other:不填内容) |
Null |
TrackingNo |
String |
可选 |
|
跟踪号 |
RT209114500HK |
CODFee |
String |
可选 |
|
代收货款金额 |
500 |
Duty |
String |
可选(1,2) |
|
税费费用承担方式---(1=DDP 是由寄件人支付关税),(2=DDU 是由收件人支付关税) |
2 |
VatNo |
String |
可选 |
|
VAT税号 |
|
EORI |
String |
可选 |
|
EORI号 |
|
IOSS |
String |
可选 |
|
IOSS号 |
|
HSCode |
String |
可选 |
|
海关编码 |
|
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 产品中文名 |
中文名 |
BatteryFlag |
String |
可选 |
|
是否带电 |
0代表不带电 1代表带电 默认为0 |
...... |
...... |
...... |
...... |
...... |
...... |
提交实例
主信息: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:;VatNo:;"; |
明细信息: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://oms.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
创建订单(v2)
- 应用场景:用户可以通过API建立订单信息到系统中
- 请求的地址:
"http://oms.pfcexpress.com/webservice/v2/CreateShipment.aspx"
- 授权:需要
- 输入参数:如下
参数说明
名称 |
类型 |
是否必须 |
说明 |
示例 |
Type |
Int |
必须 |
1为仓储订单 2为普通订单 |
2 |
INorOut |
Int |
必须 |
0 出口 1 进口 |
0 |
WarehouseId |
String |
选填 |
仓储订单为必填 |
302 |
CsRefNo |
String |
选填 |
客户参考号(可填平台订单号/单号) |
201710100001 |
CustomerId |
String |
必填 |
客户ID |
80000 |
ChannelId |
String |
必须 |
渠道ID |
91 |
Sender |
String |
选填 |
发件人 |
PFCexpress |
SendAddress |
String |
选填 |
发件人地址 |
San Fernando |
SendPhone |
String |
选填 |
发件人电话 |
400-66566-88888 |
SendEmail |
String |
选填 |
发件人邮箱 |
sales@pfcexpress.com |
SendCompany |
String |
选填 |
发件人公司 |
pfc.inc |
ShipToName |
String |
必填 |
收件人 |
zhangshan |
ShipToCountry |
String |
必填 |
收件人国家二字码 |
US |
ShipToState |
String |
必填 |
收件人州 |
UT |
ShipToCity |
String |
必填 |
收件人城市 |
Cedar City |
ShipToAdress1 |
String |
必填 |
收件人地址1 |
1225 W Harding Ave Apt 32 |
ShipToAdress2 |
String |
选填 |
收件人地址2 |
|
ShipToZipCode |
String |
必须 |
收件人邮编 |
84720 |
ShipToCompanyName |
String |
选填 |
收件人公司 |
Company.inc |
ShipToEmail |
String |
选填 |
收件人邮编 |
Email@me.com |
OrderStatus |
Int |
必须 |
订单状态 1草稿 3确认 |
1 |
TrackingNo |
String |
选填 |
追踪号 |
|
BatteryFlag |
String |
选填 |
是否带电池 0 不带 1 带点 默认0 |
0 |
CODFee |
decimal |
选填 |
代收货款金额 |
500.00 |
IDCardNo |
String |
选填 |
身份证号码 进口订单 必填 |
|
VatNo |
String |
选填 |
税号 |
|
EORI |
String |
选填 |
EORI |
|
HSCode |
String |
选填 |
海关编码 |
|
Products |
Array |
必须 |
订单明细 |
|
SKU |
String |
必填 |
SKU |
SKU0001 |
EnName |
String |
必填 |
英文品名 |
Reflective clothes |
CnName |
String |
选填 |
中文品名 |
反光衣 |
MaterialQuantity |
Int |
必填 |
数量(/个) |
1 |
Price |
decimal |
必填 |
申报价值(USD/个) |
10.00 |
Weight |
decimal |
必填 |
重量(KG/个) |
0.5 |
Length |
decimal |
选填 |
长(/CM) |
0.5 |
Width |
decimal |
选填 |
宽(/CM) |
0.5 |
High |
decimal |
选填 |
高(/CM) |
0.5 |
ProducingArea |
String |
选填 |
产地 |
CN |
HSCode |
String |
选填 |
海关编码 |
HS8888888 |
提交实例
.NET 提交实例
string serverurl = "http://oms.pfcexpress.com/";
string acition = "webservice/v2/CreateShipment.aspx";
string apikey = "75273d06-3371-4cfb-9fa3-4621644d53b180000";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serverurl + acition);
request.ContentType = "application/json";
request.Accept = "application/json";
request.Headers.Add("Authorization", "Bearer " + apikey);
request.Method = "Post";
byte[] data = Encoding.UTF8.GetBytes(Body);
request.ContentLength = data.Length;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(data, 0, data.Length);
}
try
{
using (WebResponse response = request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string text = reader.ReadToEnd();
}
}
}
catch (WebException ex)
{
throw ex;
}
JAVA 提交实例
try {
String serverurl="http://oms.pfcexpress.com/";
String action="webservice/v2/CreateShipment.aspx";
String apikey="75273d06-3371-4cfb-9fa3-4621644d53b180000";
URL url = new URL(serverurl+action);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Charset", "UTF-8");
byte[] data = Body.getBytes();
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Bearer " + apikey);
conn.connect();
OutputStream out = conn.getOutputStream();
out.write((shipment.toString()).getBytes());
out.flush();
out.close();
System.out.println(conn.getResponseCode());
if (conn.getResponseCode() == 200) {
System.out.println("ok");
InputStream in = conn.getInputStream();
String result = null;
try {
byte[] rsdata = new byte[in.available()];
in.read(rsdata);
result = new String(rsdata);
System.out.println(result);
} catch (Exception e1) {
e1.printStackTrace();
}
} else {
System.out.println("no++");
}
} catch (Exception e) {
}
PHP 提交实例
$serverurl = "http://oms.pfcexpress.com/";
$acition = "webservice/v2/CreateShipment.aspx";
$apikey = "75273d06-3371-4cfb-9fa3-4621644d53b180000";
$params=array(
'Type'=>2,
'CustomerId'=>'80000',
'ChannelId'=>'DPD',
'Sender'=>'Ken',
'SendPhone'=>'73948563',
'SendAddress'=>'20 Orley Ave',
'SendCompany'=>'CS',
'SendEmail'=>'fjyer@huangjia.com',
'ShipToName'=>'Eric',
'ShipToPhoneNumber'=>'2025551212',
'ShipToCountry'=>'US',
'ShipToState'=>'DC',
'ShipToCity'=>'Washington',
'ShipToAdress1'=>'475 L Enfant Plaza SW',
'ShipToAdress2'=>'',
'ShipToZipCode'=>'20260',
'ShipToCompanyName'=>'Express',
'OrderStatus'=>1,
'TrackingNo'=>'',
'Remark'=>'',
'BatteryFlag'=>0,
'INorOut'=>0,
'CODFee'=>0,
'IDCardNo'=>'',
'VatNo'=>'',
'EORI'=>'',
'HSCode'=>'',
'CsRefNo'=>'JH008',
'WarehouseId'=>'',
'Products'=>array(
array(
'CnName'=>'手机',
'EnName'=>'Mobile',
'Weight'=>0.1,
'Price'=>5800,
'ProducingArea'=>'America',
'HSCode'=>'65421',
'SKU'=>'SK001',
'Length'=>0.1,
'Width'=>0.2,
'High'=>0.3,
'MaterialQuantity'=>1
),
array(
'CnName'=>'鞋子',
'EnName'=>'shoes',
'Weight'=>0.2,
'Price'=>120,
'ProducingArea'=>'France',
'HSCode'=>'65421',
'SKU'=>'SK002',
'Length'=>0.1,
'Width'=>0.2,
'High'=>0.3,
'MaterialQuantity'=>1
)
)
);
$jsonparams=json_encode($params);
$headers=array('Authorization: '.'Bearer '.$apikey,'Content-type: application/json');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $serverurl.$acition);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonparams);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$json = curl_exec($ch);
curl_close($ch);
$result=json_decode($json, true);
print_r($result);
返回结果
序号 |
参数名 |
参数类型 |
描述 |
1 |
status |
Int |
200代表成功
500代表未知错误
501代表 秘钥错误
502代表参数错误
503代表未找到国家代码
504代表未找到渠道代码
505代表未找到发件人
506代表参考号已存在
507代表跟踪号已存在
508代表预报失败
509代表库存不足
510代表未找到仓储
511代表产品不存在
512订单状态不正确
513代表订单类型不正确
|
2 |
msg |
string |
信息提示 |
3 |
data |
string |
返回的数据 |
返回示例
成功
成功:
{
"status": 200,
"msg": "Success",
"data": {
"TrackingNo": null,
"OrderNo": "R800001709270001",
"CsRefNo": "JH0010",
"LablesUrl": null
}
}
/div>
失败
失败:
{
"status": 506,
"msg": "CsRefNo repeat",
"data": null
}
查询产品库存
-
应用场景:用户可以通过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://{网址}/Manage/PrintPage/Print_PDF.aspx?OrderNo=RP05851311190001,&type=A4"(A4标签)
"http://{网址}/Manage/PrintPage/Print_PDF.aspx?OrderNo=RP05851311190001,&type= (热敏标签)"
- 参数介绍:OrderNo可以填单号,追踪号。RP05851311190001,RP05851311190001逗号隔开type:打印格式=A4就打印A4的
- Type空的话,就是打印热敏的。
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
type |
|
|
|
打印纸张格式:A4打印A4尺寸;
留空打印热敏的格式。
|
A4 |
Order number |
|
必须 |
|
订单号/快递单号 |
R800001411160002 |
测试工具
打印标签
- 应用场景:用户可以直接访问地址填写相应的信息可打印标签
-
请求的地址:
http://{网址}/webservice/APIWebService.asmx
- 请求方法GetLablesUrl
- 返回JSON
请求参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
OrderNo |
|
必须 |
|
订单号/跟踪号 |
9400110200882632305530 |
返回结果
参数 |
返回值 |
success |
是否成功 true/false |
error |
错误信息 success为false 侧有值 |
LablesUrl |
标签URL |
创建ASN单
- 应用场景:用户可以通过API建立入库清单到系统中
- 请求的地址:
"http://{网址}/webservice/APIWebService.asmx"
- 请求方法:CreateAsn
- 授权:需要
- 输入参数:如下
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
Storage |
String |
必须 |
|
仓库Id通过仓储接口获取 |
302 |
DeliveryStyle |
String |
必须 |
|
运输方式[Delievery Paid,Express delivery,Their delivery] |
Delievery Paid |
EnchaseType |
String |
必须 |
|
装箱类型[Original,Mixed] |
Original |
RefNo |
String |
必须 |
|
参考号 |
|
WaybillNumber |
String |
选填 |
|
运单号 |
|
ReachStartTime |
String |
必须 |
|
预计最早到仓时间 |
2022-04-08 |
ReachEndTime |
String |
必须 |
|
预计最晚到仓时间 |
2022-04-08 |
GFF_CustomerID |
String |
必须 |
|
客户ID |
80000 |
CusRemark |
String |
选填 |
|
备注 |
|
SKU |
String |
必须 |
|
SKU |
|
Quantity |
String |
必须 |
|
数量 |
100 |
CartonNumber |
String |
必须 |
|
箱号 |
1001 |
...... |
...... |
...... |
...... |
...... |
...... |
提交实例
asninfo:{"storage":"302","enchaseType":"Original","enchaseNum":"1","deliveryStyle":"Delievery Paid","RefNo":"cs1001","waybillNumber":"123","reachStartTime":"2022-04-07","reachEndTime":"2022-04-07","gfF_CustomerID":"80000","CusRemark":"","products":[{"sku":"DM-0812-13","quantity":"1","cartonNumber":"123"}]} |
密钥:string secretkey = "ca0c0b19-4d8c-46b2-b91b-10fb3b44da9f80000"; |
返回示例
描述 |
示例 |
|
{"status":200,"msg":null,"data":{"Address":"深圳市龙岗区坂田街道上雪科技园一路二号C栋4楼皇家物流","Consignee":"皇家物流仓储中心-唐裕辉","Phone":"13530213478","ZipCode":"518000","ASNNo":"A800002204080003","Label":"https://oms.pfcexpress.com/Manage/PrintPage/PrintPackage.aspx?oid=181434338"}} |
错误码
错误码 |
错误描述 |
解决方案 |
502 |
{"status":502,"msg":"Wrong Storage","data":null} |
根据提示请输入正确的数据 |
查询ASN单信息
- 应用场景:用户可以通过API查询入库清单信息
- 请求的地址:
"http://{网址}/webservice/APIWebService.asmx"
- 请求方法:GetAsnInfo
- 授权:需要
- 输入参数:如下
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
asnno |
String |
必须 |
|
ASN单号 |
|
gff_customerid |
String |
必须 |
|
客户ID |
|
secretkey |
String |
必须 |
|
密钥 |
|
返回示例
描述 |
示例 |
|
{"status":200,"msg":null,"data":[{"SKU":"DM-0812-13","TakedQuantity":"1"}]} |
错误码
错误码 |
错误描述 |
解决方案 |
502 |
{"status":502,"msg":"Can't find ASNNo or Quality checking in progress","data":null} |
根据提示请输入正确的数据 |
拦截订单
- 应用场景:用户可以通过API拦截已付款待发货,未付款待发货,处理中的订单
- 请求的地址:
"http://{网址}/webservice/APIWebService.asmx"
- 请求方法:AddPromble
- 授权:需要
- 输入参数:如下
输入参数
名称 |
类型 |
是否必须 |
默认值 |
说明 |
示例 |
No |
String |
必须 |
|
订单号或者追踪单号 |
|
Remark |
String |
必须 |
|
截单原因以及处理方式 |
|
CustomerId |
String |
必须 |
|
客户ID |
Original |
提交实例
{"order":"{\"no\":\"R800002209210002\",\"remark\":\"取消订单\",\"customerId\":\"80000\"}","secretkey":"39129c2c-30fc-4a5c-3dc82-da5732a8352d80000"} |
返回示例
描述 |
示例 |
|
{"status":200,"msg":"截单成功!"}} |
错误码
错误码 |
错误描述 |
解决方案 |
502 |
{"status":502,"msg":截单成功:R800002207300327已做过截单!"} |
根据提示请输入正确的数据 |
获取仓储信息
- 应用场景:用户可以通过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问题请发邮件至 sales@pfcexpress.com