说说游戏对接

    页游运营通常开发商会交由平台代理发行运营,分成款获得收入,比如37wan,xy等平台,这里就存在一个游戏对接的问题,平台玩家怎么能在开发商的机器上玩呢?开发商自己在自己的服务器上肯定是能玩的,平台用户过来怎么处理?其实很简单,平台上进入相应的游戏只是加载一个iframe框架,然后地址就读取一个网址就是了,那重点就是这个http请求的生成,这个就是接口,通常开发商给平台一个文档,规定需要给开发商传递的参数,比如

//以下是需要的参数
        // 传入参数:
        // - 用户ID:  uid (urlencode之后的值)
        // - 平台ID:  platform
        // - 游戏名:   gkey
        // - 区服ID:  skey
        // - 时间戳:  time
        // - 防沉迷:  is_adult
        // - 登陆失败跳转URL:  back_url
        // - 登陆类型: type(登陆类型,web登陆或微端登陆,值为 pc或web,pc为微端登陆,web页登陆)
        // - 签名  :  sign
        //签名规则为:   md5($uid.$platform.$gkey.$skey.$time.$is_adult.'#'.$lkey)    (lkey为登陆密钥,注:uid为urldecode之后的值)
        //http://s1.cssg.center.my4399.com/login.html?uid=$uid&platform=$platform&gkey=$gkey&skey=$skey&time=$time&is_adult=$is_adult&back_url=$back_url&type=$type&sign=md5($uid.$platform.$gkey.$skey.$time.$is_adult.'#'.$lkey)
        

    至于你请求过去开发商怎么处理,那个是别人的问题,他们会根据你传递的参数和key以及sign签名,判断你是不是合作平台的玩家,如果他们根据你穿的参数判断是合作平台的玩家,那么iframe加载他们的游戏界面就可以正常展示,否则会有错误信息返回,那我们现在就根据他们需要的数据构造请求的URL就好

$tmpReturn = array();//返回的数据

        $tmpUid      = $strParam['uid'];
        $tmpPlatform = 'xxxx';//各个平台不同
        $tmpGkey     = 'xxxx';
        $tmpSkey     = intval($strParam['sid']);
        $tmpTime     = time();
        if($strParam['fcm'] ==0){$is_adult=2;}
        else{$is_adult    = $strParam['fcm'];}
        $back_url    = 'xy.xy.com';
        $tmpLkey     = '';
        $tmpSign     = md5(urldecode($tmpUid).$tmpPlatform.$tmpGkey.$tmpSkey.$tmpTime.$is_adult.'#'.$tmpLkey);


        if($strParam['ismicroclient'] == TRUE){
            $type = 'pc';
        }else{
            $type = 'web';
        }

        $params = array(
            'uid'        => $tmpUid,
            'platform'   => $tmpPlatform,
            'gkey'       => $tmpGkey,
            'skey'       => $tmpSkey,
            'time'       => $tmpTime,
            'is_adult'   => $is_adult,
            'back_url'   => $back_url,
            'type'       => $type,
            'sign'       => $tmpSign,
        );

        $tmpSignUrl = http_build_query($params);

        $tmpReturn['tmpServerURL'] = 'http://s'.$tmpSkey.'.'.'gate.xxx.xxx.com/login.html?'.$tmpSignUrl;  //将xxx替换为要求的地址,每个游戏对接不同


    游戏还需要返回角色信息,其实和对接大同小异,就是构造正确的请求地址,对方会返回你需要的东西

$tmpSign2 = md5(urldecode($tmpUid).$tmpPlatform.$tmpGkey.$tmpSkey.$tmpTime.'#'.$tmpLkey);

        $params2 = array(
            'uid'        => $tmpUid,
            'platform'   => $tmpPlatform,
            'gkey'       => $tmpGkey,
            'skey'       => $tmpSkey,
            'time'       => $tmpTime,
            'sign'       => $tmpSign2,
        );

        $tmpSignUrl2 = http_build_query($params2);
        $tmpRoleData = $this->_getRemoteFile('http://s'.$tmpSkey.'.'.'gate.xxx.xxx.com/checkuser.html?'.$tmpSignUrl2);<pre name="code" class="php">        //$this->_getRemoteFile这个其实就是curl请求返回值
$tmpRoleData = json_decode($tmpRoleData,true); if($tmpRoleData['errno'] === 0){ $tmpReturn['tmpPlayerId'] = 1; $tmpReturn['tmpPlayerName'] = $tmpRoleData['data']['nickname']; } return $tmpReturn;


 


    掌握游戏对接的核心就可以,其实就是构造正确的url,取得正确的信息,即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值