123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558 |
- <?php
- //
- //
- //namespace loyalsoft;
- //
- ///**
- // * Description of YYBPay
- // * @version
- // * 1.0.0 Created at 2016-4-20. by --gwang
- // * @author gwang (mail@wanggangzero.cn)
- // * @copyright © 2016-4-20, SJZ LoyalSoft Corporation & gwang. All rights reserved.
- // */
- //class YYBPay {
- ////put your code here
- //}
- //
- ///**
- // * 移动支付
- // * @history
- // * 1. m_pay m_AddUserCash ... 以 m_ 打头的函数是第一版, 完全按照应用宝官方要求托管游戏币的模式开发的. * 2015年4月23日
- // * 2. mn_pay mn_AddUserCash ... 以 mn_ 打头的函数是第二版, 修改为伪托管模式,除了充值的时候跟腾讯通讯,其余时间自己管理游戏币:钻石. * 2015年7月23日
- // * 3. 第三版: 独立的游戏币<元宝>, 面向多渠道的充值模式, 拉起充值成功后, 给玩家发放元宝. 游戏内部消费元宝,钻石和金币.
- // * 可以用元宝购买金币和钻石.这一版在上面的PayProc中 * 2015年9月23日
- // *
- // */
- //class MobilePayProc {
- //
- // /**
- // * Sql语句移动支付插入一条log日志。
- // * @var string
- // */
- // const SQL_M_LOG = "INSERT INTO `tab_mpaylog_%s` (zoneid,type,result,amt,balance,cash,giftedcash,chargedcash,source,oid,itemid) VALUES (%d,%d,%d,%d,%d,%d,%d,%d,'%s','%s','%s')";
- //
- // /**
- // * 【移动端】查询账户游戏币余额(v3)
- // * @param Req $req
- // * @param string $source 来源
- // */
- // public static function v3_m_get_Balance($req, $source = "") {
- // if ($req->userInfo->isTest) {
- // return Resp::myRetResponse($req, $req->userInfo->game->user);
- // }
- // $resp = new Resp();
- // $sdkUser = $req->userInfo->sdkUserKey;
- // $user = $req->userInfo->game->user;
- //// 客户端参数解析
- // $openid = $req->uid; // openid
- // $zoneid = $req->zoneid; // 分区Id
- // $openkey = $sdkUser->access_token; // openkey|accesstoken
- // $pf = $sdkUser->pf; // pf
- // $pfkey = $sdkUser->pf_key; // pfkey
- // $paytoken = $sdkUser->pay_token; // 手Q客户端获取,微信传空
- // $v3 = CV3Init();
- // $appid = V3_APPID; # 支付模块,微信和手Q统一使用手Q的appid
- // $ts = now();
- // $v3PayRet = $v3->m_get_balance($sdkUser->platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid);
- // $v3->close();
- // $amt = 0;
- // if ($v3PayRet->ret != 0) { //v3其他错误
- // $resp = Resp::err($v3PayRet->ret);
- // $resp->result = $v3PayRet;
- // } else {
- // $amt = $v3PayRet->save_amt - $user->charge_amt; # 本次充值金额
- // $user->cash = $v3PayRet->balance;
- // $user->charge_amt = $v3PayRet->save_amt; # 历史
- //
- // $user->gift_cash = $v3PayRet->gen_balance; // 赠送的宝石数量
- // if ($amt > 0 # 充值金额大于0,且首付标志为false才可以 /* 其实腾讯有返 isfirstpay字段 */
- // && isset($req->userInfo->game->privateState->firstPayGift) # 无此字段代表已经领取礼包
- // && !$req->userInfo->game->privateState->firstPayGift) {
- // $req->userInfo->game->privateState->firstPayGift = true;
- // }
- //// self::m_FixUserCash($req); # 修复(特定)用户钻石数据(端午节系统邮件失误)
- // UserProc::updateUserInfo($req); // 更新玩家数据信息
- //
- // $resp = Resp::myRetResponse($req, $user); // 直接将$user的最新值返回给客户端
- // }
- // self::_mPayLog($zoneid, $openid, MLogType::Inquire, $v3PayRet->ret, #
- // $amt, $user->yuanbao, $user->cash, $user->gift_cash, $user->charge_amt, $source);
- // return $resp;
- // }
- //
- // /**
- // * 【移动端】扣除游戏币购买道具(V3)
- // * @param Req $req
- // */
- // public static function v3_m_pay($req) {
- // $resp = new Resp();
- // $user = $req->userInfo->game->user; # user引用
- //// 客户端参数解析
- // $openid = $req->uid; // openid
- // $zoneid = $req->zoneid; // 分区id
- // $openkey = $req->paras[0]; // openkey|accesstoken
- // $pf = $req->paras[1]; // pf
- // $pfkey = $req->paras[2]; // pfkey
- // $paytoken = $req->paras[3]; // 手Q客户端获取 微信传空
- // $itemId = $req->paras[4]; // 道具ID
- //
- // $v3 = CV3Init();
- // $appid = V3_APPID; # 支付模块,微信和手Q统一使用手Q的appid
- // $ts = now();
- // $itemModel = ConstProc::getGoodsItemConst($itemId); // 取道具的常量数据
- // if ($itemModel == null) { //1.检测是否存在道具的常量数据
- // $resp = Resp::myErrResponse($req, ErrCode::err_const_no);
- // } else {
- // $prize = JsonUtil::decode($itemModel->prize); # 价格
- // if (property_exists($prize, "c") && $prize->c > 0) {// 钻石购买
- // $amt = self::_getItemCashPrize($itemModel); // 道具价格(钻石)
- // $remark = $itemModel->name;
- // if ($amt <= 0) {
- // $resp = Resp::myErrResponse($req, ErrCode::pay_vipnewerno);
- // } else {
- // if ($req->userInfo->isTest) { # 测试用,直接模拟一个支付返回值
- // $v3PayRet = json_decode(json_encode(array(
- // 'ret' => 0,
- // 'balance' => $user->cash -= $amt
- // )));
- // } else {
- // $v3PayRet = $v3->m_pay($req->userInfo->sdkUserKey->platform, #
- // $openid, $openkey, $pf, $paytoken, #
- // $appid, $pfkey, $ts, $zoneid, $amt, $itemId, $remark);
- // }
- // $v3->close();
- // if ($v3PayRet->ret == 1004) { // 余额不足
- // $resp = Resp::myErrResponse($req, ErrCode::notenough_cash_msg);
- // } elseif ($v3PayRet->ret != 0) { //v3其他错误
- // $resp = Resp::myErrResponse($req, $v3PayRet->ret);
- // $resp->result = $v3PayRet;
- // } else { // 发货
- // StoreProc::addSeprateItem($itemModel, $req); // 更新玩家游戏币余额
- // UserModel::set_Cash($user, $v3PayRet->balance); // 更新玩家数据信息
- // UserProc::updateUserInfo($req); // 直接将$user的最新值返回给客户端
- // $resp = Resp::myRetResponse($req, $user);
- // }
- // $source = "商城购买-" . $itemModel->name;
- // self::_mPayLog($req->zoneid, $req->uid, MLogType::Shop, $resp->err, #
- // $amt, $user->yuanbao, $user->cash, $user->gift_cash, $user->charge_amt, $source, $itemId);
- // }
- // }// 金币购买
- // else if (CommUtil::isPropertyExists($prize, "g") && $prize->g > 0) {
- // if ($req->userInfo->game->user->gold < $prize->g) {
- // $resp = Resp::myErrResponse($req, ErrCode::notenough_gold_msg);
- // } else {// 发货
- // StoreProc::addSeprateItem($itemModel, $req); // 更新玩家金币余额
- // UserModel::Comsume_Gold($user, $prize->g); // 更新玩家数据信息
- // UserProc::updateUserInfo($req); // 直接将$user的最新值返回给客户端
- // $resp = Resp::myRetResponse($req, $user);
- // }
- // }// 除了金币和钻石以外还有荣誉点。
- // else if (CommUtil::isPropertyExists($prize, "h") && $prize->h > 0) {
- // if ($user->honour < $prize->h) {
- // $resp = Resp::myErrResponse($req, ErrCode::notenough_honour);
- // } else {// 发货
- // StoreProc::addSeprateItem($itemModel, $req); // 更新玩家荣誉值余额
- // $user->honour -= $prize->h; // 更新玩家数据信息
- // UserProc::updateUserInfo($req); // 直接将$user的最新值返回给客户端
- // $resp = Resp::myRetResponse($req, $user);
- // }
- // }
- // }
- // return $resp;
- // }
- //
- // /**
- // * 领取首付礼包
- // * @param Req $req
- // * @return Resp
- // */
- // public static function m_GetFirstPayGift($req) {
- // $resp = new Resp();
- // $privateState = $req->userInfo->game->privateState;
- //# 客户端参数解析
- // $itemId = glc()->FirstPay_ItemId;
- //// 如果已经领取首付礼包
- // if (!CommUtil::isPropertyExists($privateState, "firstPayGift")) {
- // $resp = Resp::myErrResponse($req, ErrCode::pay_firstpaygetted);
- // } elseif ($req->userInfo->game->user->charge_amt <= 0) { // 如果尚未完成首付
- // $resp = Resp::myErrResponse($req, ErrCode::pay_firstpayno_err);
- // } else {
- // $itemModel = ConstProc::getGoodsItemConst($itemId); # 取物品常量
- // if ($itemModel == null) {// 检测首付礼包是否存在
- // $resp = Resp::myErrResponse($req, ErrCode::err_const_no);
- // } else {
- // unset($privateState->firstPayGift); # .剔除首付标志
- // StoreProc::addSeprateItem($itemModel, $req); # .发放首付礼包
- // $result = array(# 把玩家最新的仓库数据发给客户端
- // 'itemid' => $itemId
- // );
- //// 7.回送成功信息
- // $resp = Resp::myRetResponse($req, $result);
- //// 成就触发--获取金币
- // AchievementProc::dealAchievementState($req, $resp, AchievementProc::Gold);
- // UserProc::updateUserInfo($req); # 更新玩家数据
- // }
- // }
- // return $resp;
- // }
- //
- ////----------- 以下是辅助方法 -------------
- //
- // /**
- // * 【移动端】调用V3函数给玩家账号直接增加(赠送)游戏币(钻石),
- // * 赠送的游戏币不参与分成结算,若是造成收入损失,自负。
- // * @param Req $req Description
- // * @param type $amt 数量
- // * @param string $source 来源
- // */
- // public static function v3_m_AddUserCash($req, $amt, $source = "") {
- // $err = ErrCode::ok;
- // if ($req->userInfo->isTest) { // 跳过支付api
- // $req->userInfo->game->user->cash += $amt;
- // return $err;
- // }
- // if ($amt > 0) {// 防御,若是给出错误数值直接返回
- // $user = $req->userInfo->game->user;
- // $sdkUser = $req->userInfo->sdkUserKey;
- //// 参数准备
- // $zoneid = $req->zoneid; # 分区Id
- // $openid = $sdkUser->open_id;
- // $openkey = $sdkUser->access_token;
- // $pf = $sdkUser->pf;
- // $paytoken = $sdkUser->pay_token;
- // $pfkey = $sdkUser->pf_key;
- //
- // $ts = now();
- // $v3 = CV3Init();
- // $appid = V3_APPID; // 微信和QQ统一使用手Q的appId
- // $v3PayRet = $v3->m_present($sdkUser->platform, $openid, $openkey, $pf, # 调用后台接口
- // $paytoken, $appid, $pfkey, #
- // $ts, $zoneid, PAY_PRESENTCASH_ACTID, PAY_PRESENTCSAH_GIFTID, $amt);
- // $v3->close();
- // if ($v3PayRet->ret != ErrCode::ok) { //v3其他错误
- // $err = $v3PayRet->ret;
- // } else {
- // self::$m_billno = $v3PayRet->billno; // 账单号,扣费后其他逻辑失败的话,调用取消扣费接口
- //// 更新玩家游戏币余额, 老版本的文档中有balance字段,新的没有说明
- // if (isset($v3PayRet->balance)) {
- // UserModel::set_Cash($user, $v3PayRet->balance);
- // } else {
- // UserModel::set_Cash($user, $user->cash + $amt);
- // }
- //# 日志
- // self::_mPayLog($req->zoneid, $req->uid, MLogType::Present, $err, #
- // $amt, $user->yuanbao, $user->cash, $user->gift_cash, $user->charge_amt, $source);
- // }
- // }
- // return $err;
- // }
- //
- // /**
- // * 【移动端】扣除玩家游戏币(V3)(Ps.发货逻辑最后执行此步骤)
- // * @param Req $req Description
- // * @param int $amt 扣除数量
- // * @param string $source (string)备注,扣除来源(模块)
- // * @param string $itemid (option)相关物品id
- // * @return int ErrCode
- // */
- // public static function v3_m_SaveUserCash($req, $amt, $source = "", $itemid = "0") {
- // if ($req->userInfo->isTest) { # 跳过腾讯api(子豪)
- // $req->userInfo->game->user->cash -= $amt;
- // return ErrCode::ok;
- // }
- // if ($amt <= 0) { // 防御,数量不可能小于0
- // return ErrCode::ok;
- // }
- //
- // $user = $req->userInfo->game->user;
- // $sdkUser = $req->userInfo->sdkUserKey;
- //
- // $v3 = CV3Init();
- // $appid = V3_APPID; # 支付模块,微信和手Q统一使用手Q的appid
- // $ts = now();
- // $zoneid = $req->zoneid; // 分区Id
- //// 调用腾讯api
- // $v3PayRet = $v3->m_pay($sdkUser->platform, $sdkUser->open_id, $sdkUser->access_token, $sdkUser->pf, //
- // $sdkUser->pay_token, $appid, $sdkUser->pf_key, $ts, $zoneid, //
- // $amt, $itemid, $source);
- // $v3->close(); // 关闭
- //
- // $err = ErrCode::ok;
- // if ($v3PayRet->ret == 1004) { // 余额不足
- // $err = ErrCode::notenough_cash_msg;
- // } elseif ($v3PayRet->ret != 0) { //v3其他错误
- // $err = $v3PayRet->ret;
- // } else {
- // self::$m_billno = $v3PayRet->billno; // 账单号,扣费后其他逻辑失败的话,调用取消扣费接口
- //// 更新玩家游戏币余额, 老版本的文档中有balance字段,新的没有说明
- // if (property_exists($v3PayRet, "balance")) {
- // UserModel::set_Cash($user, $v3PayRet->balance);
- // } else {
- // UserModel::set_Cash($user, $user->cash - $amt);
- // }
- // $err = ErrCode::ok;
- // }
- // self::_mPayLog($zoneid, $req->uid, MLogType::Save, $err, #
- // $amt, $user->yuanbao, $user->cash, $user->gift_cash, $user->charge_amt, $source);
- // return $err;
- // }
- //
- // /**
- // * 缓存一个账单号,如果代码执行过程中出现错误,直接取消扣除游戏币
- // * 注意,若是逻辑不是在一次Request内完成的,那么次订单号需要进行存储
- // * @var string
- // */
- // static $m_billno;
- //
- // /**
- // * 【移动端】取消扣除玩家游戏币(V3)
- // * @param Req $req
- // * @param UserModel $user
- // * @param CstSDK_UserModel $sdkUser
- // * @param int $amt
- // * @return int
- // */
- // public static function v3_m_CancelConsumCash($req, $amt) {
- // if ($req->userInfo->isTest) { // 跳过腾讯api
- // $user->cash += $amt;
- // return ErrCode::ok;
- // }
- // $user = $req->userInfo->game->user;
- // $sdkUser = $req->userInfo->sdkUserKey;
- // $appid = V3_APPID; # 支付模块,微信和手Q统一使用手Q的appid
- // $ts = now();
- // $zoneid = $req->zoneid; # 分区Id
- // $v3 = CV3Init();
- // $v3PayRet = $v3->m_cancel_pay($sdkUser->platform, $sdkUser->open_id, $sdkUser->access_token, #
- // $sdkUser->pf, $sdkUser->pay_token, $appid, $sdkUser->pf_key, $ts, //
- // $zoneid, $amt, self::$m_billno);
- // $v3->close(); // 关闭
- // if ($v3PayRet->ret != 0) { //v3其他错误
- // return $v3PayRet->ret;
- // } else {
- //// 更新玩家游戏币余额, 老版本的文档中有balance字段,新的没有说明
- // if (property_exists($v3PayRet, "balance")) {
- // UserModel::set_Cash($user, $v3PayRet->balance);
- // } else {
- // UserModel::set_Cash($user, $user->cash + $amt);
- // }
- // return ErrCode::ok;
- // }
- // }
- //
- // /**
- // * 取物品的价格(钻石)
- // * @param GoodsItemModel $itemModel
- // */
- // private static function _getItemCashPrize($itemModel) {
- // $c = 0;
- // $prize = JsonUtil::decode($itemModel->prize);
- // if (CommUtil::isPropertyExists($prize, "c")) {
- // $c = $prize->c;
- // }
- // return $c;
- // }
- //
- // /**
- // * 插入一条记录
- // * @param int $zoneid
- // * @param string $oid
- // * @param int $type
- // * @param int $amt
- // * @param int $balance
- // * @param int $cash 钻石
- // * @param int $giftedcash
- // * @param int $chargedcash
- // * @param int $source
- // */
- // public static function _mPayLog($zoneid, $oid, $type, $result, $amt, $balance, $cash, $giftedcash, $chargedcash, $source = "srcUnKnown", $itemid = "") {
- //// var_dump(func_get_args());
- //// CLogUtil::print_stack_trace();
- // $month = date("Ym");
- // $sql = sprintf(self::SQL_M_LOG, $month, $zoneid, $type, $result, $amt, $balance, $cash, $giftedcash, $chargedcash, $source, $oid, $itemid);
- // $paydb = CPayInit();
- // $paydb->query($sql);
- // $paydb->close();
- // }
- //
- //// ----------------new pay proc -------------------------
- //// 腾讯支付修改版,不再让钻石存储在腾讯端
- //
- // /**
- // * 【移动端】取消扣除玩家游戏币,无v3调用
- // * @param Req $req
- // * @param UserModel $user
- // * @param CstSDK_UserModel $sdkUser
- // * @param int $amt
- // * @return int
- // */
- // public static function mn_CancelConsumCash($req, $amt) {
- // $err = ErrCode::ok;
- // $user = $req->userInfo->game->user;
- // $zoneid = $req->zoneid; # 分区Id
- // if ($amt > 0) { // 更新玩家游戏币余额, 老版本的文档中有balance字段,新的没有说明
- // UserModel::set_Cash($user, $user->cash + $amt);
- //# 记录日志
- // self::_mPayLog($zoneid, $user->oId, MLogType::Present, $err, $amt, $user->yuanbao, #
- // $user->cash, $user->gift_cash, $user->charge_amt, "<取消订单>" . self::$m_billno);
- // }
- // return $err;
- // }
- //
- // /**
- // * 【移动端】扣除玩家游戏币,无V3调用(Ps.发货逻辑最后执行此步骤)
- // * @param Req $req Description
- // * @param int $amt 扣除数量
- // * @param string $source (string)备注,扣除来源(模块)
- // * @param string $itemid (option)相关物品id
- // * @return int ErrCode
- // */
- // public static function mn_SaveUserCash($req, $amt, $source = "", $itemid = "0") {
- // $err = ErrCode::ok;
- // if ($amt > 0) { // 防御,数量不可能小于0
- // $user = $req->userInfo->game->user;
- // $zoneid = $req->zoneid; // 分区Id
- // if ($user->cash < $amt) { // 余额不足
- // $err = ErrCode::notenough_cash_msg;
- // } else {// 更新玩家游戏币余额
- // UserModel::set_Cash($user, $user->cash - $amt);
- // self::$m_billno = date("Y-m-d H:i:is");
- // }
- // self::_mPayLog($zoneid, $req->uid, MLogType::Save, $err, #
- // $amt, $user->yuanbao, $user->cash, $user->gift_cash, $user->charge_amt, $source);
- // }
- // return $err;
- // }
- //
- // /**
- // * 【移动端】给玩家账号直接增加(赠送)游戏币(钻石)(无V3),
- // * 赠送的游戏币不参与分成结算,若是造成收入损失,自负。
- // * @param Req $req Description
- // * @param type $amt 数量
- // */
- // public static function mn_AddUserCash($req, $amt, $source = "") {
- // $err = ErrCode::ok;
- // if ($amt > 0) {// 防御,若是给出错误数值直接返回
- // $user = $req->userInfo->game->user;
- // UserModel::set_Cash($user, $user->cash + $amt);
- // if ($user->cash < 0) {
- // # 输出日志-wqq
- // }
- //# 记录日志
- // self::_mPayLog($req->zoneid, $req->uid, MLogType::Present, $err, #
- // $amt, $user->yuanbao, $user->cash, $user->gift_cash, $user->charge_amt, $source);
- // }
- // return ErrCode::ok;
- // }
- //
- //// /**
- //// * 【移动端】扣除游戏币购买道具
- //// * @param RequestVo $req
- //// */
- //// static function mn_pay($req) {
- //// $resp = new ResponseVo();
- //// $user = $req->userInfo->user; # user引用
- ////// 客户端参数解析
- //// $itemId = $req->paras[4]; // 道具ID
- ////
- //// $itemModel = ConstProc::getItemConst($req->mem, $itemId); // 取道具的常量数据
- //// if ($itemModel == null) { //1.检测是否存在道具的常量数据
- //// $resp = ResponseVo::myErrResponse($req, ErrCode::err_msg_itemnoconst);
- //// } else {
- //// $prize = JsonUtil::decode($itemModel->prize); # 价格
- //// if (property_exists($prize, "c") && $prize->c > 0) {// 钻石购买
- //// $amt = self::_getItemCashPrize($itemModel); // 道具价格(钻石)
- //// if ($amt <= 0) {
- //// $resp = ResponseVo::myErrResponse($req, ErrCode::err_pay_vipnewerno);
- //// } else {
- //// if ($user->cash < $amt) { // 余额不足
- //// $resp = ResponseVo::myErrResponse($req, ErrCode::err_msg_cashnotenough);
- //// } else { // 发货
- //// StoreProc::addSeprateItem($itemModel, $req); // 更新玩家游戏币余额
- //// UserModel::set_Cash($user, $user->cash - $amt); // 更新玩家数据信息
- //// UserProc::updateUserInfo($req); // 直接将$user的最新值返回给客户端
- //// $resp = ResponseVo::myRetResponse($req, $user);
- ////# 记录日志
- //// $source = "商城购买-" . $itemModel->name;
- //// self::_mPayLog($req->zoneid, $req->oid, MLogType::Shop, $resp->err, #
- //// $amt, $user->yuanbao, $user->cash, $user->gift_cash, $user->charge_amt, $source, $itemId);
- //// }
- //// }
- //// }// 金币购买
- //// else if (CommUtil::isPropertyExists($prize, "g") && $prize->g > 0) {
- //// if ($req->userInfo->user->gold < $prize->g) {
- //// $resp = ResponseVo::myErrResponse($req, ErrCode::err_msg_goldnotenough);
- //// } else {// 发货
- //// StoreProc::addSeprateItem($itemModel, $req); // 更新玩家金币余额
- //// UserModel::Comsume_Gold($user, $prize->g); // 更新玩家数据信息
- //// UserProc::updateUserInfo($req); // 直接将$user的最新值返回给客户端
- //// $resp = ResponseVo::myRetResponse($req, $user);
- //// }
- //// }// 除了金币和钻石以外还有荣誉点。
- //// else if (CommUtil::isPropertyExists($prize, "h") && $prize->h > 0) {
- //// if ($user->honour < $prize->h) {
- //// $resp = ResponseVo::myErrResponse($req, ErrCode::err_msg_honournotenough);
- //// } else {// 发货
- //// StoreProc::addSeprateItem($itemModel, $req); // 更新玩家荣誉值余额
- //// $user->honour-=$prize->h; // 更新玩家数据信息
- //// UserProc::updateUserInfo($req); // 直接将$user的最新值返回给客户端
- //// $resp = ResponseVo::myRetResponse($req, $user);
- //// }
- //// }
- //// }
- //// return $resp;
- //// }
- ////
- //// /**
- //// * 【移动端】查询账户游戏币余额
- //// * @history
- //// * 2015-7-6 改动思路, 不直接拿api返回值中的balance更新玩家的钻石余额,
- //// * 采用计算相对值的方法计算距离上次更新,玩家是否有新的充值,
- //// * $amt>0,则代表有新的充值,将$amt更新到玩家账户.
- //// * @param RequestVo $req
- //// * @param string $source 来源
- //// */
- //// static function mn_get_Balance($req, $source = "") {
- //// if ($req->userInfo->isTest) {
- //// return ResponseVo::myRetResponse($req, $req->userInfo->user);
- //// }
- //// $resp = new ResponseVo();
- //// $sdkUser = $req->userInfo->sdkUserKey;
- //// $user = $req->userInfo->user;
- ////// 客户端参数解析
- //// $openid = $req->oid; // openid
- //// $zoneid = $req->zoneid; // 分区Id
- //// $openkey = $sdkUser->access_token; // openkey|accesstoken
- //// $pf = $sdkUser->pf; // pf
- //// $pfkey = $sdkUser->pf_key; // pfkey
- //// $paytoken = $sdkUser->pay_token; // 手Q客户端获取,微信传空
- //// $v3 = CV3Init();
- //// $appid = V3_APPID; # 支付模块,微信和手Q统一使用手Q的appid
- //// $ts = TimeUtil::tsCurrent();
- //// $v3PayRet = $v3->m_get_balance($sdkUser->platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid);
- //// $v3->close();
- //// $amt = 0;
- //// if ($v3PayRet->ret != 0) { //v3其他错误
- //// $resp = ResponseVo::errResponse($req->oid, $req->msgid, $v3PayRet->ret);
- //// $resp->result = $v3PayRet;
- //// } else {
- //// $amt = $v3PayRet->save_amt - $user->charge_amt; # 本次充值金额 = v3提供的历史充值金额 - 玩家记录的历史充值金额
- //// if ($amt > 0) {
- //// $user->cash +=$amt; # $v3PayRet->balance;
- //// $user->charge_amt = $v3PayRet->save_amt; # 更新历史充值金额
- //// $user->gift_cash = $v3PayRet->gen_balance; // 赠送的宝石数量
- //// if (isset($req->userInfo->game->privateState->firstPayGift) # 无此字段代表已经领取礼包
- //// && !$req->userInfo->game->privateState->firstPayGift) {
- //// $req->userInfo->game->privateState->firstPayGift = true;
- //// }
- //// }
- ////// self::m_FixUserCash($req); # 修复(特定)用户钻石数据(端午节系统邮件失误)
- //// UserProc::updateUserInfo($req); // 更新玩家数据信息
- //// $resp = ResponseVo::myRetResponse($req, $user); // 直接将$user的最新值返回给客户端
- //// }
- //// self::_mPayLog($zoneid, $openid, MLogType::Inquire, $v3PayRet->ret, #
- //// $amt, $user->yuanbao, $user->cash, $user->gift_cash, $user->charge_amt, $source);
- //// return $resp;
- //// }
- //}
|