| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 | <?php/** * Pay.php  UTF-8 * 支付校验 * * @date    : 2019/12/2 10:22 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author  : chenbingling <cbl@huosdk.com> * @version : HUOSDK 8.5 */namespace huoIdentify\controller;use huo\controller\common\Base;use huo\model\game\GameModel;use huo\model\member\MemberModel;use huoIdentify\logic\IdentifyDayIdotLogic;use huoIdentify\logic\IdentifyIdotLogic;use huoIdentify\model\IdentifyMemModel;use huolib\constant\CommonConst;use huolib\constant\GameConst;use huolib\constant\IdentifyConst;use huolib\constant\MemConst;use huolib\status\IdentifyStatus;use huolib\utils\IdentifyUtils;class Pay extends Base {    /**     * 支付校验     *     * @param int    $mem_id 玩家id     * @param int    $app_id 游戏id     * @param float  $amount 订单金额     * @param string $token  token     *     * @return string|array url 实名认证地址或提示信息地址     */    public function checkLimit($mem_id, $app_id, $amount, $token = '') {        $_token = empty($token) ? session_id() : $token;        $_game_auth = (new GameModel())->getIsAuthById($app_id);        /* 不需要实名不做任何处理 */        if (GameConst::GAME_IDENTIFY_IS_NO == $_game_auth) {            return '';        }        $_identify_conf = (new IdentifyConf())->getConf();        $_id_card = (new IdentifyMemModel())->getIdCardByMemId($mem_id);        if (empty($_id_card)) {            $_is_allow_charge = $_identify_conf['unnamed']['is_allow_charge'];            /* 如果未实名允许充值则不做任何处理 */            if (CommonConst::STATUS_YES == $_is_allow_charge) {                return '';            }            /* Modified by chenbingling BEGIN 2021/9/3 ISSUES:#15622  产品需求 已输入过实名的用户用没有说明认证不成功,点击充值的时候不用再输入姓名等信息*/            $_in_progress_data = (new Identify())->getInProgressDataByMemApp($mem_id, $app_id);            if (!empty($_in_progress_data)) {                $_code = IdentifyStatus::MEM_IDENTIFY_IN_PROGRESS;                return $this->huoError($_code, IdentifyStatus::getMsg($_code));            }            /* END 2021/9/3 ISSUES:#15622 */            $_param = [                'app_id' => $app_id,                'token'  => $_token            ];            $_identify_url = IdentifyConst::getIdentifyUrl($_param);            $_mem_model = new MemberModel();            $_status = $_mem_model->getStatus($mem_id);            $_mobile = $_mem_model->getMobileById($mem_id);            if (empty($_mobile) && MemConst::STATUS_TRY == $_status) {                $_identify_url = IdentifyConst::getBindMobileUrl($_param);            }            return $_identify_url;        }        $_age = IdentifyUtils::getAgeById($_id_card);        if ($_age >= 18) {            return '';        }        // 校验未成年玩家限制        $_online_class = new Online($app_id, $mem_id, '');        $_online_class->setToken($_token);        $_url = $_online_class->checkUnderageLimitOnTheHour();        if (!empty($_url)) {            return $_url;        }        $_type = CommonConst::CONST_ZERO;        $_idot_data = (new IdentifyIdotLogic())->getInfoByIdCard($_id_card);        $_week_money = get_val($_idot_data, 'week_money', 0.00) + $amount;        $_month_money = get_val($_idot_data, 'month_money', 0.00) + $amount;        $_charge_limit = $_identify_conf['underage']['charge_limit'];        foreach ($_charge_limit as $_k => $_v) {            if ($_v['min_age'] <= $_age && $_age <= $_v['max_age']                && ($_week_money > $_v['week_money']                    || $_month_money > $_v['month_money'])) {                switch ($_k) {                    case 0:                        $_type = IdentifyConst::UNDERAGE_AGE_8_CHARGE_LIMIT;                        break;                    case 1:                        $_type = IdentifyConst::UNDERAGE_AGE_8_16_CHARGE_LIMIT;                        break;                    case 2:                        $_type = IdentifyConst::UNDERAGE_AGE_16_18_CHARGE_LIMIT;                        break;                    default:                }                break;            }        }        $_param = [            'app_id' => $app_id,            'token'  => $token        ];        return IdentifyConst::getUnderageLimitMsgUrl($_type, $_param);    }    /**     * 更新支付金额     *     * @param int   $mem_id 玩家id     * @param float $money  支付金额     *     * @return bool     */    public function updateMoney($mem_id, $money) {        $_id_card = (new IdentifyMemModel())->getIdCardByMemId($mem_id);        if (!empty($_id_card)) {            (new IdentifyDayIdotLogic())->updateSumMoneyByIdCard($money, $_id_card, $mem_id);            (new IdentifyIdotLogic())->updateSumMoneyByIdCard($money, $_id_card);        }        return true;    }}
 |