Browse Source

clean code

gwang 4 years ago
parent
commit
7a22ef8b56

+ 1 - 1
Gameserver/Amfphp/process/EventProc.php

@@ -3,7 +3,7 @@
 namespace loyalsoft;
 
 /**
- * 框架封装的一部分通用/常见Event.
+ * 事件模块.
  * @version
  *          1.0.0 Created at 2017-8-28.   by --gwang
  * @author gwang (mail@wanggangzero.cn)

+ 1 - 2
Gameserver/Amfphp/process/HeroProc.php

@@ -180,8 +180,7 @@ class HeroProc {
 
         my_Assert($heroUpgradeCostCfg, ErrCode::hero_strength_cost_const_no);    # 1.检查是否存在这个升阶数据的模板
         my_Assert(UserGameModel::Consume_HeroSegment($user, #                    # 扣除碎片  
-                        $heroUpgradeCostCfg->segID, $heroUpgradeCostCfg->segNum),
-                ErrCode::hero_segment_not_enough);                              # 碎片数量不足
+                        $heroUpgradeCostCfg->segID, $heroUpgradeCostCfg->segNum), ErrCode::hero_segment_not_enough);                              # 碎片数量不足
         # 扣除碎片成功
         $upHero->grade = $nextGrade;                                            # 5.强化英雄进行成功升阶 
         $collectHeros->$huid = $upHero;                                         # 更新Hero数据

+ 6 - 11
Gameserver/Amfphp/process/TaskProc.php

@@ -34,18 +34,13 @@ class TaskProc {
         list($num) = $req->paras;                                               # 提取参数: 领奖的阶段
         $userTask = $req->userInfo->game->task;
         $rewardCfg = GameConfig::task_active_reward_getItem($num);              # 查找奖励配置
-        my_Assert(null != $rewardCfg, ErrCode::err_const_no);
-        // 判断尚未领取
-        my_Assert(!in_array($num, $userTask->dailyActiveGetedRewardArr), ErrCode::task_reward_geted);
-        // 判断活跃点数足够
-        my_Assert($userTask->dailyActivePoint >= $num, ErrCode::task_activePoint_notenough);
-        // 按照配置发放奖励
-        $ok = StoreProc::AddMultiItemInStore($req, $rewardCfg->reward);
+        my_Assert(null != $rewardCfg, ErrCode::err_const_no);                   # 防御: 常量丢失
+        my_Assert(!in_array($num, $userTask->dailyActiveGetedRewardArr), ErrCode::task_reward_geted); # 判断尚未领取
+        my_Assert($userTask->dailyActivePoint >= $num, ErrCode::task_activePoint_notenough);          # 判断活跃点数足够
+        $ok = StoreProc::AddMultiItemInStore($req, $rewardCfg->reward);         # 按照配置发放奖励
         my_Assert($ok == ErrCode::ok, $ok);                                     # 发放成功
-        // 添加领取记录
-        $userTask->dailyActiveGetedRewardArr[] = $num;
-        // 回存数据
-        UserProc::updateUserInfo();
+        $userTask->dailyActiveGetedRewardArr[] = $num;                          # 添加领取记录
+        UserProc::updateUserInfo();                                             # 回存数据
         return Resp::ok(array(//                                                # 返回
                     "gold" => $req->userInfo->game->baseInfo->gold,
                     "cash" => $req->userInfo->game->baseInfo->cash,

+ 4 - 35
Gameserver/Amfphp/test.php

@@ -2,43 +2,12 @@
 
 namespace loyalsoft;
 
+echo ("phpver: " . PHP_VERSION . PHP_EOL);
 include __DIR__ . '/main.php';
+//set_time_limit(15);                                                           # 设置执行超时时间
+//
 //require_once ROOTDIR . '/Util/OpenSSLVerify.php';                             # Ps. 这个文件和类名没有对应关系.
 //header('X-Accel-Buffering: no');                                              # nginx 控制头, 关闭buffer
-//set_time_limit(15);                                                           # 设置执行超时时间
-echoLine("phpver:" . PHP_VERSION);
-
-/**
- * 从参数构造请求串
- * @param type $params  如果是字符串直接返回,(关联)数组或者object(仅取public字段)
- * @return string 编码规范-RFC3986
- */
-function makeQueryString2($params) {
-    if (is_string($params)) {
-        return $params;
-    }
-    return http_build_query($params, "", '&', PHP_QUERY_RFC3986);           # 3986
-}
-
-function makeQueryString($params) {
-    if (is_string($params)) {
-        return $params;
-    }
-    $querys = array();
-    foreach ($params as $key => $value) {
-        array_push($querys, rawurlencode($key) . '=' . rawurlencode($value));
-    }
-    $query_string = join('&', $querys);
-    return $query_string;
-}
-
-$data = array('uid' => "1234567-ylsj",
-    'name' => "王刚",
-);
-
-
 
-$str = makeQueryString($data);
 
-var_dump(makeQueryString($str));
-var_dump(makeQueryString2($str));
+var_dump("Hello world!");

+ 0 - 879
Gameserver/Amfphp/util/CV3Util.php

