123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514 |
- <?php
- //
- //namespace loyalsoft;
- //
- ///**
- // * Qzone页游支付处理代码
- // */
- //class WebPayProc {
- //
- // const PAY_BILL_SELECT = "SELECT * FROM `tab_billrecord` where `openid`='%s' and `state`='0' order by id;"; // 筛选尚未确认支付的订单
- // const PAY_BILL_DELETE = "DELETE FROM `tab_billrecord` where id = '%d';"; // 删除未确认的支付订单
- // const PAY_BILL_CONFIRM = "INSERT INTO `tab_billconfirm` (`openid`,`billno`,`amt`,`payitem`,`token`,`state`,`msg`) VALUES ('%s','%s','%d','%s','%s','1','OK');"; // 变更订单确认支付状态字
- // const PAY_BILL_LOST = "INSERT INTO `tab_billconfirm` (`openid`,`billno`,`amt`,`payitem`,`token`,`state`,`msg`) VALUES ('%s','%s','%d','%s','%s','-1','%s');"; // 变更订单支付丢失状态字
- // const PAY_LOG_INSERT = "INSERT INTO `tab_paylog` (`msg`) VALUES ('%s');"; // 新增支付日志
- //
- // /**
- // * 【PC端】购买付费道具
- // * @param Req $req
- // * @return type
- // */
- //
- // public static function buyGoods($req) {
- // $resp = new Resp();
- // $mem = $req->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";
- // }
- //
- //}
|