一、订单如何推送
1、什么是订单推送
Linkbest 支持将媒体伙伴推广效果订单主动推送至媒体伙伴平台。
2、填写推送地址
媒体伙伴接入 Linkbest 后,在 Linkbest 网站填写 “订单推送地址”。
登录 Linkbest,我的工具-》订单推送服务。在对应的列表项中,点击“配置推送地址”。
再在弹出弹窗中填写您需要订单推送的地址,注意输入新地址将覆盖原有地址,为空则表示取消设置
提交时 Linkbest 会做一次测试推送来验证接口。推送接口需返回 1、0 表示接收到测试数据,-1 表示未接收到测试数据。详细说明
3、注意事项
Linkbest 主动推送订单的状态包括:待处理,已确认、已结算、无效,当以上几种状态发生时会主动推送给媒体伙伴平台。
Linkbest 订单的 已确认、已结算、无效 这三个状态 目前都是通过在 Linkbest 完成 结算流程 时才会对订单标记确认已确认、已结算、无效。
如果媒体伙伴需要 电商平台原始订单状态(创建、付款、退货等状态),请使用 Linkbest 订单详情查询 API。目前支持实时订单状态更新的商家才会有状态更新 ,比如京东、淘宝。
二、推送数据
Linkbest 会向推送地址发起 Get 请求,并将订单数据以请求参数方式发送。每次推送 1 个订单,同时会在参数中增加推送校验参数 Sign,说明见下文。
1、推送参数说明
参数全部为大驼峰字符,参数值为 UTF8 编码
参数 | 描述 |
---|---|
Id | 推送 ID |
ProgramId | 推广计划 ID |
ProgramName | 推广计划名称 |
WebsiteId | 媒体 ID |
SubId | 订单的渠道自定义标识值 |
OrderSn | 订单编号 |
OrderTime | 订单下单时间 |
OrdersPrice | 订单金额,当订单状态为 1 或者为 2 时, OrdersPrice 表示确认订单金额 |
Commission | 订单佣金,当订单状态为 1 或者为 2 时,Commission 表示确认佣金,其他状态值为 订单预估佣金 |
Currency | 币种,CNY 人民币 USD 美元 |
Status | 订单状态 -1 无效 0 待处理 1 已确认 2 已结算 |
Remark | 订单说明信息 |
OriginalStatus | 商家原始状态 |
Sign | 推送数据校验参数,Sign = MD5(按照参数首字母升序排列后 “参数值”拼接 string + AppSecret),拼接的参数值中不包括 Sign 和 id 参数值 |
2、接收请求安全校验说明
请求参数根据需求可能会增加或减少。对于接收方,我们建议校验 Sign 值,校验逻辑及代码示例如下:
收到的请求后
-
先提取 Sign , Id 。
-
将剩下的数据 按照数组索引首字母排序
-
将排序后的数组数据 按照 value1 + value2 + value3 + ... 的顺序拼接得到 string
-
校验 Sign 是否等于 md5( string + AppSecret )
PHP 代码示例:
$app_secret = 'yourSecret'; //接口密钥
$params = $_REQUEST;
// 注意若使用了框架要排除框架自带一些参数,如phalcon有_url参数
$Sign = $params['Sign'];
$id = $params['Id'];
unset($params['Sign'], $params['Id']);
ksort($params);
$localSign = md5(join('', array_values($params)) . $app_secret);
//如果 $localSign == $Sign 即为合法的推送
if($localSign != $Sign){
throw new Exception("非法的推送");
}
3、订单推送数据返回机制
如推送地址测试通过,在产生推广效果订单后,Linkbest 将实时推送订单数据(部分特殊商家不支持实时返单,如次日返单、隔 1 小时返单等,可咨询对接媒介)。
如推送失败,Linkbest 重试 3 次 推送,每次间隔 30 秒。
订单推送不包含订单商品明细信息,如需订单商品明细可以再发起 “订单详情明细查询”请求。
三、接收请求后的响应要求
推送成功的话,请接收方输出如下值 : 1 表示 推送成功,并且订单已成功入库。 0 表示 推送成功,但订单已存在。 -1 表示 推送失败。
如果接收方没有反馈任何数据,我们也认为是推送失败。
四、推送接口的测试推送
为了审核填写接口的有效性,我们在审核时,会构造一次测试推送,推送的数据如下:
参数 | 值 |
---|---|
ProgramId | 0 |
ProgramName | test |
WebsiteId | 0 |
SubId | |
OrderSn | 0 |
OrderTime | 0000-00-00 00:00:00 |
OrdersPrice | 0.00 |
Commission | 0.00 |
Currency | CNY |
Status | -1 |
Remark | |
OriginalStatus | 待付款 |
接收到如上信息,请通过接口输出 0 或者 1。默认情况下,接口没有收到数据,直接访问 请输出 -1 。