@@ -1,879 +0,0 @@
-<?php
-
-include_once dirname(__FILE__) . '/OpenAPI/OpenApiV3.php';
-
-namespace loyalsoft;
-
-//<editor-fold defaultstate="collapsed" desc="CV3Util">
-/**
- * Description of CV3Util
- * V3 API工具类[APHP三大操作单元之一]
- * @author jgao
- */
-class CV3Util
-{
-
-//<editor-fold defaultstate="collapsed" desc="常量/变量定义">
-    // ----以下为通用常量定义----
-    /**
-     * qq空间
-     */
-    const qzone = 'qzone';
-
-    /**
-     * 朋友网
-     */
-    const pengyou = 'pengyou';
-
-    //put your code here
-    /**
-     * V3SDK
-     * @var OpenApiV3
-     */
-    var $sdk = 0;
-    var $appkey;
-
-//</editor-fold>
-//
-//<editor-fold defaultstate="collapsed" desc="==========辅助方法===========">
-    /**
-     * 初始化V3链接
-     * @param type $host
-     * @param type $appid
-     * @param type $appkey
-     * @return \OpenApiV3
-     */
-    function v3conn($host, $appid, $appkey)
-    {
-        $this->appkey = $appkey;
-        $this->sdk = new OpenApiV3($appid, $appkey);
-        $this->sdk->setServerName($host);
-        return $this->sdk;
-    }
-
-    /**
-     * 关闭V3链接
-     */
-    function close()
-    {
-
-    }
-
-    /**
-     * 获取通用参数格式
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @return type
-     */
-    function getParams($openid, $openkey, $pf)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-        );
-        return $params;
-    }
-
-//</editor-fold>
-//<editor-fold defaultstate="collapsed" desc="========= 调用V3API =========">
-    // ----这里补充具体的后台API调用----
-
-    /**
-     * cee付费sig校验流程
-     * @param type $params
-     * @return type
-     */
-    function cee_verify_sig($params, $url_path, &$sig_new)
-    {
-        // 获取原sig
-        $sig = urldecode($params['sig']);
-        $secret = $this->appkey . '&';
-        return SnsSigCheck::verifySig('GET', $url_path, $params, $secret, $sig, $sig_new);
-    }
-
-    /**
-     * 生成自定义sig证书
-     * @param type $params
-     * @param type $url_path
-     * @return type
-     */
-    function cee_self_sig($params, $self_url_path)
-    {
-        $secret = $this->appkey . '&';
-        foreach ($params as $k => $v) {
-            $params[$k] = md5($v);
-        }
-        return SnsSigCheck::makeSig('GET', $self_url_path, $params, $secret);
-    }
-
-//</editor-fold>
-//
-//<editor-fold defaultstate="collapsed" desc="==========用户信息类API=========">
-    /**
-     * ==============用户信息类API==============
-     * 主要使用场景:应用中需要进行用户信息展示时。
-     */
-
-    /**
-     * 获取玩家信息
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @return type
-     */
-    function user_get_info($openid, $openkey, $pf)
-    {
-        $params = $this->getParams($openid, $openkey, $pf);
-        return $this->sdk->api('/v3/user/get_info', $params, array(), 'post');
-    }
-
-    /**
-     * 批量获取玩家信息
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $fopenids
-     * @return type
-     */
-    function user_get_multi_info($openid, $openkey, $pf, $fopenids)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'fopenids' => $fopenids,
-        );
-        return $this->sdk->api('/v3/user/get_multi_info', $params, array(), 'post');
-    }
-
-    /**
-     *  获取登录用户的VIP信息,包括是否为QQ会员,蓝钻,黄钻,红钻,绿钻,粉钻,超级QQ,3366会员,是否为豪华版,是否年费(暂不能查询是否年费红钻),以及VIP等级。
-     *    1. 传一个参数,返回对应的一种VIP信息;
-     *    2. 不传参数,默认返回蓝钻和黄钻两种信息;
-     *    3. 支持查询VIP是否为豪华版的信息;
-     *    4. 支持查询3366会员等级信息;
-     *    5. 支持xml返回格式。
-     * @param type $openid          //平台参数
-     * @param type $openkey
-     * @param type $pf
-     * @param type $member_vip  //是否查询QQ会员信息,1为查询,0或者不写为不查询
-     * @param type $blue_vip        //是否查询蓝钻信息,1为查询,0或者不写为不查询。
-     * @param type $yellow_vip    //是否查询黄钻信息,1为查询,0或者不写为不查询。
-     * @param type $red_vip         //是否查询红钻信息,1为查询,0或者不写为不查询。
-     * @param type $green_vip    //是否查询绿钻信息,1为查询,0或者不写为不查询。
-     * @param type $pink_vip      //是否查询粉钻信息,1为查询,0或者不写为不查询。
-     * @param type $superqq      //是否查询超级qq信息,1为查询,0或者不写为不查询。
-     * @param type $is_3366       //是否查询3366信息,1为查询,0或者不写为不查询。
-     * @return type
-     */
-    function user_total_vip_info($openid, $openkey, $pf, $member_vip = 0, $blue_vip = 0, $yellow_vip = 0, $red_vip = 0, $green_vip = 0, $pink_vip = 0, $superqq = 0, $is_3366 = 0
-    )
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'member_vip' => $member_vip,
-            'blue_vip' => $blue_vip,
-            'yellow_vip' => $yellow_vip,
-            'red_vip' => $red_vip,
-            'green_vip' => $green_vip,
-            'pink_vip' => $pink_vip,
-            'superqq' => $superqq,
-            'is_3366' => $is_3366
-        );
-        return $this->sdk->api('v3/user/total_vip_info', $params, array(), 'post');
-    }
-
-    /**
-     *   验证登录用户是否黄钻,是否年费黄钻,如果是则返回其黄钻等级等信息。
-     *
-     *  注意,本接口与“获取用户信息”接口都返回了黄钻信息,但是二者之间有区别:
-     * (1)本接口获取的黄钻信息是实时的,适用于需要黄钻信息特别准确的场景(例如每日礼包场景中,非黄钻用户开通黄钻后,返回应用应该立即可领取礼包);
-     * (2)“获取用户信息”接口(v3/user/get_info)返回的否黄钻以及黄钻等级的信息是经过缓存的,有一定的延时,适用于不需要黄钻信息特别准确的场景(例如用户头像后的黄钻标识)。
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @return type
-     */
-    function user_is_vip($openid, $openkey, $pf)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf
-        );
-        return $this->sdk->api('v3/user/is_vip', $params, array(), 'post');
-    }
-
-    /**
-     *   查询用户的一个或多个好友是否开通了腾讯某个业务的VIP。目前只支持查询QQ会员信息(可查询到用户是否为QQ会员,年费会员,以及会员等级等)。
-     *
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $fopenids  //需要获取信息的好友的openid列表,openid之间通过“_”分隔,每次最多可输入50个。
-     * @param type $flags    //VIP业务查询标识。目前只支持查询QQ会员信息:qq_vip。 后期会支持更多业务的用户VIP信息查询。如果要查询多种VIP业务,通过“,”分隔。如果不输入该值,默认为全部查询。
-     * @return type
-     */
-    function user_friends_vip_info($openid, $openkey, $pf, $fopenids, $flags = null
-    )
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'fopenids' => $fopenids,
-            'flags' => $flags
-        );
-        return $this->sdk->api('v3/user/friends_vip_info', $params, array(), 'post');
-    }
-
-//</editor-fold>
-//
-//<editor-fold defaultstate="collapsed"  desc="==========敏感词过滤API=========">
-    /**
-     *  敏感词过滤
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $content
-     * @param type $msgId
-     * @return type
-     */
-    function word_filter($openid, $openkey, $pf, $content, $msgId
-    )
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'content' => $content,
-            'msgid' => $msgId
-        );
-        return $this->sdk->api('/v3/csec/word_filter', $params, array(), 'post');
-    }
-
-//</editor-fold>
-//
-//
-//<editor-fold defaultstate="collapsed" desc="---------- Msdk 移动端支付 -----------">
-
-    /**
-     * 移动支付api
-     * @param string $script_name 调用的API方法,比如/mpay/present_m,参考 http://wiki.mg.open.qq.com/index.php?title=Android%E6%94%AF%E4%BB%98API
-     * @param array $params 调用API时带的参数
-     * @param string $method 请求方法 post / get
-     * @param string $protocol 协议类型 http / https
-     * @return type 结果
-     */
-    private function msdk_Api($script_name, $params, $cookie = array(), $method = 'post', $protocol = 'http')
-    {
-        $this->sdk->setServerName(MSDK_HOST);
-//        $ret = $this->sdk->api($script_name, $params, $cookie, $method, $protocol);
-        $ret = $this->sdk->ymsdk_api($script_name, $params, $cookie, $method, $protocol);
-        $this->sdk->setServerName(V3_HOST);
-        return $ret;
-    }
-
-    /**
-     * 赠送游戏币接口,应用在后台自助申请赠送游戏币的营销活动,获取到活动号和礼包ID后
-     * 调用本接口赠送。赠送的游戏币不参与结算分成。
-     * @param str $platform 1 微信 2 手Q
-     * @param str $openid
-     * @param str $openkey
-     * @param str $pf
-     * @param str $paytoken
-     * @param str $appid
-     * @param str $pfkey
-     * @param int $ts
-     * @param str $zoneid 分区Id
-     * @param str $discountid  赠送营销活动ID。(营销平台申请)
-     * @param type $giftid  礼品ID。(营销平台申请)
-     * @param type $presenttimes 赠送礼品的次数。如果配置的礼包ID对应1个游戏币,那么本字段表示要赠送游戏币的个数。
-     * @param type $userip  (可选)用户的外网IP
-     * @return V3Return
-     */
-    function msdk_present($platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid, $discountid, $giftid, $presenttimes)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pay_token' => $paytoken,
-            'pf' => $pf,
-            'pfkey' => $pfkey,
-            'appid' => $appid,
-            'zoneid' => $zoneid,
-            'ts' => $ts,
-            'discountid' => $discountid,
-            'giftid' => $giftid,
-            'presenttimes' => $presenttimes,
-//            'userip' => $userip, // (可选) 用户的外网IP
-//            'format' => "json"    // (可选)json、jsonp_$func。 默认json。如果
-        );
-        // 这个需要在cookie里面传一些参数
-        $cookie = self::ymsdk_makeCookie($platform);
-        $cookie['org_loc'] = "/mpay/present_m";
-
-        return $this->msdk_Api('/mpay/present_m', $params, $cookie, 'get');
-    }
-
-    /**
-     * 查询游戏币余额接口
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $paytoken
-     * @param type $appid
-     * @param type $pfkey
-     * @param type $ts
-     * @param str $zoneid 分区Id
-     * @return V3Return
-     */
-    function msdk_get_balance($platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pay_token' => $paytoken,
-            'appid' => $appid,
-            'ts' => $ts,
-            'pf' => $pf,
-            'pfkey' => $pfkey,
-            'zoneid' => $zoneid,
-//            'userip' => $userip, // (可选) 用户的外网IP
-//        'accounttype' => $accounttype, // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
-//            'format' => "json",    // (可选)json、jsonp_$func。 默认json。如果
-        );
-        // 这个需要在cookie里面传一些参数
-        $cookie = self::ymsdk_makeCookie($platform);
-        $cookie['org_loc'] = "/mpay/get_balance_m";
-        return $this->msdk_Api('/mpay/get_balance_m', $params, $cookie, 'get');
-    }
-
-    /**
-     * 扣除游戏币接口
-     * @param string $platform
-     * @param string $openid
-     * @param string $openkey
-     * @param string $pf
-     * @param string $paytoken
-     * @param string $appid
-     * @param string $pfkey
-     * @param int $ts
-     * @param string $sig
-     * @param int $amt 扣游戏币数量。
-     * @param type $payitem 道具名称。
-     * @param type $appremark 备注。会写到账户流水。
-     * @return V3Return
-     */
-    function msdk_pay($platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid, $amt, $payitem, $appremark)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pay_token' => $paytoken,
-            'appid' => $appid,
-            'ts' => $ts,
-            'pf' => $pf,
-            'pfkey' => $pfkey,
-            'zoneid' => $zoneid,
-            'amt' => $amt,
-            'payitem' => $payitem, // (可选)道具名称
-//            'userip' => $userip, // (可选) 用户的外网IP
-//        'accounttype' => $accounttype, // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
-//            'format' => "json",    // (可选)json、jsonp_$func。 默认json。如果
-            'appremark' => $appremark  // (可选)备注。会写到账户流水。
-        );
-        // 这个需要在cookie里面传一些参数
-        $cookie = self::ymsdk_makeCookie($platform);
-        $cookie['org_loc'] = "/mpay/pay_m";
-        return $this->msdk_Api('/mpay/pay_m', $params, $cookie, 'get');
-    }
-
-    /**
-     * 取消支付接口
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $paytoken
-     * @param type $appid
-     * @param type $pfkey
-     * @param type $ts
-     * @param type $amt  扣游戏币数量
-     * @param type $billno 预扣流水号
-     * @param type $userip (可选)用户的外网ip
-     * @param type $accounttype (可选)账户类型,基础货币(common)安全货币(security),不填默认common
-     * @return V3Return
-     */
-    function msdk_cancel_pay($platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid, $amt, $billno)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pay_token' => $paytoken,
-            'appid' => $appid,
-            'ts' => $ts,
-            'pf' => $pf,
-            'pfkey' => $pfkey,
-            'zoneid' => $zoneid,
-            'amt' => $amt,
-            'billno' => $billno,
-//            'userip' => $userip, // (可选) 用户的外网IP
-//            'accounttype' => $accounttype  // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
-//            'format' => "json"    // (可选)json、jsonp_$func。 默认json。如果
-        );
-        // 这个需要在cookie里面传一些参数
-        $cookie = self::ymsdk_makeCookie($platform);
-        $cookie['org_loc'] = "/mpay/cancel_pay_m";
-        return $this->msdk_Api('/mpay/cancel_pay_m', $params, $cookie, 'get');
-    }
-
-    //</editor-fold>
-    //
-
-    //<editor-fold defaultstate="collapsed" desc="---------- YSDK 移动端支付 -----------">
-
-    /**
-     * 移动支付api
-     * @param string $script_name 调用的API方法,比如/mpay/present_m,参考 http://wiki.mg.open.qq.com/index.php?title=Android%E6%94%AF%E4%BB%98API
-     * @param array $params 调用API时带的参数
-     * @param string $method 请求方法 post / get
-     * @param string $protocol 协议类型 https
-     * @return type 结果
-     */
-    private function ysdk_Api($script_name, $params, $cookie = array(), $method = 'post', $protocol = 'https')
-    {
-        $this->sdk->setServerName(YSDK_HOST); // 设置sdk服务端地址
-//        $ret = $this->sdk->api($script_name, $params, $cookie, $method, $protocol);
-        $ret = $this->sdk->ymsdk_api($script_name, $params, $cookie, $method, $protocol);
-        $this->sdk->setServerName(V3_HOST);
-        return $ret;
-    }
-
-    /**
-     * 查询游戏币余额接口
-     * @param type $sessionId
-     * @param type $sessionType
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $appid
-     * @param type $pfkey
-     * @param type $ts
-     * @return type
-     */
-    function ysdk_get_balance($sessionId, $sessionType, $openid, $openkey, $pf, $appid, $pfkey, $ts)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'appid' => $appid,
-            'ts' => $ts,
-            'pf' => $pf,
-            'pfkey' => $pfkey,
-            'zoneid' => 1, // 多平台版本,在腾讯没有设置多分区信息
-//            'userip' => $userip, // (可选) 用户的外网IP
-//        'accounttype' => $accounttype, // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
-//            'format' => "json",    // (可选)json、jsonp_$func。 默认json。如果
-        );
-        // 这个需要在cookie里面传一些参数
-        $cookie = self::ymsdk_makeCookie($sessionId, $sessionType, "/mpay/get_balance_m");
-        return $this->ysdk_Api('/mpay/get_balance_m', $params, $cookie, "get");  // ysdk在这里比msdk多加了个/v3/r
-    }
-
-    /**
-     * 扣除游戏币接口
-     * @param type $sessionId
-     * @param type $sessionType
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $appid
-     * @param type $pfkey
-     * @param type $ts
-     * @param int $amt 扣游戏币数量。
-     * @param string $billno 订单号,业务自定义,业务需要确保全局的唯一性;相同的订单号不会重复扣款。长度不超过63字节,数字和字符不限,不能包含特殊字符如&= | % ^ + 等即可
-     * @param string $payitem 道具名称。
-     * @param string $appremark 备注。会写到账户流水。
-     * @return V3Return
-     */
-    function ysdk_pay($sessionId, $sessionType, $openid, $openkey, $pf, $appid, $pfkey, $ts, $amt, $billno, $payitem, $appremark)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'appid' => $appid,
-            'ts' => $ts,
-            'pf' => $pf,
-            'pfkey' => $pfkey,
-            'zoneid' => 1,
-            'amt' => $amt,
-            'billno' => $billno, // 预扣流水号(业务自己定义,业务需要确保全局唯一性;
-            // 相同的订单号不会重复扣款,长度不超过63个字节,数字字符不限,不能包含特殊字符&|=%^+等即可)
-            'payitem' => $payitem, // (可选)道具名称
-//            'userip' => $userip, // (可选) 用户的外网IP
-//        'accounttype' => $accounttype, // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
-//            'format' => "json",    // (可选)json、jsonp_$func。 默认json。如果
-            'appremark' => $appremark  // (可选)备注。会写到账户流水。
-        );
-        // 这个需要在cookie里面传一些参数
-        $cookie = self::ymsdk_makeCookie($sessionId, $sessionType, "/mpay/pay_m");
-        return $this->ysdk_Api('/mpay/pay_m', $params, $cookie, "get");  // ysdk在这里比msdk多加了个/v3/r
-    }
-
-//
-//<editor-fold defaultstate="collapsed" desc="未启用">
-//    /**
-//     * 赠送游戏币接口,应用在后台自助申请赠送游戏币的营销活动,获取到活动号和礼包ID后
-//     * 调用本接口赠送。赠送的游戏币不参与结算分成。
-//     * @param str $platform 1 微信 2 手Q
-//     * @param str $openid
-//     * @param str $openkey
-//     * @param str $pf
-//     * @param str $appid
-//     * @param str $pfkey
-//     * @param int $ts
-//     * @param str $zoneid 分区Id
-//     * @param str $discountid  赠送营销活动ID。(营销平台申请)
-//     * @param type $giftid  礼品ID。(营销平台申请)
-//     * @param type $presenttimes 赠送礼品的次数。如果配置的礼包ID对应1个游戏币,那么本字段表示要赠送游戏币的个数。
-//     * @param type $userip  (可选)用户的外网IP
-//     * @return V3Return
-//     */
-//    function ysdks_present($platform, $openid, $openkey, $pf, $appid, $pfkey, $ts, $zoneid, $discountid, $giftid, $presenttimes) {
-//        $params = array(
-//            'openid' => $openid,
-//            'openkey' => $openkey,
-//            'pf' => $pf,
-//            'pfkey' => $pfkey,
-//            'appid' => $appid,
-//            'zoneid' => $zoneid,
-//            'ts' => $ts,
-//            'discountid' => $discountid,
-//            'giftid' => $giftid,
-//            'presenttimes' => $presenttimes,
-////            'userip' => $userip, // (可选) 用户的外网IP
-////            'format' => "json"    // (可选)json、jsonp_$func。 默认json。如果
-//        );
-//        // 这个需要在cookie里面传一些参数
-//        $cookie = self::m_makeCookie($platform);
-//        $cookie['org_loc'] = "/mpay/present_m";
-//
-//        return $this->m_Api('/mpay/present_m', $params, $cookie, 'get');
-//    }
-//    /**
-//     * 取消支付接口
-//     * @param type $openid
-//     * @param type $openkey
-//     * @param type $pf
-//     * @param type $paytoken
-//     * @param type $appid
-//     * @param type $pfkey
-//     * @param type $ts
-//     * @param type $amt  扣游戏币数量
-//     * @param type $billno 预扣流水号
-//     * @param type $userip (可选)用户的外网ip
-//     * @param type $accounttype (可选)账户类型,基础货币(common)安全货币(security),不填默认common
-//     * @return V3Return
-//     */
-//    function ysdk_cancel_pay($platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid, $amt, $billno) {
-//        $params = array(
-//            'openid' => $openid,
-//            'openkey' => $openkey,
-//            'pay_token' => $paytoken,
-//            'appid' => $appid,
-//            'ts' => $ts,
-//            'pf' => $pf,
-//            'pfkey' => $pfkey,
-//            'zoneid' => $zoneid,
-//            'amt' => $amt,
-//            'billno' => $billno,
-////            'userip' => $userip, // (可选) 用户的外网IP
-////            'accounttype' => $accounttype  // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
-////            'format' => "json"    // (可选)json、jsonp_$func。 默认json。如果
-//        );
-//        // 这个需要在cookie里面传一些参数
-//        $cookie = self::m_makeCookie($platform);
-//        $cookie['org_loc'] = "/mpay/cancel_pay_m";
-//        return $this->m_Api('/mpay/cancel_pay_m', $params, $cookie, 'get');
-//    }
-//</editor-fold>
-//
-    /**
-     * 生成ysdk所需cookie
-     * @param type $sessionId
-     * @param type $sessionType
-     * @param type $org_loc
-     * @return string
-     */
-    static function ymsdk_makeCookie($sessionId, $sessionType, $org_loc)
-    {
-        $cookie = array();
-        $cookie['session_id'] = $sessionId;
-        $cookie['session_type'] = $sessionType;
-        $cookie['org_loc'] = $org_loc;
-        return $cookie;
-    }
-
-    //</editor-fold>
-//
-//<editor-fold  desc="================支付类API=================">
-
-    /**
-     * ================支付类API=================
-     * 主要使用场景:应用中需要实现道具购买/寄售逻辑时。
-     */
-
-    /**
-     * 购买付费道具[Q点直购]
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $pfkey
-     * @param type $ts 时间戳
-     * @param type $itemID 道具id
-     * @param type $itemPrice 道具单价
-     * @param type $itemName 道具名称
-     * @param type $itemDes 道具描述
-     * @param type $goodsurl 道具图url
-     * @return type
-     */
-    function pay_buy_goods($openid, $openkey, $pf, $pfkey, $ts, $itemID, #
-            $itemPrice, $itemName, $itemDes, $goodsurl, $zoneid = 0
-    )
-    {
-        $cee_extend = getenv("CEE_DOMAINNAME") . '*' . getenv("CEE_VERSIONID") . '*' . getenv("CEE_WSNAME");
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'pfkey' => $pfkey,
-            'ts' => $ts,
-            'payitem' => $itemID . '*' . $itemPrice . '*1',
-            'appmode' => "1",
-            'max_num' => "1",
-            'goodsmeta' => $itemName . '*' . $itemDes,
-            'goodsurl' => $goodsurl,
-            'zoneid' => $zoneid,
-            'cee_extend' => $cee_extend,
-        );
-//        echo json_encode($params);
-        return $this->sdk->api('/v3/pay/buy_goods', $params, array(), 'post', 'https');
-    }
-
-    /**
-     * 确认支付
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $ts
-     * @param type $payitem
-     * @param type $token
-     * @param type $billno
-     * @param type $amt
-     * @return type
-     */
-    function pay_confirm_delivery($openid, $openkey, $pf, $ts, $payitem, $token, $billno, $amt
-    )
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'ts' => $ts,
-            'payitem' => $payitem,
-            'token_id' => $token,
-            'billno' => $billno,
-            'version' => "v3",
-            'zoneid' => "0",
-            'providetype' => "0",
-            'provide_errno' => "0",
-            'provide_errmsg' => "OK",
-            'amt' => $amt,
-            'payamt_coins' => "0",
-            'pubacct_payamt_coins' => "0",
-        );
-        return $this->sdk->api('/v3/pay/confirm_delivery', $params, array(), array(), 'post', 'https');
-    }
-
-//</editor-fold>
-//
-//
-//<editor-fold defaultstate="collapsed" desc="================营销类API=================">
-
-    /**
-     * ================营销类API=================
-     * 主要使用场景:支付接入的时候必须要实现黄钻特权体系。
-     */
-
-    /**
-     *    获得每日礼包(含新手礼包)(点击每日/新手礼包时,调用本接口获得token)
-     *   或者开通包月礼包(开通业务或续费业务,用户点击活动入口时,调用此接口获取token)
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $pfkey
-     * @param type $tokentype
-     *             token的类型。
-     *                     1:表示该token为每日礼包赠送、开通包月送礼包营销活动中的赠送道具/物品的token。
-     *                     2:表示该token为任务买卖市场营销活动中的领取奖励的token。
-     * @param type $discountid  营销活动的actorID或者任务集市中的“商品ID”
-     * @param type $ts
-     * @return type
-     */
-    function pay_gift_get_token($openid, $openkey, $pf, $pfkey, $tokentype, $discountid, $ts, $zoneid = 0
-    )
-    {
-        $cee_extend = getenv("CEE_DOMAINNAME") . '*' . getenv("CEE_VERSIONID") . '*' . getenv("CEE_WSNAME");
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'pfkey' => $pfkey,
-            'tokentype' => $tokentype,
-            'discountid' => $discountid,
-            'ts' => $ts,
-            'version' => "v3",
-            'zoneid' => $zoneid,
-            'cee_extend' => $cee_extend
-        );
-        return $this->sdk->api('/v3/pay/get_token', $params, array(), 'post', 'https');
-    }
-
-//</editor-fold>
-//
-//<editor-fold defaultstate="collapsed"  desc="================公会Q群=====================">
-
-    /**
-     *  查询玩家已加入的公会QQ群列表
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @return type
-     */
-    function is_qqgroupmember($openid, $openkey, $pf)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf
-        );
-        return $this->sdk->api('/v3/qqgroup/is_group_member', $params, 'post');
-    }
-
-    /**
-     *  查询公会QQ群中安装了本应用的成员列表
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $group_openid
-     * @param type $guildId
-     * @param type $page  >=1
-     * @return type
-     */
-    function get_app_qqgroupmembers($openid, $openkey, $pf, $group_openid, $guildId, $page = 1
-    )
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'group_openid' => $group_openid,
-            'union_id' => $guildId,
-            'page' => $page,
-            'zone' => 0
-        );
-        return $this->sdk->api('/v3/qqgroup/get_app_groupmembers', $params, array(), 'post');
-    }
-
-    /**
-     *  解绑公会QQ群
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $group_openid
-     * @param type $guildId
-     * @return type
-     */
-    function unbind_qqgroup($openid, $openkey, $pf, $group_openid, $guildId
-    )
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'group_openid' => $group_openid,
-            'union_id' => $guildId
-        );
-        return $this->sdk->api('/v3/qqgroup/unbind_qqgroup', $params, array(), 'post');
-    }
-
-//</editor-fold>
-//<editor-fold defaultstate="collapsed" desc="================关系链类API=================">
-
-    /**
-     * ================关系链类API=================
-     * 主要使用场景:应用中需要用户之间进行互动时。
-     */
-
-    /**
-     * 获取安装了应用的平台好友
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @return type
-     */
-    function relation_get_app_friends($openid, $openkey, $pf)
-    {
-        $params = $this->getParams($openid, $openkey, $pf);
-        return $this->sdk->api('/v3/relation/get_app_friends', $params, array(), 'post');
-    }
-
-    /**
-     * 验证是否是好友
-     * @param type $openid
-     * @param type $openkey
-     * @param type $pf
-     * @param type $fopenid
-     * @return type
-     */
-    function relation_is_friend($openid, $openkey, $pf, $fopenid)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'fopenid' => $fopenid,
-        );
-        return $this->sdk->api('/v3/relation/is_friend', $params, array(), 'post');
-    }
-
-//</editor-fold>
-//<editor-fold defaultstate="collapsed" desc="================应用推广类API===============">
-
-    /**
-     * ================应用推广类API=================
-     * 主要使用场景:应用中需要实现新用户/活跃用户增长时。
-     */
-    function spread_verify_invkey($openid, $openkey, $pf, $invkey, $itime, $iopenid)
-    {
-        $params = array(
-            'openid' => $openid,
-            'openkey' => $openkey,
-            'pf' => $pf,
-            'invkey' => $invkey,
-            'itime' => $itime,
-            'iopenid' => $iopenid,
-        );
-        return $this->sdk->api('/v3/spread/verify_invkey', $params, array(), 'post');
-    }
-
-//</editor-fold>
-//
-//
-}
-
-////</editor-fold>

