mem; // $v3 = CV3Init(); // $private = $req->userInfo->game->privateState; ////客户端参数解析 // $openid = $req->uid; // $zoneid = $req->zoneid; // $openkey = $req->paras[0]; // $pf = $req->paras[1]; // $pfkey = $req->paras[2]; // $itemPriceYuan = $req->paras[3]; // // //ID=Q点价格=元宝价格 // $itemPriceDot = $itemPriceYuan * 10; // $itemID = $itemPriceDot; // $itemPrice = $itemPriceDot; // $itemName = $itemPriceDot . '元宝'; // $itemDes = $itemName; // // $ts = now(); // $goodsurl = self::_getGoodsImgUrl($itemModel); // $v3PayRet = $v3->pay_buy_goods($openid, $openkey, $pf, $pfkey, # // $ts, $itemID, $itemPrice, $itemName, $itemDes, $goodsurl, $zoneid - 1); // if ($v3PayRet->ret == 1002) { //假如玩家未登录 // $resp = Resp::err(ErrCode::user_login_err); // } elseif ($v3PayRet->ret != 0) { // // $resp = Resp::err($v3PayRet->ret); // $resp->result = $v3PayRet; // } else { // $tokenInfo = self::getTokenInfo($mem, $zoneid, $openid); // if ($tokenInfo == null) { // $resp = Resp::err(ErrCode::user_no_err); // } else { // self::insToken($tokenInfo, $v3PayRet->token); // self::updateTokenInfo($mem, $zoneid, $openid, $tokenInfo); // $resp = Resp::ok($v3PayRet); // } // } // $v3->close(); // return $resp; // } // // /** // * 客户端确认支付 // * @param type $req // * @return \ResponseVo // */ // public static function confirmDelivery($req) { // $resp = new Resp(); // $v3 = CV3Init(); // self::confirmPay($req, $v3); // $resp = Resp::ok("succeed!"); // $v3->close(); // return $resp; // } // // /** // * 领取首付礼包 // * @param Req $req // * @return Resp // */ // public static function getFirstPayGift($req) { // $resp = new Resp(); // $map = $req->userInfo->game->map; // $privateState = $req->userInfo->game->privateState; // //// 如果已经领取首付礼包 // if (!CommUtil::isPropertyExists($privateState, "firstPayGift")) { // $resp = Resp::err(ErrCode::pay_firstpaygetted); // } elseif (!$privateState->firstPayGift) { // 如果尚未完成首付 // $resp = Resp::err(ErrCode::pay_firstpayno_err); // } else { // $itemModel = ConstProc::getGoodsItemConst(ITEM_FIRSTPAY); //// 检测首付礼包是否存在 // if ($itemModel == null) { // $resp = Resp::err(ErrCode::err_const_no); // } else { // unset($privateState->firstPayGift); # .剔除首付标志 // StoreProc::addSeprateItem($itemModel, $req); # .发放首付礼包 // $result = array(# 把玩家最新的仓库数据发给客户端 // 'store' => $map->store, // ); //// 7.回送成功信息 // $resp = Resp::ok($result); //// 成就触发--获取金币 // AchievementProc::dealAchievementState($req, $resp, AchievementProc::Gold); // UserProc::updateUserInfo($req); # 更新玩家数据 // } // } // // return $resp; // } // // /** // * 获取黄钻新手礼包 // * @param Req $req // * @return type // */ // public static function getVipNewerGift($req) { // $user = $req->userInfo->game->user; // $map = $req->userInfo->game->map; // $privateState = $req->userInfo->game->privateState; ////客户端参数解析 // $itemId = ITEM_VIPNEWER; # 新手礼包是个常量 // $item = ConstProc::getGoodsItemConst($itemId); // // $isYellowYear = $user->is_yellow_year_vip; // $itemYear = null; // if ($isYellowYear) { // $itemIdYear = ITEM_YEARVIPNEWER; // $itemYear = ConstProc::getGoodsItemConst($itemIdYear); // if ($itemYear == null) { // $resp = Resp::err(ErrCode::err_const_no); // return; // } // } ////1.检测是否存在道具的常量数据 // if ($item == null) { // $resp = Resp::err(ErrCode::err_const_no); // } else {//2.检测是否可以领取黄钻新手礼包 // if (!WebPayProc::tryVipNewerGift($user, $privateState)) { // $resp = Resp::err(ErrCode::pay_vipnewerno); // } else { // StoreProc::addSeprateItem($item, $req); // if ($itemYear) { // StoreProc::addSeprateItem($itemYear, $req); // } // $result = array( // 'store' => $map->store, // ); // $resp = Resp::ok($result); # 返回值 ////成就触发--获取金币 // AchievementProc::dealAchievementState($req, $resp, AchievementProc::Gold); // UserProc::updateUserInfo($req); # 回写数据 // } // } // return $resp; // } // // /** // * 开通包月送礼包 // * @param Req $req // */ // public static function getVipOpenGift($req) { // $mem = $req->mem; // $v3 = CV3Init(); ////客户端参数解析 // $openid = $req->uid; // $openkey = $req->paras[0]; // $pf = $req->paras[1]; // $pfkey = $req->paras[2]; // // $ts = now(); // $v3Ret = $v3->pay_gift_get_token($openid, $openkey, $pf, $pfkey, "1", ACT_VIP_OPEN, $ts); // if ($v3Ret->ret == 1001) { // $resp = Resp::err($v3Ret->ret); // $resp->result = $v3Ret->msg; // } elseif ($v3Ret->ret == 1099) { // $resp = Resp::err(ErrCode::pay_systembusy_err); // $resp->result = $v3Ret->msg; // } elseif ($v3Ret->ret != 0) { // $resp = Resp::err(ErrCode::pay_systembusy_err); // $resp->result = $v3Ret; // } else { //v3成功返回 // $tokenInfo = WebPayProc::getTokenInfo($mem, $req->zoneid, $openid); // if ($tokenInfo == null) { // $resp = Resp::err(ErrCode::user_no_err); // } else { // WebPayProc::insToken($tokenInfo, $v3Ret->token); // WebPayProc::updateTokenInfo($mem, $req->zoneid, $openid, $tokenInfo); //// 开通包月送礼包活动号,腾讯分配 // $v3Ret->actid = ACT_VIP_OPEN; // 将actid插入返回值中一块儿发送给客户端 // $v3Ret->zoneid = 0; // fusionAPI 需要 // $resp = Resp::ok($v3Ret); // } // } // $v3->close(); // return $resp; // } // // /** // * 领取黄钻每日礼包 // * @param Req $req // */ // public static function getVipDayGift($req) { // $mem = $req->mem; // $zoneid = $req->zoneid; // $v3 = CV3Init(); // $user = $req->userInfo->game->user; ////客户端参数解析 // $openid = $req->uid; // $openkey = $req->paras[0]; // $pf = $req->paras[1]; // $pfkey = $req->paras[2]; // // $ts = now(); // CLog::giftlog("getVipDayGift $zoneid|$openid|$openkey|$pf"); // $v3Ret = $v3->pay_gift_get_token($openid, $openkey, $pf, $pfkey, "1", ACT_VIP_DAY, $ts, $zoneid - 1); // if ($v3Ret->ret == 1001) { // $resp = Resp::err($v3Ret->ret); // $resp->result = $v3Ret->msg; // } elseif ($v3Ret->ret == 1099) { // $resp = Resp::err(ErrCode::pay_systembusy_err); // $resp->result = $v3Ret->msg; // } elseif ($v3Ret->ret != 0) { // $resp = Resp::err(ErrCode::pay_systembusy_err); // $resp->result = $v3Ret; // } else { //v3成功返回 // $tokenInfo = WebPayProc::getTokenInfo($mem, $zoneid, $openid); // if ($tokenInfo == null) { // $resp = Resp::err(ErrCode::user_no_err); // } else { // WebPayProc::insToken($tokenInfo, $v3Ret->token); // if ($user->is_yellow_vip) { // WebPayProc::insToken($tokenInfo, $v3Ret->token . "-year"); // } // WebPayProc::updateTokenInfo($mem, $zoneid, $openid, $tokenInfo); // $v3Ret->actid = ACT_VIP_DAY; //将actid 插入返回值中一块儿发送给客户端 // $resp = Resp::ok($v3Ret); // } // } // $v3->close(); // return $resp; // } // //// ---------------- -------------------- // /** // * 领取黄钻升级礼包 // * @param type $user // */ // public static function getVipLvGift($mem, & $user, &$map) { // // } // // /** // * 获取玩家token校验表 // * @param type $mem // * @param int $zoneid // * @param type $uid // * @return type // */ // public static function getTokenInfo($mem, $zoneid, $uid) { // return $mem->get(MemKey_User::TokenInfo($zoneid, $uid)); // } // // /** // * 更新玩家token校验表 // * @param type $mem // * @param int $zoneid // * @param type $uid // * @param type $tokenInfo // */ // public static function updateTokenInfo($mem, $zoneid, $uid, $tokenInfo) { // $mem->set(MemKey_User::TokenInfo($zoneid, $uid), $tokenInfo); // } // // /** // * 新增token // * @param type $mem // * @param type $oid // * @param type $token // */ // public static function insToken(& $tokenInfo, $token) { // $tokenInfo->$token = now(); // } // // /** // * 读取token // * @param type $mem // * @param type $oid // * @param type $token // * @return null // */ // public static function getToken($tokenInfo, $token) { // if (!CommUtil::isPropertyExists($tokenInfo, $token)) { // return null; // } else { // return $tokenInfo->$token; // } // } // // /** // * 删除token // * @param type $mem // * @param type $oid // * @param type $token // */ // public static function delToken(& $tokenInfo, $token) { // if (CommUtil::isPropertyExists($tokenInfo, $token)) { // unset($tokenInfo->$token); // } // } // // /** // * 添加付费道具到挂起列表 // * @param CMemBase $mem // * @param int $zoneid // * @param string $uid // * @param type $itemId // */ // public static function addPayStoreItem($mem, $zoneid, $uid, $itemId) { // $payStore = $mem->get(MemKey_User::PayOrders($zoneid, $uid)); // if ($payStore == null) { // $payStore = ArrayInit(); // } // $payStore[] = $itemId; // $mem->set(MemKey_User::PayOrders($zoneid, $uid), $payStore); // } // // /** // * 添加营销礼包到挂起列表 // * @param CMemBase $mem // * @param int $zoneid // * @param string $uid // * @param type $itemId // */ // public static function addGiftStoreItem($mem, $zoneid, $uid, $itemId) { // $giftStore = $mem->get(MemKey_User::GiftStore($zoneid, $uid)); // CLog::pay("WebGift addGiftStoreItem1 giftStore:$giftStore|itemId:$itemId|oid:$uid"); // if ($giftStore == null) { // $giftStore = ArrayInit(); // } // $giftStore[] = $itemId; // CLog::pay("WebGift addGiftStoreItem1 giftStore:$giftStore|itemId:$itemId|oid:$uid"); // $mem->set(MemKey_User::GiftStore($zoneid, $uid), $giftStore); // } // // /** // * 刷新挂起列表中的付费道具到仓库 // * @param Req $req // */ // public static function refreshPayStoreItem($req) { // $mem = $req->mem; // $oid = $req->uid; // $privateState = $req->userInfo->game->privateState; // // $payGodpetItems = ArrayInit(); // $payStore = $mem->get(MemKey_User::PayOrders($req->zoneid, $oid)); // if ($payStore != null) { // foreach ($payStore as $payItemId) { // $itemModel = ConstProc::getGoodsItemConst($payItemId); // if ($itemModel != null) { // $payGodpetItems[] = $payItemId; // if (CommUtil::isPropertyExists($privateState, "firstPayGift") // // && !$privateState->firstPayGift) { // $privateState->firstPayGift = true; // } // $properties = JsonUtil::decode($itemModel->properties); // if (CommUtil::isPropertyExists($properties, "isActive")) { // $activeList = $privateState->activeList; // $activeId = $properties->isActive; // $activeList[] = $activeId; // $privateState->activeList = $activeList; // } // StoreProc::addSeprateItem($itemModel, $req); // } // } // $mem->delete(MemKey_User::PayOrders($req->zoneid, $oid)); // } // return $payGodpetItems; // } // // /** // * 刷新挂起列表中的营销礼包到仓库 // * @param Req $req // */ // public static function refreshGiftStoreItem($req) { // $oid = $req->uid; // $mem = $req->mem; // $giftStore = $mem->get(MemKey_User::GiftStore($req->zoneid, $oid)); // CLog::pay("WebGift refreshGiftStoreItem giftStore:$giftStore|oid:$oid"); // // if ($giftStore != null) { // foreach ($giftStore as $giftItemId) { // $itemModel = ConstProc::getGoodsItemConst($giftItemId); // CLog::pay("WebGift refreshGiftStoreItem2 giftItemId:$giftItemId"); // // if ($itemModel != null) { // StoreProc::addSeprateItem($itemModel, $req); // } else { // CLog::pay("WebGift refreshGiftStoreItem3 ERR giftItemId:$giftItemId"); // } // } // $mem->delete(MemKey_User::GiftStore($req->zoneid, $oid)); // } // } // // /** // * 尝试领取黄钻新手礼包 // * @param type $user // * @param type $privateState // * @return boolean // */ // public static function tryVipNewerGift($user, &$privateState) { ////1.检查是否为黄钻 // if ($user->is_yellow_vip) { //# //2.检查是否含有新手礼包标志 // if (CommUtil::isPropertyExists($privateState, "vipNewerGift")) { // if ($privateState->vipNewerGift) {# //3.检查是否能够领取 // unset($privateState->vipNewerGift); # //4.剔除新手礼包标志 // return true; //5.返回成功 // } // } // } // return false; // } // // /** // * 尝试领取黄钻每日礼包 // * @param type $user // * @param type $privateState // * @return boolean // */ // public static function tryVipDayGift($user, &$privateState) { // if ($user->is_yellow_vip) {//1.检查是否为黄钻 // if (CommUtil::isPropertyExists($privateState, "vipDayGift")) {//2.检查黄钻礼包标志是否为真 // if ($privateState->vipDayGift) {//3.检查是否能够领取 // $privateState->vipDayGift = false; //4.修改黄钻每日礼包标志 // return true; //5.返回成功 // } // } // } // return false; // } // // /** // * 客户端确认支付 // * @param type $req // * @return \ResponseVo // */ // public static function confirmPay($req, $v3) { // $paydb = CPayInit(); // $openid = $req->uid; //客户端参数解析 // $billArray = $paydb->fetch_array(sprintf(self::PAY_BILL_SELECT, $openid)); // if (count($billArray) > 0) { // foreach ($billArray as $billRecord) { // $id = $billRecord['id']; // $ts = now(); // $payitem = $billRecord['payitem']; // $token = $billRecord['token']; // $billno = $billRecord['billno']; // $amt = $billRecord['amt']; // if (GAME_ONLINE) { // $ret = $v3->pay_confirm_delivery($openid, $openkey, $pf, $ts, // // $payitem, $token, $billno, $amt); // if ($ret->ret == 0 || $ret->ret == 1069) {// 订单确认的情况 // $dbRet = $paydb->query(sprintf(self::PAY_BILL_DELETE, $id)); // $sqlConfirm = sprintf(self::PAY_BILL_CONFIRM, $openid, $billno, $amt, $payitem, $token); // $dbRet = $paydb->query($sqlConfirm); // 写订单支付日志 // $log = $billno . "|" . $ret->msg . "[" . $openid . "]已确认支付!"; // $dbRet = WebPayProc::_paylog($paydb, $log); // }// 订单丢失的情况 // else if ($ret->ret == 1060 || $ret->ret == 1063 || $ret->ret == 1068) { // $dbRet = $paydb->query(sprintf(self::PAY_BILL_DELETE, $id)); // $sqlLost = sprintf(self::PAY_BILL_LOST, $openid, $billno, $amt, $payitem, $token, $ret->msg); // $dbRet = $paydb->query($sqlLost); // 写订单支付日志 // $log = $billno . "|" . $ret->msg . "[" . $openid . "]已确认丢失!"; // $dbRet = WebPayProc::_paylog($paydb, $log); // } // } else { // $dbRet = $paydb->query(sprintf(self::PAY_BILL_DELETE, $id)); // $sqlConfirm = sprintf(self::PAY_BILL_CONFIRM, $openid, $billno, $amt, $payitem, $token); // $dbRet = $paydb->query($sqlConfirm); // 写订单支付日志 // $log = $billno . "|" . $ret->msg . "[" . $openid . "]已确认支付!"; // $dbRet = WebPayProc::_paylog($paydb, $log); // } // } // } // $paydb->close(); // } // // /** // * 插入日志 // * @param CDBUtil $paydb // * @param string $log // * @return mixed // */ // static function _paylog($paydb, $log) { // return $paydb->query(sprintf(self::PAY_LOG_INSERT, $log)); // } // // /** // * 获取指定道具的图片Url // * @param GoodsItemModel $item // * @return String 返回字符串 // */ // private static function _getGoodsImgUrl($item) { // return CDN_HOST . "res/yuanbao3.png"; // } // //}