1、亿起发广告主CPS业务接入手册,亿玛在线科技有限公司应用开发部 2013.05,V1.3.0,目录,1.1 术语表 1.2 亿起发推广流程,2.1 广告入口 2.2 实时数据接口 2.3 数据查询接口,3.1 JAVA代码 3.2 PHP代码 3.3 .NET/C#代码,3,1.1 术语表,1.1 术语表,注:本文档中红色字体为需要特别注意的部分。,2.1 广告入口,广告入口是广告主提供给亿起发的在广告跳转过程中能记录联盟以及网站主信息的链接,这些信息保存在COOKIE中,采用last click win(即效果算做最后一次带来流量的联盟和网站主)的方式更新COOKIE的值。广告入口参数如下表
2、:,左侧表格中除target参数外都是必要参数,source、channel 可以让广告主接口在多合作 伙伴、多渠道推广时具有最大 的灵活性,且给广告主统计各 个渠道的数据带来方便,一次 开发多次使用。cid、wi是亿起发统计数据和给站长结算的依据,也是必不可少的。 target参数是广告入口记录COOKIE后要跳转到的链接地址,请根据自己网站使用的字符集进行URLDecode,防止目标地址参数丢失。,2.1 广告入口,广告入口形式:注意:红色部分为目标地址,目标地址在网站主投放广告时可以修改为广告主网站的任意一个链接。http:/ 2、在COOKIE中保存参数source、channel、c
3、id、wi的值,并设置COOKIE有效期。 3、对参数目标地址做URLDecode(所有字符集与广告主网站使用的字符集相同)操作后跳转到目标地址指定的页面。 (如果您使用的是由亿起发提供的sdk,一些默认参数可直接使用各版本定义好的即可),2.2 实时数据接口,实时数据接口由亿起发提供,用于接收广告主的订单数据。广告主需要在订单生成后支付前调用此接口向亿起发发送订单数据,不作为最后结算的依据。此接口发送所有来源为亿起发的订单,实时性好,网站主能及时看到产生的订单,有助于增强网站主推广的信心,请求格式:http:/ 实时数据接口,优惠券分摊处理公式: price(商品金额)=商品单价*【1-(优
4、惠券金额/总价)】 (查询接口显示也同样这样处理)问题描述: 一个订单,商品A单价100元1件、商品B单价50元2件,使用优惠券金额20元,此时总价为200: 商品A对应的price=100*1-(20/200)=90 amount参数=1 商品B对应的price=50*1-(20/200)=45 amount参数=2,2.2 实时数据接口,1、实时数据接口形式: http:/ interId=519200e5e03bbcaa579e8b04&json=%7B%22orders%22%3A%5B%7B%22orderNo%22%3A%22192639605560%22%2C%22orderTi
5、me%22%3A%222012-04-05+10%3A09%3A09%22%2C%22updateTime%22%3A%222012-04-05+20%3A09%3A09%22%2C%22campaignId%22%3A%22101%22%2C%22feedback%22%3A%22NDgwMDB8dGVzdA%3D%3D%22%2C%22fare%22%3A%2210%22%2C%22favorable%22%3A%2230%22%2C%22favorableCode%22%3A%2230YHM%22%2C%22products%22%3A%5B%7B%22productNo%22%3A%2
6、21001%22%2C%22name%22%3A%22%B2%E2%CA%D4%C9%CC%C6%B76%22%2C%22amount%22%3A%221%22%2C%22price%22%3A%223000%22%2C%22category%22%3A%22asdf%22%2C%22commissionType%22%3A%22A%22%7D%2C%7B%22productNo%22%3A%221002%22%2C%22name%22%3A%22%B2%E2%CA%D4%C9%CC%C6%B75%22%2C%22amount%22%3A%223%22%2C%22price%22%3A%221
7、00%22%2C%22category%22%3A%22a%22%2C%22commissionType%22%3A%22B%22%7D%2C%7B%22productNo%22%3A%221003%22%2C%22name%22%3A%22%B2%E2%CA%D4%C9%CC%C6%B74%22%2C%22amount%22%3A%225%22%2C%22price%22%3A%22500%22%2C%22category%22%3A%222%22%2C%22commissionType%22%3A%22B%22%7D%5D%2C%22orderStatus%22%3A%22%22%2C%2
8、2paymentStatus%22%3A%221%22%2C%22paymentType%22%3A%22%D6%A7%B8%B6%B1%A6%22%2C%22orderstatus%22%3A%22active%22%7D%5D%7D 2、单独推送订单状态: http:/ 实时数据接口,实时接口返回值说明:0-表示发送成功 1-表示缺少必要的参数 2-表示参数格式错误。 3-表示链接超时。 4-表示URL格式错误。 5-表示IO异常。 -1-表示发送失败。,2. 3 数据查询接口,目的: 数据查询接口由广告主提供,亿起发平台在每天的凌晨调用一次,查询前一天的数据,接口中返回的数据所有来源为亿
9、起发的数据。其作用主要是补充实时接口丢失的数据,保证数据的完整性,为站长分析推广效果提供更可靠的依据。接口功能如下: 查询指定日期生成的订单。 查询指定日期更新(更新主要是指订单状态、支付方式、支付状态的变化)过的订单的最新状态。实现建议: 与系统订单表分开,实时将订单从系统订单表同步到接口订单表。 接口订单表中保存至少2个月的数据,确切的说应该至少保存一个结算周期(请和商务确认具体的结算周期)的订单数据。错误返回值说明:IP验证不通过 : ip is limited! /只有在设置了ip限制ip核对不上才会有这个提示签名验证不通过:sign is error! /只有查询条件有签名验证,验证
10、不通过才会有这个提示查询不到数据:no data!参数不是整数:paramter is not the numeric! 请求超时:request time out !,2. 3 数据查询接口,查询参数说明:1、根据下单时间查询某时间段内创建的订单数据:,2、根据更新时间查询某时间段内更新过的订单状态、支付状态、支付方式等等信息,2. 3 数据查询接口,数据查询接口形式:1、按下单时间查询: “orders“:“campaignId“:101,“fare“:“2“,“favorable“:“10“,“favorableCode“:“987654321“,“feedback“:“NDgwMDB8
11、MTIzNDU2Nzg5MTIzNDU2Nzg5MTIzNDU2Nzg5dGVzdHljaA=“,“orderNo“:“o44orderNo“,“orderTime“:“2013-5-15 16:31:29“,“orderstatus“:“0“,“paymentStatus“:“0“,“paymentType“:“0“,“products“:“amount“:11,“category“:“sofa“,“commissionType“:“A“,“name“:“商品名称1“,“price“:1001,“productNo“:“pno001“,“amount“:21,“category“:“bed“
12、,“commissionType“:“A“,“name“:“商品名称2“,“price“:2001,“productNo“:“pno002“,“updateTime“:“2013-5-15 16:31:29“,“campaignId“:101,“fare“:“10“,“favorable“:“2“,“favorableCode“:“123456789“,“feedback“:“NDgwMDB8MTIzNDU2Nzg5MTIzNDU2Nzg5MTIzNDU2Nzg5dGVzdHljaA=“,“orderNo“:“o45orderNo“,“orderTime“:“2013-5-15 16:31:2
13、9“,“orderstatus“:“active“,“paymentStatus“:“1“,“paymentType“:“支付宝“,“products“:“amount“:11,“category“:“sofa“,“commissionType“:“A“,“name“:“商品名称1“,“price“:1001,“productNo“:“pno001“,“amount“:21,“category“:“bed“,“commissionType“:“A“,“name“:“商品名称2“,“price“:2001,“productNo“:“pno002“,“updateTime“:“2013-5-15
14、16:31:29“2、按更新时间查询: “orderStatus“:“feedback“:“aaa“,“orderNo“:“1aaaaa“,“orderstatus“:“订单完成“,“paymentStatus“:“已支付“,“paymentType“:“支付宝“,“updateTime“:“2013-5-15 8:59:54“,使用java版sdk需要注意点:1、必须要有的依赖包,如下: log4j-1.2.16.jar json-lib-2.4-jdk15.jar httpcore-4.1.2.jar httpclient-4.1.2.jar ezmorph-1.0.6.jar commo
15、ns-logging-1.1.1.jar commons-lang-2.5.jar commons-collections-3.2.1.jar commons-codec-1.4.jar commons-beanutils-1.8.0.jar2、jdk需要使用1.5或1.5以上版本,3.1 JAVA代码,一)、java版本Sdk广告入口调用说明: 实现功能:接受亿起发传过去的参数,创建AdEnter的对象,向浏览器写入推广用的cookie,然后调用jump方法,传入获取的参数保存cookie并跳转到对应的目标地址。网站调用接口的形式: http:/ /如果有多个来源的数据,且cookie名字不
16、相同,请写在这里,3.1 JAVA代码,二)、java版本Sdk实时推送接口调用说明: 实现功能:Sender类为实时数据接口类,接口用于推送送广告主的订单数据,广告主需要在订单生成后、支付前调用此接口向亿起发发送订单数据。 发送格式为JSON ,默认编码格式为 GBK。 Sender类调用方法: 1、发送订单信息: Order order = new Order(); Sender send = new Sender(order); send.sendOrder(request); 2、发送订单状态信息: orderStatus orderStatus = new orderStatus()
17、; Sender send = new Sender(orderStatus); send.sendOrderStatus();特别注意: a、广告主在和亿起发对接接口时,需要在配置文件中设置接口ID(亿起发提供)。b、该类根据订单信息拼接URL,拼接URL时会对商品名称、下单时间和佣金类型进行编码。,3.1 JAVA代码,三)、java版本Sdk查询接口调用说明: 调用方式,例如: http:/ JAVA代码,注意:需要使用PHP5或者PHP5以上版本 一)、php版本Sdk广告入口调用说明: 实现功能:接受亿起发传过去的参数,创建AdEnter对象,调用jump方法,传入获取的参数保存co
18、okie并跳转到对应的目标地址。网站调用接口的形式:http:/ PHP代码,二)、php版本Sdk实时推送接口调用说明: 实现功能: Sender类为实时数据接口类,接口用于推送送广告主的订单数据,广告主需要在订单生成后、支付前调用此接口程序会读取亿起发cookie、拼接链接向亿起发发送订单数据。 发送格式为JSON 。默认编码格式为 GBK (配置文件yiqifa-config.php中可更换)。 Sender类使用方法: 1、发送订单信息:$sender = new Sender();$sender - setOrder($order);$sender - sendOrder();测试文
19、件参考TestOrder.php 2、发送订单状态信息:$sender = new Sender();$sender - setOrder($orderStatus);$sender - sendOrderStatus();测试文件参考TestOrderStatus.php特别注意: 广告主在和亿起发对接接口时,需要在配置文件中设置接口ID(亿起发提供)。,3.2 PHP代码,三)、php版本Sdk查询接口调用说明: 调用的方式: /查询的是在orderStartTime和orderEndTime这段的时间段内的订单 http:/ /查询的是在updateStartTime和updateEnd
20、Time这段时间段内订单状态发生变化的订单 http:/ 相关类说明: 1.getOrder.php,订单信息查询接口 2.getOrderStatus.php,订单状态信息查询接口 3.Dto.php,操作数据库,把查询出来的数据已json的格式返回。特别注意: 1、yiqifa-config.php,配置文件,该文件为主配置文件,重要和常用的变量都在该文件中设置。其中涉及到IP限制和sign签名的设置 2、util/Config.php,工具类,getString($name)方法调用亿起发获取yiqifa-config.php配置文件中已设置的变量。,3.2 PHP代码,注意点:需要使用
21、Visual Studio 2008版本 一)、.net版本Sdk广告入口调用说明 实现功能:接受亿起发传过去的参数,创建AdEnterCore的对象,调用jump方法,获取参数保存至cookie并跳转到对应的目标地址。 网站调用接口的形式: http:/ .NET代码,二)、.net版本Sdk实时推送接口调用说明 业务逻辑:当用户点击“提交订单”按钮时,程序判断是否是亿起发带去的订单, 如果是,将订单信息回传给我们。代码调用示例:protected void Button1_Click(object sender, EventArgs e)GetDataFromPage gdfp = new
22、 GetDataFromPage();List order = new List();order = this.getOrder();string url = gdfp.getOrderFromPage(order);Sender s = new Sender();s.send(url); protected void Button2_Click(object sender, EventArgs e)GetDataFromPage gdfp = new GetDataFromPage();List orderStatuss = new List();orderStatuss = this.getOrderStatus();string url = gdfp.getStatusFromPage(orderStatuss);Sender s = new Sender();s.send(url); 特别注意: this.getOrder() 和 this.getOrderStatus()有商家自主完成,3.3 .NET代码,三)、.net版本Sdk查询接口调用说明: 调用的方式,例如: http:/ .NET代码,