+ 0 - 51
Gameserver/Amfphp/util/OpenAPI/Cpay_for_CEE_V2.php

@@ -1,51 +0,0 @@
-<?php
-
-/**
- * PHP SDK for Cpay OpenAPI--only for APPs which are hosting on CEE_V2.
- *
- * @version 3.0.6
- * @author open.qq.com
- * @copyright © 2012, Tencent Corporation. All rights reserved.
- * @ History:
- * 				 3.0.6 | looklu| 2012-12-05 17:22:51 | Support POST mode to send the request.
- */
-require_once __DIR__ . '/OpenApiV3.php';
-
-/**
- * 支付SDK,仅适用于部署在CEE_V2上的应用,依赖于PHP_SDK_V3.0.2及以上版本。
- * @version 3.0.0
- */
-class CloudCeePay extends OpenApiV3
-{
-
-    /**
-     * 构造函数
-     * @param string $server_ip
-     *                       测试环境为:1.254.254.22
-     *      				 正式环境为:openapi.tencentyun.com
-     * @param int $appid 应用的ID
-     * @param string $appkey 应用的密钥
-     */
-    public function __construct($server_ip, $appid, $appkey)
-    {
-        parent::__construct($appid, $appkey);
-        parent::setServerName($server_ip);
-    }
-
-    /**
-     * 执行支付API调用,返回结果数组
-     *
-     * @param array $params 调用支付API时带的参数 参考http://wiki.open.qq.com/wiki/v3/pay/buy_goods
-     * @return array 结果数组
-     */
-    public function buyGoods($params)
-    {
-        $cee_extend = getenv("CEE_DOMAINNAME") . '*' . getenv("CEE_VERSIONID") . '*' . getenv("CEE_WSNAME");
-        $params["cee_extend"] = $cee_extend;
-        $ret = parent::api('/v3/pay/buy_goods', $params, 'post', 'https');
-        return $ret;
-    }
-
-}
-
-// end of script

