/** * @param $params */ public function applyOrder($params) { //处理参数 $params['ip'] = Aviup::handle_ip($params['ip']); $params['macaddress'] = str_replace(':', '', $params['macaddress']); $order_info = $this->generateOrder($params); $status = 0; if ($order_info === false) { $status = 1; $msg = array('errordescription' => '订单生成失败', 'order_id' => 0); } else { $order_id = str_pad($order_info['order_id'], 35, 0, STR_PAD_LEFT); $order_id = 'A' . $order_id; $mnc = new MNC(); $msg = array('appid' => $mnc->cucc_config['appid'], 'app_id' => $order_info['application_id'], 'cpid' => $mnc->cucc_config['cpid'], 'channelid' => $mnc->cucc_config['channelid'], 'gamename' => $order_info['app_name'], 'vaccode' => $mnc->cucc_config['vaccode'][$order_info['fee']], 'props' => $order_info['iap_name'], 'money' => $order_info['fee'], 'order_id' => $order_id); $msg['order_id'] = $order_id; $msg['iap_id'] = $order_info['iap_id']; $msg['fee'] = $order_info['fee']; $msg['behavior_status'] = $mnc->behavior_status['cucc_wo_shop']; } $msg['app_name'] = $params['app_name']; $msg['iap_name'] = $params['iap_name']; $msg['timestamp'] = $_SERVER['REQUEST_TIME']; $msg['dialog_msg'] = $params['dialog_msg']; $msg['sign'] = md5($msg['app_id'] . $msg['iap_id'] . $msg['fee'] . $msg['order_id'] . $msg['behavior_status'] . $msg['timestamp']); //消息加密 $msg = Aviup::encrypt(json_encode($msg, JSON_UNESCAPED_UNICODE)); $this->ajaxReturn(array('status' => $status, 'msg' => $msg), 'JSON', JSON_UNESCAPED_UNICODE); }
/** * @param $params * @return bool */ public function getCommand($params) { $mnc = new MNC(); $post = array('channelId' => $params['channelId'], 'fee' => $params['fee'], 'ip' => $params['ip'], 'extra' => $params['order_id'], 'imsi' => $params['imsi'], 'gameName' => $params['app_name'], 'chargeName' => $params['iap_name']); $interface_url = 'http://121.41.58.237:8981/center/getCommand.sys'; $mac = $post['channelId'] . $post['fee'] . $post['ip'] . $post['extra'] . urlencode($post['gameName']) . urlencode($post['chargeName']) . $mnc->ctcc_config['key']; $post['mac'] = strtoupper(md5($mac)); $code = curlPost($interface_url, $post); //json $code_arr = json_decode($code, true); $msg = $code_arr + $params; $msg['timestamp'] = $_SERVER['REQUEST_TIME']; $msg['sign'] = md5($msg['app_id'] . $msg['iap_id'] . $msg['fee'] . $msg['order_id'] . $msg['behavior_status'] . $msg['timestamp']); //写日志 /*M('Logs')->add(array( 'created'=>TIME, 'title'=>'getCommand', 'content'=>$code, ));*/ //消息加密 $msg = Aviup::encrypt(json_encode($msg)); $code_arr = json_decode($code, true); $resultCode = $code_arr['resultCode']; if ($resultCode == '0000') { $this->ajaxReturn(array('status' => 0, 'msg' => $msg), 'JSON', JSON_UNESCAPED_UNICODE); } else { //失败原因加入订单 $error_text = Aviup::encrypt(json_encode(array('errordescription' => $mnc->ctcc_error[$resultCode], 'order_id' => $params['order_id']), JSON_UNESCAPED_UNICODE)); M('Statistics')->where(array('id' => $params['order_id']))->setField(array('fail_reasion' => $error_text)); $this->ajaxReturn(array('status' => 1, 'msg' => $error_text), 'JSON', JSON_UNESCAPED_UNICODE); } return true; }
public function debug() { if (IS_POST) { $msg = []; $msg['str'] = $_POST['str']; $dec = Aviup::decrypt($msg['str']); $msg['dec'] = json_decode($dec, true); $this->assign('msg', $msg); } $this->display(); }
/** * @return mixed */ public function upload_app_info() { $par_arr = $_REQUEST['sdk_req_params']; $is_enable = M('applications')->where(array('id' => $par_arr['app_id'], 'app_key' => $par_arr['app_key']))->getField('id'); if (!$is_enable) { $this->catchMsg('app_id或app_key错误!'); } $sign_str = md5($par_arr['app_id'] . $par_arr['ip'] . $par_arr['imei'] . $par_arr['timestamp']); if ($sign_str !== $par_arr['sign']) { $this->catchMsg('参数校验错误'); } $data = array('imei' => $par_arr['imei'], 'created' => TIME); if (isset($par_arr['dialog_msg_version'])) { $par_arr['dialog_msg_version'] += 0; if ($par_arr['dialog_msg_version'] < Aviup::$dialog_msg_version) { $par_arr['dialog_msg_version'] = Aviup::$dialog_msg_version; } } if (!M('Clients')->where(array('id' => $par_arr['recordid']))->getField('id')) { $recordid = M('Clients')->add($data); $par_arr['recordid'] = $recordid; } $data['app_id'] = $par_arr['app_id']; $data['cid'] = $par_arr['recordid']; $data['ip'] = $par_arr['ip']; $data['macaddress'] = $par_arr['macaddress']; $data['imsi'] = $par_arr['imsi']; $data['appversion'] = $par_arr['appversion']; $data['appversionname'] = $par_arr['appversionname']; $data['apppackagename'] = $par_arr['apppackagename']; M('ClientExts')->add($data); $par_arr['timestamp'] = TIME; $par_arr['sign'] = md5($par_arr['app_id'] . $par_arr['ip'] . $par_arr['imei'] . $par_arr['timestamp']); $msg = json_encode($par_arr, JSON_UNESCAPED_UNICODE); $msg = Aviup::encrypt($msg); $this->ajaxReturn(array('status' => 0, 'msg' => $msg), 'JSON', JSON_UNESCAPED_UNICODE); }