有米广告Youmi的回调信息的Api接口(安卓版本)

  •   
  • 4423
  • PHP
  • 7
  • super_dodo
  • 2015/06/30

有米广告是一个很不错的平台,里面任务多,用户也比较活跃,知名度也高。前一篇中说到了多盟的回调接口api,这一篇我主要是有米的安卓版本的回调API,PS有米中安卓和苹果的接口略有不同,分开写比较灵活。直接上代码。

/*
 * 功能概述:有米广告的回调信息的Api接口文件
 * 版本信息: DoDoBook---V201506 $
 * 接口说明文档的地址:http://wiki.youmi.net/Youmi_android_offers_order_callback_protocol

Order ID	order	string	订单ID:该值是唯一的,如果开发者接收到相同的订单号,那说明该订单已经存在。
App ID	app	string	开发者应用ID
Ad Name	ad	string	广告名,如果是应用类型的广告则是应用名
注:参数经过urlencode,请使用urldecode获取原始参数
User ID	user	string	用户ID:对于有米积分墙第二版及以上版本开发者可以设置自己的用户ID,例如开发者的应用是有登录功能的,则可以使用登录后的用户ID来替代有米提供的标识CID(有米为每台设备生成的唯一标识符),否则有米会自动设置为CID。 
注:参数经过urlencode,请使用urldecode获取原始参数。
Channel	chn	int	渠道号
Points	points	int	用户可以赚取的积分
如果该值为0,则表示可能用户因为某些情况拿不到积分,例如用户当天激活的次数超过最大的限制值(会和开发者进行结算,但是不会给用户积分)
Signature	sig	string	参数签名,签名算法如下。
该值的作用是校验上述参数的完整性,以防止在传输过程中被第三方篡改。

Adid	adid	int	广告id
Package Name	pkg	String	应用包名
Device ID	device	string	设备ID:android是imei
注:参数经过urlencode,请使用urldecode获取原始参数。
Time	time	int	产生效果的时间
Price	price	float	应用可以获得的收入
Trade_Type	trade_type	int	回调的任务类型。1=>主任务;2=>附加任务(附加任务可能会有多个)
*/

class YoumiController extends VController{

	//有米安卓的回调API
	public function actionAndroid(){
		$request = Yii::app()->request;
		$order = $request->getParam("order");
		$app = $request->getParam("app");
		$ad = urldecode($request->getParam("ad"));				//广告名称
		$mid = urldecode($request->getParam("user"));			//用户id
		$chn = $request->getParam("chn");						//用户id
		$point = $request->getParam("points");					//积分
		$ad_id = $request->getParam("adid");					//广告id
		$pkg = $request->getParam("pkg");						//应用包名
		$device = urldecode($request->getParam("device"));		//设备ID
		$finish_time = $request->getParam("time");				//产生效果的时间
		$price = $request->getParam("price");					//应用可以获得的收入
		$trade_type = $request->getParam("trade_type");			//回调的任务类型
		$sig_url = $request->getParam("sig");					//签名
		//判断签名是否被篡改
	/*	$dev_server_secret = 'c34444ed351b3b51';
		$sig = substr(md5($dev_server_secret . "||" . $order . "||" . $app . "||" . $mid . "||" . $chn . "||" . $ad . "||" . $point), 12, 8);
		if($sig == $sig_url){		//签名验证失败
			header("HTTP/1.0 400 Bad Request");
			exit;
		}*/
	/*	$get_str = Date('Y-m-d H:i:s')."\r\n";
		if(!empty($_GET)){
			foreach ($_GET as $kkkk => $vvvv) {
				$get_str .= $kkkk.'----'.$vvvv."\r\n";
			}
			$get_str .= '==================';
		}
		//记录得到的参数
		file_put_contents('./log/youmi_android_log.txt', $get_str, FILE_APPEND);
	*/
		$youmiInfo = YoumiAndroidList::model()->find("order_id='{$order}' AND member_id='{$mid}'");
		if($youmiInfo){							//该用户已完成了该多米任务
			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->remark = '有米安卓任务赠送积分';
					$memJifenList->isNewRecord = true;
					if(!$memJifenList->save()){
						header("HTTP/1.0 400 Bad Request");
						exit;
					}
				}else{
					header("HTTP/1.0 400 Bad Request");
					exit;
				}
			}

			$orderList = new YoumiAndroidList;
			//此处自由发挥,记录你需要的任何信息....
			$memJifenList->remark = '有米安卓任务赠送积分';
			$orderList->isNewRecord = true;
			if($orderList->save()){
				header("HTTP/1.1 403 Forbidden");
				exit;
			}else{
				header("HTTP/1.0 400 Bad Request");
				exit;
			}
		}
	}

}

相关链接:有米广告Youmi的回调信息的Api接口(安卓版本)

所谓幸福,是在于认清一个人的限度而安于这个限度。——罗曼罗兰