+ 0 - 317
Gameserver/Amfphp/util/OpenAPI/OpenApiV3.php

@@ -1,317 +0,0 @@
-<?php
-
-/**
- * PHP SDK for  OpenAPI V3
- *
- * @version 3.0.5
- * @author open.qq.com
- * @copyright © 2012, Tencent Corporation. All rights reserved.
- * @ History:
- * 				 3.0.6 | coolinchen| 2013-02-28  11:20:12| modify response code
- * 				 3.0.5 | coolinchen| 2012-10-08 11:20:12 | support printing request string and result
- * 				 3.0.4 | coolinchen| 2012-09-07 10:20:12 | support POST request in  "multipart/form-data" format
- *               3.0.3 | nemozhang | 2012-08-28 16:40:20 | support cpay callback sig verifictaion
- *               3.0.2 | sparkeli  | 2012-03-06 17:58:20 | add statistic fuction which can report API's access time and number to background server
- *               3.0.1 | nemozhang | 2012-02-14 17:58:20 | resolve a bug: at line 108, change  'post' to  $method
- *               3.0.0 | nemozhang | 2011-12-12 11:11:11 | initialization
- */
-require_once dirname(__FILE__) . '/lib/SnsNetwork.php';
-require_once dirname(__FILE__) . '/lib/SnsSigCheck.php';
-require_once dirname(__FILE__) . '/lib/SnsStat.php';
-
-/**
- * 如果您的 PHP 没有安装 cURL 扩展,请先安装
- */
-if (!function_exists('curl_init')) {
-    throw new Exception('OpenAPI needs the cURL PHP extension.');
-}
-
-/**
- * 如果您的 PHP 不支持JSON,请升级到 PHP 5.2.x 以上版本
- */
-if (!function_exists('json_decode')) {
-    throw new Exception('OpenAPI needs the JSON PHP extension.');
-}
-
-/**
- * 错误码定义
- */
-define('OPENAPI_ERROR_REQUIRED_PARAMETER_EMPTY', 1801); // 参数为空
-define('OPENAPI_ERROR_REQUIRED_PARAMETER_INVALID', 1802); // 参数格式错误
-define('OPENAPI_ERROR_RESPONSE_DATA_INVALID', 1803); // 返回包格式错误
-define('OPENAPI_ERROR_CURL', 1900); // 网络错误, 偏移量1900, 详见 http://curl.haxx.se/libcurl/c/libcurl-errors.html
-
-/**
- * 提供访问腾讯开放平台 OpenApiV3 的接口
- */
-class OpenApiV3
-{
-    private $appid = 0;
-    private $appkey = '';
-    private $server_name = '';
-    private $format = 'json';
-    private $stat_url = "apistat.tencentyun.com";
-    private $is_stat = true;
-
-    /**
-     * 构造函数
-     *
-     * @param int $appid 应用的ID
-     * @param string $appkey 应用的密钥
-     */
-    public function __construct($appid, $appkey)
-    {
-        $this->appid = $appid;
-        $this->appkey = $appkey;
-    }
-
-    public function setServerName($server_name)
-    {
-        $this->server_name = $server_name;
-    }
-
-    public function setStatUrl($stat_url)
-    {
-        $this->stat_url = $stat_url;
-    }
-
-    public function setIsStat($is_stat)
-    {
-        $this->is_stat = $is_stat;
-    }
-
-    /**
-     * 执行API调用,返回结果数组
-     *
-     * @param string $script_name 调用的API方法,比如/v3/user/get_info,参考 http://wiki.open.qq.com/wiki/API_V3.0%E6%96%87%E6%A1%A3
-     * @param array $params 调用API时带的参数
-     * @param string $method 请求方法 post / get
-     * @param string $protocol 协议类型 http / https
-     * @return array 结果数组
-     */
-    public function api($script_name, $params, $method = 'post', $protocol = 'http')
-    {
-        // 检查 openid 是否为空
-        if (!isset($params['openid']) || empty($params['openid'])) {
-            return array(
-                'ret' => OPENAPI_ERROR_REQUIRED_PARAMETER_EMPTY,
-                'msg' => 'openid is empty');
-        }
-        // 检查 openkey 是否为空
-        if (!isset($params['openkey']) || empty($params['openkey'])) {
-            return array(
-                'ret' => OPENAPI_ERROR_REQUIRED_PARAMETER_EMPTY,
-                'msg' => 'openkey is empty');
-        }
-        // 检查 openid 是否合法
-        if (!self::isOpenId($params['openid'])) {
-            return array(
-                'ret' => OPENAPI_ERROR_REQUIRED_PARAMETER_INVALID,
-                'msg' => 'openid is invalid');
-        }
-
-        // 无需传sig, 会自动生成
-        unset($params['sig']);
-
-        // 添加一些参数
-        $params['appid'] = $this->appid;
-        $params['format'] = $this->format;
-
-        // 生成签名
-        $secret = $this->appkey . '&';
-        $sig = SnsSigCheck::makeSig($method, $script_name, $params, $secret);
-        $params['sig'] = $sig;
-
-        $url = $protocol . '://' . $this->server_name . $script_name;
-        $cookie = array();
-
-        //记录接口调用开始时间
-        $start_time = SnsStat::getTime();
-
-        //通过调用以下方法,可以打印出最终发送到openapi服务器的请求参数以及url,默认为注释
-        //self::printRequest($url,$params,$method);
-        // 发起请求
-        $ret = SnsNetwork::makeRequest($url, $params, $cookie, $method, $protocol);
-
-        if (false === $ret['result']) {
-            $result_array = array(
-                'ret' => OPENAPI_ERROR_CURL + $ret['errno'],
-                'msg' => $ret['msg'],
-            );
-        }
-
-        $result_array = json_decode($ret['msg'], true);
-
-        // 远程返回的不是 json 格式, 说明返回包有问题
-        if (is_null($result_array)) {
-            $result_array = array(
-                'ret' => OPENAPI_ERROR_RESPONSE_DATA_INVALID,
-                'msg' => $ret['msg']
-            );
-        }
-
-        // 统计上报
-        if ($this->is_stat) {
-            $stat_params = array(
-                'appid' => $this->appid,
-                'pf' => $params['pf'],
-                'rc' => $result_array['ret'],
-                'svr_name' => $this->server_name,
-                'interface' => $script_name,
-                'protocol' => $protocol,
-                'method' => $method,
-            );
-            SnsStat::statReport($this->stat_url, $start_time, $stat_params);
-        }
-
-        //通过调用以下方法,可以打印出调用openapi请求的返回码以及错误信息,默认注释
-        //self::printRespond($result_array);
-
-        return json_decode(json_encode($result_array));
-    }
-
-    /**
-     * 执行上传文件API调用,返回结果数组
-     *
-     * @param string $script_name 调用的API方法,比如/v3/user/get_info, 参考 http://wiki.open.qq.com/wiki/API_V3.0%E6%96%87%E6%A1%A3
-     * @param array $params 调用API时带的参数,必须是array
-     * @param array $array_files 调用API时带的文件,必须是array,key为openapi接口的参数,value为"@"加上文件全路径的字符串, 举例 array('pic'=>'@/home/xxx/hello.jpg',...);
-     * @param string $protocol 协议类型 http / https
-     * @return array 结果数组
-     */
-    public function apiUploadFile($script_name, $params, $array_files, $protocol = 'http')
-    {
-        // 检查 openid 是否为空
-        if (!isset($params['openid']) || empty($params['openid'])) {
-            return array(
-                'ret' => OPENAPI_ERROR_REQUIRED_PARAMETER_EMPTY,
-                'msg' => 'openid is empty');
-        }
-        // 检查 openkey 是否为空
-        if (!isset($params['openkey']) || empty($params['openkey'])) {
-            return array(
-                'ret' => OPENAPI_ERROR_REQUIRED_PARAMETER_EMPTY,
-                'msg' => 'openkey is empty');
-        }
-        // 检查 openid 是否合法
-        if (!self::isOpenId($params['openid'])) {
-            return array(
-                'ret' => OPENAPI_ERROR_REQUIRED_PARAMETER_INVALID,
-                'msg' => 'openid is invalid');
-        }
-
-        // 无需传sig, 会自动生成
-        unset($params['sig']);
-
-        // 添加一些参数
-        $params['appid'] = $this->appid;
-        $params['format'] = $this->format;
-
-        // 生成签名
-        $secret = $this->appkey . '&';
-        $sig = SnsSigCheck::makeSig('post', $script_name, $params, $secret);
-        $params['sig'] = $sig;
-
-        //上传文件,图片参数不能参与签名
-        foreach ($array_files as $k => $v) {
-            $params[$k] = $v;
-        }
-
-        $url = $protocol . '://' . $this->server_name . $script_name;
-        $cookie = array();
-
-        //记录接口调用开始时间
-        $start_time = SnsStat::getTime();
-
-        //通过调用以下方法,可以打印出最终发送到openapi服务器的请求参数以及url,默认注释
-        //self::printRequest($url, $params,'post');
-        // 发起请求
-        $ret = SnsNetwork::makeRequestWithFile($url, $params, $cookie, $protocol);
-
-        if (false === $ret['result']) {
-            $result_array = array(
-                'ret' => OPENAPI_ERROR_CURL + $ret['errno'],
-                'msg' => $ret['msg'],
-            );
-        }
-
-        $result_array = json_decode($ret['msg'], true);
-
-        // 远程返回的不是 json 格式, 说明返回包有问题
-        if (is_null($result_array)) {
-            $result_array = array(
-                'ret' => OPENAPI_ERROR_RESPONSE_DATA_INVALID,
-                'msg' => $ret['msg']
-            );
-        }
-
-        // 统计上报
-        if ($this->is_stat) {
-            $stat_params = array(
-                'appid' => $this->appid,
-                'pf' => $params['pf'],
-                'rc' => $result_array['ret'],
-                'svr_name' => $this->server_name,
-                'interface' => $script_name,
-                'protocol' => $protocol,
-                'method' => 'post',
-            );
-            SnsStat::statReport($this->stat_url, $start_time, $stat_params);
-        }
-
-        //通过调用以下方法,可以打印出调用openapi请求的返回码以及错误信息,默认注释
-        //self::printRespond($result_array);
-
-        return $result_array;
-    }
-
-    /**
-     * 打印出请求串的内容,当API中的这个函数的注释放开将会被调用。
-     *
-     * @param string $url 请求串内容
-     * @param array $params 请求串的参数,必须是array
-     * @param string $method 请求的方法 get / post
-     */
-    private function printRequest($url, $params, $method)
-    {
-        $query_string = SnsNetwork::makeQueryString($params);
-        if ($method == 'get') {
-            $url = $url . "?" . $query_string;
-        }
-        echo "\n============= request info ================\n\n";
-        print_r("method : " . $method . "\n");
-        print_r("url    : " . $url . "\n");
-        if ($method == 'post') {
-            print_r("query_string : " . $query_string . "\n");
-        }
-        echo "\n";
-        print_r("params : " . print_r($params, true) . "\n");
-        echo "\n";
-    }
-
-    /**
-     * 打印出返回结果的内容,当API中的这个函数的注释放开将会被调用。
-     *
-     * @param array $array 待打印的array
-     */
-    private function printRespond($array)
-    {
-        echo "\n============= respond info ================\n\n";
-        print_r($array);
-        echo "\n";
-    }
-
-    /**
-     * 检查 openid 的格式
-     *
-     * @param string $openid openid
-     * @return bool (true|false)
-     */
-    private static function isOpenId($openid)
-    {
-        return (0 == preg_match('/^[0-9a-fA-F]{32}$/', $openid)) ? false : true;
-    }
-
-}
-
-// end of script

