多盟Domob积分墙对开发者的激活反馈接口API

  •   
  • 6289
  • PHP
  • 4
  • super_dodo
  • 2015/06/30

最近的一个APP中客户用到了多盟的积分墙,也就是通过集成多盟的组件,到多盟里面做任务,反馈得到相应的积分。完成任务的时候,多盟会像支付宝一样不断的请求你的回调api的地址,这样你就可以为相应的用户增加适当的积分。已达到活跃用户的目的。下面是服务端回调的api的接口。你可以参考着修改后使用。直接上代码:(我用的是Yii的框架)

/*
*	domob积分墙对开发者的激活反馈接口
*   参数名	类型	说明
	orderid	字符串	订单ID。该值是唯一的,如果开发者接收到相同的订单号,那说明该订单已经存在。
	pubid	字符串	Publisher ID,即开发者的积分墙应用ID
	ad	字符串	广告名称
	adid	整型	广告ID,即offer ID
	user	字符串	UserID
	iOS平台,若开发者没有在积分墙iOS SDK中绑定userid,或对于没有升级到嵌入了SDK 2.0.3以上版本SDK的用户,则user为经过md5加密的用户设备的带冒号的大写的MAC地址。例子:md5('24:AB:81:5E:F6:1E')= 13A81BB8DCA00BE81794E246C8429C0E
	android平台,如果开发者没有在积分墙android SDK中绑定userid,则user为设备的imei
	device	字符串	设备号。
	iOS:设备号优先级为mac地址 > IDFA > OpenUDID
	如果mac地址为有效值(iOS 7将获取不到有效的MAC地址),则为大写的原始mac地址;否则如果多盟的SDK能够获取到设备的IDFA(iOS 6才能获取),则为设备的IDFA;如果mac地址无效且获取不到设备的IDFA,则为设备的OpenUDID
	android:统一返回设备的imei
	channel	整型	渠道号。预留给android的推广,对于iOS来说该值为0
	price	浮点型,保留两位小数	开发者获得的收入
	point	整型	用户可获得的积分
	ts	整型	成功结算的时间戳,精确到秒
	sign	字符串	签名。根据private_key与所有参数共同计算得出。
	pkg	字符串	被激活的广告的包名,例如 cn.domob.demo
	action	整型	动作编号,从0开始。通常0表示激活,1表示签到
	action_name	字符串	动作名称,例如“激活”,“签到-1”,“签到-2”等。
*/
class DomobController extends VController{

	//多盟的回调API的接口
	public function actionFeedback(){
		$request = Yii::app()->request;
		$orderid = $request->getParam("orderid");
		$pubid = $request->getParam("pubid");
		$ad = $request->getParam("ad");			//广告名称
		$adid = $request->getParam("adid");		//广告id
		$mid = $request->getParam("user");		//用户id
		$price = $request->getParam("price");	//收入
		$point = $request->getParam("point");	//积分
		$ts = $request->getParam("ts");			// 成功结算的时间戳,精确到秒
		$pkg = $request->getParam("pkg");		//被激活的广告的包名
		$action_name = $request->getParam("action_name");	// 动作名称
		file_put_contents('./log/domob_log.txt',$mid.'=='.$point.PHP_EOL,FILE_APPEND);		//日志记录
		$domobInfo = DomobOrderList::model()->find("order_id='{$orderid}' AND member_id='{$mid}'");
		if($domobInfo){							//该用户已完成了该多米任务
			header("HTTP/1.1 403 Forbidden");
    		exit;
		}else{
			if($mid){ // 绑定了用户id
				$memInfo = MemberList::model()->findByPk($mid);
				$memInfo->jifen += $point;
				if($memInfo->save()){		//用户增加积分和金额
					//增加积分获得的记录表
					$memJifenList = new MemberJifenList;
					//此处自由发挥,记录任何你想记录的东西
					$memJifenList->add_time = time();
					$memJifenList->remark = '多盟任务赠送积分';
					$memJifenList->isNewRecord = true;
					if(!$memJifenList->save()){
						header("HTTP/1.1 404 Not Found"); 
						exit;
					}
				}else{
					header("HTTP/1.1 404 Not Found"); 
					exit;
				}
			}

			//记录多盟的订单信息....
			$orderList = new DomobOrderList;
			//此处自由发挥,记录你想记录的东西
			$orderList->add_time = time();
			$orderList->remark = $ad."任务完成"."获得".$point."个积分";
			$orderList->isNewRecord = true;
			if($orderList->save()){
				header("HTTP/1.1 403 Forbidden");
				exit;
			}else{
				header("HTTP/1.1 404 Not Found"); 
				exit;
			}
		}
	}


}

凡事失败理由千千万,成功理由只有一个,那就是你还不够努力!