订单推送配置

阅读时间约 2 分钟

一、订单如何推送

1、什么是订单推送

多麦联盟支持将流量主推广效果订单主动推送至流量主平台。

2、填写推送地址

流量主接入多麦联盟后,在多麦联盟网站填写 “订单推送地址”。
登录多麦联盟,我的工具-》订单推送服务(2.0 版,如下图)。在对应的列表项中,点击“配置推送地址”。

再在弹出弹窗中填写您需要订单推送的地址,注意输入新地址将覆盖原有地址,为空则表示取消设置

提交时多麦会做一次测试推送来验证接口。推送接口需返回 1、0表示接收到测试数据,-1表示未接收到测试数据。详细说明

验证成功时:

4、推送过程示意图

5、注意事项
多麦主动推送订单的状态包括:创建,确认结算、结算、失效,当以上几种状态发生时会主动推送给流量主平台。
多麦订单的 确认结算、结算、失效 这三个状态 目前都是通过在多麦联盟完成 结算流程 时才会对订单标记确认结算、结算、失效。

举例: 爱奇艺 会员 CPS 推广,从订单创建到结算,结算的订单数据爱奇艺并不是实时更新,而是通过次月提供多麦结算订单数据的方式。商家端并不提供实时订单状态信息。

如果流量主需要 电商平台原始订单状态(创建、付款、退货等状态),请使用多麦订单详情查询 API。目前支持实时订单状态更新的商家才会有状态更新 ,比如京东、淘宝。

二、推送数据

多麦联盟会向推送地址发起 Get 请求,并将订单数据以请求参数方式发送。每次推送 1 个订单,同时会在参数中增加推送校验参数 checksum,说明见下文。

1、推送参数说明

参数全部为小写字符,参数值为 UTF8 编码

参数描述
id推送 ID
ads_id推广计划 ID
ads_name推广计划名称
site_id媒体 ID
link_id推广计划链接 ID
euid订单的反馈标签值
order_sn订单编号
order_time订单下单时间
orders_price订单金额,当订单状态为 1 或者为 2 时, order_price 表示确认订单金额
siter_commission订单佣金,当订单状态为 1 或者为 2 时,siter_commission 表示确认佣金,其他状态值为 订单预估佣金
status订单状态 -1 无效 0 未确认 1 确认 2 结算 查看订单状态说明
checksum推送数据校验参数,checksum=MD5(按照参数首字母升序排列后 “参数值”拼接 string + 接口密钥 hash),拼接的参数值中不包括 checksum 和 id 参数值
2、接收请求安全校验说明

请求参数根据需求可能会增加或减少。对于接收方,我们建议校验 checksum 值,校验逻辑及代码示例如下:

收到的请求后

1.先提取 checksum , id 。
注:若使用了框架要排除框架自带一些参数,如phalcon有_url参数
2.将剩下的数据 按照数组索引首字母排序
3.将排序后的数组数据 按照 value1 + value2 + value3 + ... 的顺序拼接得到 string
4.校验 checksum 是否等于 md5( string + hash )

PHP 代码示例:

$hash = 'your secret'; // 接口密钥
$query= $_REQUEST;
// 注意若使用了框架要排除框架自带一些参数,如phalcon有_url参数
$checksum = $query['checksum'];
$id = $query['id'];
unset($query['checksum'],$query['id']);
ksort($query);
$localsum = md5(join('',  array_values($query)).$hash);

//如果 $localsum == $checksum 即为合法的推送
3、订单推送数据返回机制

如推送地址测试通过,在产生推广效果订单后,多麦将实时推送订单数据(部分特殊商家不支持实时返单,如次日返单、隔 1 小时返单等,可咨询对接媒介)。
如推送失败,多麦重试 3 次 推送,每次间隔 30 秒。

订单推送不包含订单商品明细信息,如需订单商品明细可以再发起 “订单详情明细查询”请求。查看"订单详情"API 文档

三、接收请求后的响应要求

推送成功的话,请接收方输出如下值 : 1 表示 推送成功,并且订单已成功入库。 0 表示 推送成功,但订单已存在。 -1 表示 推送失败。
如果接收方没有反馈任何数据,我们也认为是推送失败。

四、推送接口的测试推送

为了审核填写接口的有效性,我们在审核时,会构造一次测试推送,推送的数据如下:

参数
ads_id0
ads_name测试活动
site_id0
link_id0
euid
order_sn0
order_time0000-00-00 00:00:00
orders_price0.00
siter_commission0.00
status-1

接收到如上信息,请通过接口输出 0 或者 1。默认情况下,接口没有收到数据,直接访问 请输出 -1 。