+ 0 - 58
Gameserver/Amfphp/util/OpenAPI/README.txt

@@ -1,58 +0,0 @@
-
-====================当前版本信息====================
-当前版本:V3.0.8
-
-发布日期:2013-05-03
-
-文件大小:13 K 
-
-
-====================修改历史====================
-V3.0.8  2013-05-03,修复method为GET时导致签名验证不通过的bug。
-
-V3.0.7  2013-02-28,重新规范了SDK的返回码,避免和API本身返回码重合。
-
-V3.0.6  2012-12-05,支持POST方式发送请求。
-                   
-V3.0.5  2012-10-08,为方便开发者自助联调,新版本中支持打印请求串和结果。
-                   注:打印功能默认已注释,需要去掉OpenApiV3.php的接口中的相关注释才能开启打印功能。
-
-V3.0.4  2012-09-07,支持部署在CEE_V2上的应用调用支付类OpenAPI。
-                   支持以multipart/form-data格式发post请求的接口,例如上传文件类OpenAPI。
-
-V3.0.3  2012-08-28,支持发货回调的签名验证,并修正了当参数中含有“~”符号时会签名验证会失败的bug。
-
-V3.0.2  2012-03-06,添加接口统计上报功能,开发者使用本SDK以后,腾讯后台服务器可以统计OpenAPI各接口的访问延时、访问量等信息,用于后续的信息挖掘和OpenAPI优化。
-
-V3.0.1  2012-02-14,修复了一个小bug,在OpenApiV3.php文件的第108行,将参数值'post'改为变量$method. 
-
-V3.0.0  2011-12-14, 腾讯开放平台V3版OpenAPI的PHP SDK第一版发布,3.0表示OpenAPI版本,后一位0表示SDK版本。
-        本SDK基于V3版OpenAPI,适用于腾讯开放平台上所有应用接入时使用:
-        -V3版OpenAPI是老OpenAPI的升级版,支持全平台统一接入,即对于同一功能(例如获取用户信息),第三方应用不再需要根据不同的平台调用不同的接口。
-        -V3版OpenAPI采用新的接入协议,请求中必须包含签名值,更加安全。
-        -V3版OpenAPI在参数和返回值上尽量和老版本OpenAPI接口兼容,开发者如果想升级到新版本OpenAPI,代码改造工作量较小。
-        -开发者可以自由选择是否升级到OpenAPI V3.0。由于OpenAPI V3.0的上述优点,以及后续新开放的接口都将采用OpenAPI V3.0的协议,我们推荐开发者进行升级。与此同时,老版本的OpenAPI将继续提供技术支持直至2012年06月30日。
-        
-
-
-====================文件结构信息====================
-lib文件夹:        
-	SnsNetwork.php:发送HTTP网络请求类
-    SnsSigCheck.php:请求参数签名生成类
-	SnsStat.php: 统计上报类
-OpenApiV3.php:OpenAPI访问类
-	
-Test_OpenApiV3.php: 示例代码
-Test_UploadFile.php:上传文件类接口示例代码。适用于所有需要发送multipart/form-data格式的post请求的OpenAPI。
-
-
-本SDk示例代码中并没有列出所有的OpenAPI,腾讯开放平台V3版OpenAPI正在不断增加中,详见API列表:
-http://wiki.open.qq.com/wiki/API3.0%E6%96%87%E6%A1%A3
-
-
-====================联系我们====================
-腾讯开放平台官网:http://open.qq.com/
-您可以访问我们的资料库获得详尽的技术文档:http://wiki.open.qq.com/wiki/%E9%A6%96%E9%A1%B5
-您可以使用联调工具集来进行OpenAPI的联调和sig验证:http://open.qq.com/tools
-此外,你也可以通过企业QQ(号码:800013811;直接在QQ的“查找联系人”中输入号码即可开始对话)咨询。
-

