H5游戏平台交接文档

2018-03-07  本文已影响0人  陈小牌

# h5游戏平台

h5游戏平台是一个qq,微信第三方都可登录的小游戏平台,内嵌在公众号里

前期开发时需要准备的工作是公众号认证,微信支付申请

主要涉及的关键点是授权登录及微信支付,其他均为调后端接口渲染数据及列表。

目前已暂停维护,接口无数据,本地运行没有测试数据,页面运行后的战士只有静态资源。

##### 注意:本文档只作为工作交接用,并不是正式的游戏平台开发文档,文中技术模块分析不做任何解释,但会对组件参数进行解释

主要模块分为

* 登录、注销、支付

* 首页HOMEPAGE

* 礼包GIFTPAGE

* 社区

* 个人中心 PERSONPAGE

### 登录、注销

登录分为三种登录方式,qq,微信,输入账号登录,

注销即清空localStorage

点击对应不同的登录接口

       

       

       

    脚本看vuex下login文件夹里的login.js,调相关api以及根据服务端返回的appid,token值进行路径跳转验证身份

    accountType参数为数字,用来与后台沟通区分哪种方式登录的。

    commit()方法用来检验用户登录是否符合账号规则

      // 用户登录输入信息校验

initCheckLogin ({commit}){

commit(INIT_CHECK_LOGIN)

},

      // 微信登录

wechatLogin({commit, router}){

localstorage.remove('token');

localstorage.remove('userId');

localstorage.set('accountType', 9);

window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxd5fe9e6452fb6048&redirect_uri=" + config.redirect_uri + "?accountType=9&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";

},

      // wan平台登录

wanLogin({commit}){

localstorage.set('accountType', 1);

router.push('/login/7wan');

},

      // 微信二维码登录

wechatQrcodeLogin(){

localstorage.set('accountType', 10);

window.location.href = "https://open.weixin.qq.com/connect/qrconnect?appid=wx1cab8695f3b6d475&redirect_uri=" + encodeURIComponent(config.redirect_uri + "?accountType=10") + "&response_type=code&scope=snsapi_login&state=68_cache#wechat_redirect"

},

      // QQ 登录

qqLogin(){

localstorage.set('accountType', 7);

var display = wanGameUtil.brower().isMobile() ? 'mobile' : 'pc';

window.location.href = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101349921&redirect_uri=" + encodeURIComponent(config.redirect_uri + "?accountType=7&state=123") + "&display=" + display + "&scope=get_user_info";

},

### pay支付

  支付分为三种方式,微信支付,支付宝支付,扫二维码支付

  具体视图的代码在view文件夹下pay.vue

           

需要支付: {{queryVars.money}}元

                微信支付

                微信扫码支付

                支付宝支付

                返回游戏

  支付的脚本操作具体可以vuex文件夹下的pay文件夹,

问题比较大的是微信支付会比阿里复杂一些,

调用微信的jssdk,测试需要放在正式环境上测试

  并且服务端返回一系列相关参数,这里只贴上微信支付需要的参数,具体看pay.js

微信支付的具体流程也可以查看官网api,附上地址:

  https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1

var payData = {

          appId: "",  // 公众号名称,由商户传入

          timeStamp: "",  // 时间戳

          nonceStr: "",  // 随机串

package: "",

          signType: "",  // 微信签名方式

          paySign: "",  // 微信签名

};

### HOMEPAGE

首页主要是加载列表及轮播图,公告资讯

首页的组件都在components文件夹里,轮播图&公告在home.vue

#### 用户信息

    组件名:userInfo

    登录方式:微信第三方&qq登录&输入账号登录

##### 相关参数及代码

用户名 :nickName头像  :icon积分  :point默认头像:defaultImageSrc

{{user.nickName ? decodeURIComponent(user.nickName) : ""}}

{{user.point}}

                下载APP

####  轮播图&公告&资讯

  ##### 轮播图相关参数      linkUrl:游戏详情页

  adPicUrl:图片地址

  ##### 公告相关参数

    资讯模块与公告模块代码类似,没有贴上

  linkUrl:公告详情页

  title:公告标题

{{notice.title}}

####  最近在玩 &热门精选  列表

    组件名:game-icon-list & hot-game-list

##### 相关参数及代码

    游戏icon  :icon

    游戏名称  :title

    游戏id    : gameId

  • {{game.title}}

                  马上玩

    #### 最新小游戏列表

        组件名:game-info-item

    #####  相关参数及代码

        游戏icon  :icon

        游戏名称  :title

        游戏描述: content

        游戏开始时间  :time

    {{game.title}}

    {{game.content}}

    {{game.time}}

            进入

    ### GIFTPAGE

    giftPage分为三个tab,每个tab分别对应的是游戏礼包列表、今日开服的游戏、未来一周开服游戏

    关键点是用了infinite-loading预加载的插件,可实现首屏加载8-10条数据,向上刷新则重新加载,无数据则显示相关提示

    ##### 注意:模块的组件在gifts文件夹,复用组件在component里

    #### 礼包列表

          组件名:game-gift-list

          这里有一个地方是判断礼包是否已领取,如果已领取则显示已领按钮,未领则显示领取按钮可点击,具体代码看组件

    ##### 相关参数及代码

              游戏icon  :icon

              礼包名称  :title

              礼包描述  :content

              礼包总数  :sum

              已领礼包  :getCount

    {{gift.title}} {{gift.content.substring(0,16)}}

                  更多

    {{message(gift)}}

    class="game-enter-button btn btn-default btn-sm">{{comeIn(gift)}}

    ### 今日开服 & 未来一周

          组件名: day-service-list & week-service-list

          判断是否已经开服,如果已开服则显示进入按钮,未开服显示开服时间,具体代码看组件

    ##### 相关参数及代码

              游戏icon  :icon

              游戏名称  :title

              游戏区服  :zoneName

              开服时间  :openTime

    {{day.title}} {{day.zoneName}}

    {{openMsg(day)}}

                      style="text-align:right;">进入

    v-if="!isOpen(day)">{{day.openTime}}

    ### 社区

        点击跳转相关链接

    ### 个人中心

        组件名:person

        个人中心是用户信息及用户最近在玩列表

    ### 文件夹介绍

    * api存储接口及ajax调用封装方法

    * assets      css img文件夹

    * components组件文件夹

    * utils第三方登录及微信支付等脚本

    * view视图构造

    * viex各模块对应的model

    router.js配置了路由及子页面的跳转组件路径

    其他文件夹均为vue-cli脚手架初始化生成,

    build为webpack配置

    dist是打包生成

    config为引入webpack打包准备工作。可以自行了解下vue-cli脚手架

    ### 后续联系

    h5游戏平台交接过程有不明白的地方可以联系

    rtx:jo.chan 

    rtx: karl.zheng 

    rtx: xiaoyi

  • 上一篇 下一篇

    猜你喜欢

    热点阅读