U 订货接口说明
1. API 调用说明
2.34 系统环境说明
下文中提到的 https://api.udinghuo.cn 为 U 订货的 API 正式环境调用地址。U 订货
的测试环境 URL 为:https://next.udh.yonyouup.com
请调用接口时明确系统环境,请测试时务必使用测试环境即
https://next.udh.yonyouup.com
2.34 获取 AppKey 和 Secret
AppKey:应用的唯一标识。
AppSecret:AppKey 对应的密钥,访问用户资源时用来验证应用的合法性。
应用网站需要保证 AppSecret 的私密性,不要泄露。
正式环境请从 https://www.udinghuo.cn 进入自己的企业端账号
测试环境请从 http://next.udinghuo.cn 进入自己的企业端账号
在 U 订货后台—设置—API 接口—可以获取该用户的 AppKey 和 Secret
AppKey 和 Secret 主要用来生成 API 接口的签名串,也用来获取接口参数中
的 Token(目前 API 版本暂时不需要)。
2.34 关于 token
目前 API 为了方便用户与第三方 ERP 系统集成,默认不以 ISV 的方式调用,
1
U 订货
即 Token 也从第一步获取 appkey 和 secret 的地方获取。无需调用其他接口获
取 token。虽然 token 每次获取均会发生变化,但是任意一次获取的 token 都
是有效的。
2.34 网络连通性
必须保证 PC(浏览器)与 https:// api.udinghuo.cn 的连通性
必须保证应用网站服务器与 https://api.udinghuo.cn 的连通性
无需保证 api.udinghuo.cn 向 PC 和应用网站服务器的连通性。就是说应用网
站服务器和 PC(浏览器)可以在公司内网,公网 IP 地址和公网域名是非必要的。
2.34 确认请求参数
一个标准的 API 请求举例如下:
https://api.udinghuo.cn/rs/Orders/getOrders?appkey=xxx&token=xxx&pagesize=xxx
&pageindex=xxx&format=xxx&sign=xxx
注意:所有参数均为小写
一个标准的 U 订货 API 请求应该包含以下六个部分:
1. URL 域名:目前均为 https://api.udinghuo.cn
2. 资源访问路径:/rs/Orders/getOrders
3.
4. 请求参数:即 API 对应所需的参数名和参数值 param=value,多个请求参数间用&连接,如
token:即上文中的获取 Token 的过程。
5.
pagesize=1&pageindex=10。
format:返回数据的格式,目前支持 xml 和 json 两个值,分别返回 xml 数据
和 json 数据。
6. 签名串,由签名算法生成。
2.34 生成请求签名
签名算法如下:
1. 对所有请求参数(包括 appkey)进行字典升序排列
2. 对以上排序后的参数表进行字符串连接:key1value1key2value2key3value3…keyNvalueN,
如:appkeyxxxpageindexxxxpagesizexxxtokenxxx
3. 将 secret 的 值 作 为 上 面 字 符 串 连 接 的 前 缀 和 后 缀 , 拼 接 后 的 结 果 如 下 :
secretvalueappkeyxxxpageindexxxxpagesizexxxtokenxxxsecretvalue
4. 对该字符串做 MD5 计算。
5. 将计算结果转换为全大写形式后即可获取到签名串。
签名串获取后,将其作为 sign 参数附加到对应的 URL 中,即可正常访问 API。
注意:请保证 HTTP 请求数据编码务必为 UTF-8 格式,URL 也务必为 UTF-8 编码格式。
2
U 订货
以下是 java 代码片段示例
// 对参数名进行字典排序
String[] keyArray = paramMap.keySet().toArray(newString[0]);
Arrays.sort(keyArray);
// 拼接有序的参数名-值串
StringBuilder stringBuilder = newStringBuilder();
stringBuilder.append(secret);
for (Stringkey :keyArray)
{
}
stringBuilder.append(key).append(paramMap.get(key));
stringBuilder.append(secret);
Stringcodes = stringBuilder.toString();
return DigestUtils.md5Hex(codes).toUpperCase();
2.34 拼接请求 URL
将 Appkey,参数,token,format,生成的签名(即 sign)以及 API 访问路径,
URL 域名拼接成一个 URL。
以下是 java 代码示例
假设你有一个名为 paramMap 的参数列表
// 添加签名
stringBuildersbr = new StringBuilder();
sbr.append("appkey=").append(appKey).append("&token=").append(token);
sbr.append("&format=xml").append("&sign=").append(sign);
for (Entryentry :paramMap.entrySet())
{
sbr.append('&').append(entry.getKey()).append('=').append(entry.getValue());
}
String queryString = sbr.toString();
2.34 发起请求并返回果
请求只支持 GET 和 POST,参数中可以通过 format 指定返回结果的类型,支持
返回结果为 json 或者 xml
JSON 格式返回数据:{“code”:200,”message”:””,data:{}}
XML 格式返回数据
3
U 订货
//结果编码
//提示信息
//上传结果
code=200 代表此次请求执行成功,返回结果在 data 中
code=999 代表此次请求执行失败,失败的信息存在于 message
中。
Code=901 代表没有权限,执行失败
Code=998 代表参数异常,执行失败
Code=900 代表登录异常,执行失败
2. 模型描述
2.1 订单基本信息 Order
字段名称
oAgent
cOrderNo
iInvoiceMoney
cBankName
类型
Agent
string
string
string
4
可选
否
否
否
否
内容
客户信息
订单编号
发票金额
发票开户行
U 订货
cSubBankName
cBankCode
cUserBankName
cInvoiceTitle
cInvoiceType
cBankAccount
cInvoiceContent
cTaxNum
cAddress
cTelephone
cReceiver
cReceiveMobile
cReceiveTelePhone
cReceiveAddress
cReceiveZipCode
cReceiveContacter
cReceiveContacterPhone
iCorpContactId
cCorpContactUserName
cCorpContactUserErpCode
dOrderDate
dSendDate
dDeliveryDate
dPayDate
cStatusCode
cNextStatusName
cNextStatus
cPayStatusCode
fTotalMoney
fPayMoney
fRealMoney
fOrderPayMoney
fOrderRealMoney
fReight
cNextStatus
cNextStatus
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
Double
Double
Double
Double
Double
string
string
5
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
发票开户支行
发票开户行编码
发票开户名
发票抬头
发票类型
发票开户账号
发票内容
税号
发票注册地址
发票注册电话
收货人
收货人手机号
收货人电话
收货地址
收货人邮编
收货联系人
收货联系人电话
业务员用户 ID
业务员名称
业务员 Erp 编码
订单日期
预交货日期
实际发货日期
订单支付时间
订单当前状态码
订单下个状态名称
订单下个状态码
订单支付状态码
未付款:NOTPAYMENT
部分付款:PARTPAYMENT
部分付款待确认:CONFIRMPAYMENT
付款待确认:CONFIRMPAYMENT_AL
L
付款完成:FINISHPAYMENT
订单总金额
订单实付金额含运费(订货金额)
订单应付金额含运费(发货金额)
订单实付金额 (订货金额)
订单应付金额含(发货金额)
运费金额
订单下个状态码
订单下个状态码
U 订货
cNextStatus
oSubmiter
oOrderDetails
oOrderDefine
cShipToAddressErpCode
iTransactionTypeId
oTransactionType
cSalesOrgOutSysKey
cSettlementOrgOutSysKey
childOrderNos
bizOutSysKey
bizType
string
User
List
OrderDefine
Sring
Long
TransactionType
String
String
List
String
否
否
否
否
是
是
是
是
是
是
是
是
订单下个状态码
创建人
订单明细
订单表头自定义项明细
订单收货地址 ERP 编码
订单交易类型
交易类型
订单销售组织编码
订单财务组织编码
订单提交拆单后子订单号集合
商家编码,外部唯一标识
商家类型(1:租户;2:供应商;3:
经销商)
2.2 订单明细 OrderDetail
字段名称
cOrderNo
oOrderDetailDefine
idKey
oSKU
iQuantity
cProductUnitName
iAuxUnitQuantity
cProductAuxUnitName
iConversionRate
cProductCode
cSpecDescription
fSaleCost
fSalePayMoney
cProductName
iSendQuantity
fSalePrice
iSKUId
cProductOutSysKey
cOrderProductType
iStockId
iProductId
类型
string
OrderDetailDefine
String
ProductSKU
double
string
double
String
int
string
String
Double
Double
String
Double
Double
long
String
String
long
long
6
可选
否
否
内容
订单号
订单表体自定义项明细
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
行唯一标记
明细行 SKU 对象
主计量数量
主计量单位名称
辅计量数量
辅计量单位名称
主辅计量转换率
U 订货商品编码
规格属性
商品明细小计
实付金额
商品名称
已发货数量
商品实际销售单价
商品 SKUID
商品 erp 编码
SALE("销售品"),
GIFT("赠品"),
MARKUP("加价购"),
REBATE("返利商品");
商品所属仓库 ID
商品 ID
U 订货
iGroupId
fTransactionPrice
iTransactionTypeId
oTransactionType
cStockOrgOutSysKey
long
Double
Long
TransactionType
String
否
否
是
是
否
商品分组 ID
成交价
订单交易类型
交易类型
商品库存组织外部编码
2.3 订单分组信息 OrderDetailGroup
字段名称
cOrderNo
bizId
saleOrgId
类型
string
Long
Long
可选
否
否
否
内容
订单号
商家 ID
销售组织 ID
优惠类型:
ENTIRE_MONEY_ROMOTION("整单金额类促销
"),
ENTIRE_GIVEAWAY_PREPROMOTION("整
单赠品类促销"),
PRODUCT_MONEY_ROMOTION("商品金额
类促销"),
PRODUCT_GIVEAWAY_ROMOTION("商品
赠品类促销"),
PRODUCTCLASS_MONEY_ROMOTION("商
品分类金额类促销"),
PRODUCTCLASS_GIVEAWAY_ROMOTION(
"商品分类赠品类促销"),
REBATE("返利"),
PARTICULARLY("特殊优惠"),
OPEN_INTERFACE("接口促销");
优惠名称
优惠梯度描述
优惠金额
促销 ID
整单金额类促销 ID
整单金额类促销名称
整单赠品类促销 ID
整单赠品类促销名称
促销类型:1;//打折 2;//减价 3;//赠品
4;一口价
分组序号
U 订货
cApportionType
String
否
cApportionName
cApportionAttr
fApportionMoney
iPreId
iEntityMoneyPreId
cEntityMoneyPreName
iEntityGiveawayPreId
cEntityGiveawayPreName
iPreType
index
String
string
double
Long
Long
String
String
String
int
Long
7
否
否
否
否
否
否
否
否
否
否
bCalcWithDisCount
iComPromotionGroupId
iGiveawayRule
cGiveawayDes
bEntireGroup
Boolean
Long
int
String
Boolean
否
否
否
否
否
是否按比例赠送
组合促销的 ID
1;//按金额赠送
2;
商品分组 ID
是否是整单分组
//按数量计算
2.4 订单优惠劵 OrderCoupons
字段名称
cOrderNo
couponPk
couponDetailId
couponId
reduceAmount
startAmount
type
typeName
couponName
scopeType
scopeName
title
subTitle
description
useDescription
类型
string
String
Long
Long
BigDecimal
BigDecimal
Int
String
String
Int
String
String
String
String
String
可选
内容
否
否
否
否
否
否
否
否
否
否
否
否
否
否
否
订单号
优惠券流水码
优惠劵详情 id
优惠劵档案 id
减免金额
启用金额
优惠券类型(1:代金券 2:折扣券 5 记次卡 6 兑
换券)
优惠券类型描述
优惠券名称
优惠券适用类型
优惠券适用名称
券标题"
券副标题
优惠说明
使用说明
2.5 表头自定义项 OrderDefine
字段名称
order
orderNo
define1- define30
类型
string
String
String
8
可选
否
否
否
内容
订单 id
订单号
自定义项 1-自定义项 30
U 订货