+ 0 - 58
Gameserver/Amfphp/util/OpenAPI/Test_OpenApiV3.php

@@ -1,58 +0,0 @@
-<?php
-
-/**
- * OpenAPI V3 SDK 示例代码,适用于大部分OpenAPI。如果是上传文件类OpenAPI,请参考本SDK包中的“Test_UploadFile.php”文件中的示例代码。
- *
- * @version 3.0.4
- * @author open.qq.com
- * @copyright © 2012, Tencent Corporation. All rights reserved.
- * @History:
- *               3.0.4 | coolinchen | 2012-09-07 10:20:12 | initialization
- */
-require_once __DIR__ . '/OpenApiV3.php';
-
-// 应用基本信息
-$appid = 100657839;
-$appkey = 'b96b85196a04ff2ef08707f43979db15';
-
-// OpenAPI的服务器IP
-// 最新的API服务器地址请参考wiki文档: http://wiki.open.qq.com/wiki/API3.0%E6%96%87%E6%A1%A3
-$server_name = '119.147.19.43';
-
-
-// 用户的OpenID/OpenKey
-$openid = 'E098C1E975A2459E534B48FB3224CFB6';
-$openkey = '05219DB6D7C04CA0B3F01A51D32635E3';
-
-// 所要访问的平台, pf的其他取值参考wiki文档: http://wiki.open.qq.com/wiki/API3.0%E6%96%87%E6%A1%A3
-$pf = 'qzone';
-
-
-$sdk = new OpenApiV3($appid, $appkey);
-$sdk->setServerName($server_name);
-
-$ret = get_user_info($sdk, $openid, $openkey, $pf);
-print_r("===========================\n");
-print_r($ret);
-
-/**
- * 获取好友资料
- *
- * @param object $sdk OpenApiV3 Object
- * @param string $openid openid
- * @param string $openkey openkey
- * @param string $pf 平台
- * @return array 好友资料数组
- */
-function get_user_info($sdk, $openid, $openkey, $pf)
-{
-    $params = array(
-        'openid' => $openid,
-        'openkey' => $openkey,
-        'pf' => $pf,
-    );
-    $script_name = '/v3/user/get_info';
-    return $sdk->api($script_name, $params, 'post');
-}
-
-// end of script

+ 0 - 63
Gameserver/Amfphp/util/OpenAPI/Test_UploadFile.php

@@ -1,63 +0,0 @@
-<?php
-
-/**
- * OpenAPI V3 SDK 上传文件类接口示例代码。适用于所有需要发送multipart/form-data格式的post请求的OpenAPI。
-
- *
- * @version 3.0.4
- * @author open.qq.com
- * @copyright © 2012, Tencent Corporation. All rights reserved.
- * @History:
- *               3.0.4 | coolinchen | 2012-09-07 10:20:12 | initialization
- */
-require_once __DIR__ . '/OpenApiV3.php';
-
-// 应用基本信息
-$appid = 100657839;
-$appkey = 'b96b85196a04ff2ef08707f43979db15';
-
-// OpenAPI的服务器IP
-// 最新的API服务器地址请参考wiki文档: http://wiki.open.qq.com/wiki/API3.0%E6%96%87%E6%A1%A3
-$server_name = '119.147.19.43';
-
-
-// 用户的OpenID/OpenKey
-$openid = 'E098C1E975A2459E534B48FB3224CFB6';
-$openkey = '05219DB6D7C04CA0B3F01A51D32635E3';
-
-// 所要访问的平台, pf的其他取值参考wiki文档: http://wiki.open.qq.com/wiki/API3.0%E6%96%87%E6%A1%A3
-$pf = 'tapp';
-
-
-$sdk = new OpenApiV3($appid, $appkey);
-$sdk->setServerName($server_name);
-
-$ret = add_weibo_pic($sdk, $openid, $openkey, $pf);
-print_r("===========================\n");
-print_r($ret);
-
-/**
- * 发表带图片的微博
- *
- * @param object $sdk OpenApiV3 Object
- * @param string $openid openid
- * @param string $openkey openkey
- * @param string $pf 平台
- * @return array 微博接口调用结果
- */
-function add_weibo_pic($sdk, $openid, $openkey, $pf)
-{
-    $params = array(
-        'openid' => $openid,
-        'openkey' => $openkey,
-        'pf' => $pf,
-        'content' => "图片描述。。@xxx",
-    );
-
-    $array_files = array();
-    $array_files['pic'] = '@/data/home/coolinchen/photo/test.jpg';
-    $script_name = '/v3/t/add_pic_t';
-    return $sdk->apiUploadFile($script_name, $params, $array_files);
-}
-
-// end of script

+ 0 - 177
Gameserver/Amfphp/util/OpenAPI/lib/SnsNetwork.php

@@ -1,177 +0,0 @@
-<?php
-
-/**
- * 发送HTTP网络请求类
- *
- * @version 3.0.0
- * @author open.qq.com
- * @copyright © 2012, Tencent Corporation. All rights reserved.
- * @ History:
- *				 3.0.1 | coolinchen | 2012-09-07 10:30:00 | add funtion makeRequestWithFile
- *               3.0.0 | nemozhang | 2011-03-09 15:33:04 | initialization
- */
-
-
-class SnsNetwork
-{
-    /**
-     * 执行一个 HTTP 请求
-     *
-     * @param string 	$url 	执行请求的URL
-     * @param mixed	$params 表单参数
-     * 							可以是array, 也可以是经过url编码之后的string
-     * @param mixed	$cookie cookie参数
-     * 							可以是array, 也可以是经过拼接的string
-     * @param string	$method 请求方法 post / get
-     * @param string	$protocol http协议类型 http / https
-     * @return array 结果数组
-     */
-    public static function makeRequest($url, $params, $cookie, $method='post', $protocol='http')
-    {
-        $query_string = self::makeQueryString($params);
-        $cookie_string = self::makeCookieString($cookie);
-
-        $ch = curl_init();
-
-        if ('GET' == strtoupper($method)) {
-            curl_setopt($ch, CURLOPT_URL, "$url?$query_string");
-        } else {
-            curl_setopt($ch, CURLOPT_URL, $url);
-            curl_setopt($ch, CURLOPT_POST, 1);
-            curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string);
-        }
-
-        curl_setopt($ch, CURLOPT_HEADER, false);
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
-
-            // disable 100-continue
-            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
-
-        if (!empty($cookie_string)) {
-            curl_setopt($ch, CURLOPT_COOKIE, $cookie_string);
-        }
-
-        if ('https' == $protocol) {
-            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
-            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
-        }
-
-
-        $ret = curl_exec($ch);
-        $err = curl_error($ch);
-
-        if (false === $ret || !empty($err)) {
-            $errno = curl_errno($ch);
-            $info = curl_getinfo($ch);
-            curl_close($ch);
-
-            return array(
-                'result' => false,
-                'errno' => $errno,
-                'msg' => $err,
-                'info' => $info,
-            );
-        }
-
-           curl_close($ch);
-
-        return array(
-            'result' => true,
-            'msg' => $ret,
-        );
-
-
-    }
-
-
-    /**
-     * 执行一个 HTTP 请求,以post方式,multipart/form-data的编码类型上传文件
-     *
-     * @param string 	$url 	执行请求的URL
-     * @param mixed	$params 表单参数,必须是array, 对于文件表单项 直接传递文件的全路径, 并在前面增加'@'符号
-     *                          举例: array('upload_file'=>'@/home/xxx/hello.jpg', 'field1'=>'value1');
-     * @param mixed	$cookie cookie参数
-     * 							可以是array, 也可以是经过拼接的string
-     * @param string	$protocol http协议类型 http / https
-     * @return array 结果数组
-     */
-    public static function makeRequestWithFile($url, $params, $cookie, $protocol='http')
-    {
-        $cookie_string = self::makeCookieString($cookie);
-
-        $ch = curl_init();
-
-        curl_setopt($ch, CURLOPT_URL, $url);
-        curl_setopt($ch, CURLOPT_POST, 1);
-        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
-        curl_setopt($ch, CURLOPT_HEADER, false);
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
-
-        // disable 100-continue
-        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
-
-        if (!empty($cookie_string)) {
-            curl_setopt($ch, CURLOPT_COOKIE, $cookie_string);
-        }
-
-        if ('https' == $protocol) {
-            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
-            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
-        }
-
-        $ret = curl_exec($ch);
-        $err = curl_error($ch);
-
-        if (false === $ret || !empty($err)) {
-            $errno = curl_errno($ch);
-            $info = curl_getinfo($ch);
-            curl_close($ch);
-
-            return array(
-                'result' => false,
-                'errno' => $errno,
-                'msg' => $err,
-                'info' => $info,
-            );
-        }
-
-           curl_close($ch);
-
-        return array(
-            'result' => true,
-            'msg' => $ret,
-        );
-
-    }
-
-
-    public static function makeQueryString($params)
-    {
-        if (is_string($params))
-            return $params;
-
-        $query_string = array();
-        foreach ($params as $key => $value) {
-            array_push($query_string, rawurlencode($key) . '=' . rawurlencode($value));
-        }
-        $query_string = join('&', $query_string);
-        return $query_string;
-    }
-
-    public static function makeCookieString($params)
-    {
-        if (is_string($params))
-            return $params;
-
-        $cookie_string = array();
-        foreach ($params as $key => $value) {
-            array_push($cookie_string, $key . '=' . $value);
-        }
-        $cookie_string = join('; ', $cookie_string);
-        return $cookie_string;
-    }
-}
-
-// end of script

+ 0 - 105
Gameserver/Amfphp/util/OpenAPI/lib/SnsSigCheck.php

@@ -1,105 +0,0 @@
-<?php
-
-/**
- * 生成签名类
- *
- * @version 3.0.3
- * @author open.qq.com
- * @copyright © 2012, Tencent Corporation. All rights reserved.
- * @ History:
- *               3.0.3 | nemozhang | 2012-08-28 16:40:20 | support cpay callback sig verifictaion.
- *               3.0.2 | sparkeli | 2012-03-06 17:58:20 | add statistic fuction which can report API's access time and number to background server
- *               3.0.1 | nemozhang | 2012-02-14 17:58:20 | resolve a bug: at line 108, change  'post' to  $method
- *               3.0.0 | nemozhang | 2011-12-12 11:11:11 | initialization
- */
-
-/**
- * 生成签名类
- */
-class SnsSigCheck
-{
-    /**
-     * 生成签名
-     *
-     * @param string 	$method 请求方法 "get" or "post"
-     * @param string 	$url_path
-     * @param array 	$params 表单参数
-     * @param string 	$secret 密钥
-     */
-    public static function makeSig($method, $url_path, $params, $secret)
-    {
-        $mk = self::makeSource($method, $url_path, $params);
-        $my_sign = hash_hmac("sha1", $mk, strtr($secret, '-_', '+/'), true);
-        $my_sign = base64_encode($my_sign);
-
-        return $my_sign;
-    }
-
-    private static function makeSource($method, $url_path, $params)
-    {
-        $strs = strtoupper($method) . '&' . rawurlencode($url_path) . '&';
-
-        ksort($params);
-        $query_string = array();
-        foreach ($params as $key => $val) {
-            array_push($query_string, $key . '=' . $val);
-        }
-        $query_string = join('&', $query_string);
-
-        return $strs . str_replace('~', '%7E', rawurlencode($query_string));
-    }
-
-    /**
-     * 验证回调发货URL的签名 (注意和普通的OpenAPI签名算法不一样,详见@refer的说明)
-     *
-     * @param string 	$method 请求方法 "get" or "post"
-     * @param string 	$url_path
-     * @param array 	$params 腾讯调用发货回调URL携带的请求参数
-     * @param string 	$secret 密钥
-     * @param string 	$sig 腾讯调用发货回调URL时传递的签名
-     *
-     * @refer
-     *  http://wiki.open.qq.com/wiki/%E5%9B%9E%E8%B0%83%E5%8F%91%E8%B4%A7URL%E7%9A%84%E5%8D%8F%E8%AE%AE%E8%AF%B4%E6%98%8E_V3
-     */
-    public static function verifySig($method, $url_path, $params, $secret, $sig, &$sig_new)
-    {
-        unset($params['sig']);
-        if (isset($params['cee_extend'])) {
-            unset($params['cee_extend']);
-        }
-        // 先使用专用的编码规则对value编码
-        foreach ($params as $k => $v) {
-            $params[$k] = self::encodeValue($v);
-        }
-        // 再计算签名
-        $sig_new = self::makeSig($method, $url_path, $params, $secret);
-        return $sig_new == $sig;
-    }
-
-    /**
-     * 回调发货URL专用的编码算法
-     *  编码规则为:除了 0~9 a~z A~Z !*()之外其他字符按其ASCII码的十六进制加%进行表示,例如"-"编码为"%2D"
-     * @refer
-     *  http://wiki.open.qq.com/wiki/%E5%9B%9E%E8%B0%83%E5%8F%91%E8%B4%A7URL%E7%9A%84%E5%8D%8F%E8%AE%AE%E8%AF%B4%E6%98%8E_V3
-     */
-    private static function encodeValue($value)
-    {
-        $rst = '';
-
-        $len = strlen($value);
-
-        for ($i = 0; $i < $len; $i++) {
-            $c = $value[$i];
-            if (preg_match("/[a-zA-Z0-9!\(\)*]{1,1}/", $c)) {
-                $rst .= $c;
-            } else {
-                $rst .= ("%" . sprintf("%02X", ord($c)));
-            }
-        }
-
-        return $rst;
-    }
-
-}
-
-// end of script

+ 0 - 50
Gameserver/Amfphp/util/OpenAPI/lib/SnsStat.php

@@ -1,50 +0,0 @@
-<?php
-
-/**
- * 统计上报接口调用情况
- *
- * @version 3.0.2
- * @author open.qq.com
- * @copyright © 2011, Tencent Corporation. All rights reserved.
- * @ History:
- *               3.0.2 | sparkeli | 2012-03-06 15:33:04 | initialize statistic fuction which can report API's access time and number to background server
- */
-
-
-class SnsStat
-{
-    /**
-     * 执行一个 统计上报
-     *
-     * @param string $stat_url 统计上报的URL
-     * @param float $start_time 统计开始时间
-     * @param array $params 统计参数数组
-     * @return
-     */
-    public static function statReport($stat_url, $start_time, $params)
-    {
-        $end_time = self::getTime();
-        $params['time'] = round($end_time - $start_time, 4);
-        $params['timestamp'] = time();
-        $params['collect_point'] = 'sdk-php-v3';
-        $stat_str = json_encode($params);
-        //发送上报信息
-        $host_ip = gethostbyname($stat_url);
-        if ($host_ip != $stat_url) {
-            $sock = socket_create(AF_INET, SOCK_DGRAM, 0);
-            if (false === $sock) {
-                return;
-            }
-            socket_sendto($sock, $stat_str, strlen($stat_str), 0, $host_ip, 19888);
-            socket_close($sock);
-        }
-    }
-
-    public static function getTime()
-    {
-        list($usec, $sec) = explode(" ", microtime());
-        return ((float)$usec + (float)$sec);
-    }
-}
-
-// end of script

+ 10 - 7
Gameserver/nbproject/private/private.xml

@@ -12,17 +12,20 @@
     </editor-bookmarks>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
         <group>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/test.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/RankProc.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/config.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/Services/AppServer.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserPVPModel.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/GuildModel.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/CV3Util.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/index.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/SystemProc.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/StoreProc.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/TaskProc.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/AutoLoad.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/OpenAPI/OpenApiV3.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/StatProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/Services/AppServer.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserPVPModel.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/OpenAPI/Test_UploadFile.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/OpenAPI/Test_OpenApiV3.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/SystemProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/ShopProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/OpenAPI/Cpay_for_CEE_V2.php</file>
         </group>
     </open-files>
 </project-private>