APP接入闪电玩

APP接入闪电玩,涉及到【登录】【支付】【分享】等功能。

1、登录:必接;用户打开游戏时,调用用户APP登录信息授权登录,用户层面无感知,快捷进入游戏,无需二次登录游戏。
2、支付:必接;需APP客户端进行唤起支付宝、微信的操作,以及处理其他可能出现的问题。
3、分享:非必接;接入后,部分游戏分享有奖。

接入前准备

对接APP授权登录时,需向闪电玩平台申请如下参数:

参数名 类型 说明 获取方式
channel String 闪电玩平台分配的渠道号 1、前往闪电玩开放平台申请账号:https://open.shandw.com/v2
2、申请后,联系商务审核账号获取权限。
3、进入后台,在【子渠道管理】里面生成一个渠道号,渠道号即channel。
key String 闪电玩平台分配的秘钥(请妥善保管) 将生成的渠道号发至对接群,联系闪电玩生成key

APP授权登录

为避免用户游戏数据信息丢失,闪电玩账号需与APP进行互通,APP需将APP的用户信息传给闪电玩,进行登录授权。具体交互流程为:

1、APP生成用户信息&校验参数
2、APP选择合适的启动参数
3、将上述用户参数,启动参数拼接到授权链接上,在APP的webview中打开授权链接

重要内容
1、APP启动闪电玩的任何页面,均通过授权链接参数拼接的方式打开。
2、格式为:【授权地址】+【用户授权参数】+【启动参数】
3、闪电玩授权地址:http://www.shandw.com/auth/
4、自动校验工具: http://www.shandw.com/auth/check/checkauthsign.html
5、完整的拼接链接,示例如下:


步骤A:生成用户授权登录参数

为确保账号互通,APP方需提供APP的用户信息给到闪电玩,闪电玩会校验用户信息并保存,具体参数说明如下:

参数名 类型 说明
openid String(必填) APP用户的id(必填),请确保用户id的唯一性,(有特殊字符例如”=“需要编码)
nick String(必填) APP用户的昵称,没有昵称可使用openid代替(需要编码)
avatar String(必填) APP用户的头像,没有头像可使用1张默认图片作为头像(需要编码)
sex Int(必填) APP用户的性别,1:男;2:女;0:其他未知
phone String(必填) APP用户的手机号,没有手机号请填写""
time Int(必填) 当前服务器的时间戳(单位:秒)
channel String(必填) 闪电玩平台分配的渠道号
sign String(必填) 验签信息,具体验签方法详见下文说明

步骤B:选择启动参数

处理完用户授权登录参数后,选择不同的启动参数来打开【不同样式的游戏中心】【指定的单款游戏】【游戏礼包页面等】

参数1:启动游戏中心页面

参数名 类型 指定值 对应版本 参数说明 游戏调配
sdw_simple Int 1 黑色列表版 【banner】+【热门】【小游戏】【网游】三个分页,黑色背景 闪电玩配置
sdw_simple Int 2 白色列表版 【banner】+【热门】【小游戏】【网游】三个分页,白色背景 闪电玩配置
sdw_simple Int 3 大图标版 【banner】+【全部】【传奇类】【回合制】【古装仙侠】等多个游戏分类分页,白色背景 闪电玩配置
sdw_simple Int 4 无banner版 样式同大图标版,但是无banner板块 闪电玩配置
sdw_simple Int 5 全banner版 重点的10款游戏以banner图的形式排列展示 闪电玩配置
sdw_simple Int 6 游戏自选白色列表 样式同白色列表,游戏款数和排序可由APP方配置 APP方配置
sdw_simple Int 7 游戏自选黑色列表 样式同黑色列表,游戏款数和排序可由APP方配置 APP方配置
sdw_simple Int 8 游戏自选大图标版 样式同大图标版,游戏款数和排序可由APP方配置 APP方配置
sdw_simple Int 9 白色收藏版 样式同白色列表版相似,带收藏功能 闪电玩配置
sdw_simple Int 10 黑色收藏版 样式同黑色列表版相似,带收藏功能 闪电玩配置
sdw_simple Int 11 小图标版 无banner,游戏以icon的形式紧密排列 闪电玩配置
- - - 闪电玩原版 不配置启动参数,则默认打开闪电玩APP自用版本,内含游戏论坛、积分商城等丰富的板块 闪电玩配置

各启动界面预览:

黑色列表版:指定值1或7

白色列表版:指定值2或6

大图标版:指定值3或8

无banner版:指定值4

全banner版:指定值5

白色收藏版:指定值9

黑色收藏版:指定值10

小图标版:指定值11

不带参数的闪电玩APP原版

游戏自选版使用说明:
1、指定值为【6】【7】【8】的游戏中心,上线的游戏由APP方自行配置
2、操作方式:
--闪电玩开放后台,在【游戏库】将需求上线的游戏添加到【我的游戏】;
--【我的游戏】含有的游戏,即自选游戏中心上线的游戏;
--【我的游戏】排序值越大,游戏前端展示越靠前;
--将游戏从【我的游戏】内移除,则该游戏从游戏中心消失。

参数2:启动单款指定游戏

参数名 类型 说明
gid String

gid在闪电玩开放平台【游戏库】内获取,如gid=2038737096;

启动游戏预览,以斗罗大陆为例

启动斗罗大陆

参数3:启动用户玩过的游戏列表

参数名 类型 说明
toPlayedList int 指定值       1--启动用户玩过的游戏列表

启动用户玩过的游戏列表预览:

用户玩过的游戏列表

参数4:启动礼包列表

参数 使用方法
&sdw_activity=sdw_gift 在链接后面加这个参数即可

启动礼包列表预览:

启动礼包列表

参数5:启动游戏详情页面

参数 使用方法
&sdw_activity=sdw_detail 在链接后面加这个参数即可

启动游戏详情页面预览:

游戏详情页面

步骤C:游戏页面UI屏蔽参数

为了满足合作伙伴隐藏闪电玩元素的需要,闪电玩提供UI屏蔽参数,来保证用户在APP打开闪电玩游戏时,不暴露“闪电玩”平台的相关元素。以下参数用于APP方屏蔽闪电玩相关UI,具体说明如下:

参数名 类型 说明
sdw_ld Int 指定值      1->隐藏游戏页的闪电玩loading页面
sdw_kf Int 指定值      1->隐藏所有的客服按钮
sdw_dl Int 指定值      1->隐藏所有下载闪电玩APP的按钮
sdw_bt Int 指定值      1->隐藏绑定手机按钮
sdw_sy Int 指定值      1->隐藏返回到游戏中心首页按钮

步骤D:生成完整的授权链接

用户信息参数,目标启动参数,UI屏蔽参数等参数生成选定后,加密处理后需要按照键值对的形式附加在闪电玩授权链接上

http://www.shandw.com/auth/

加密参数sign的生成规则:
1.将参数以channelopenidtimenickavatarsexphone的顺序,按照key=value,用'&'进行拼接,得到参数拼接字符串String;
2.将appkey(闪电玩提供)直接拼接在String后面,得到验签前加密原串String;
3.最后,将String进行md5加密计算,得到sign=MD5(String).toLocaleLowerCase();
参考代码如下:

// 用户信息参数
const parmas = {
                channel:10000,
                openid:'app_123',
                nick:'这是个测试账号',
                avatar:'http://app-testAvatar.png',
                sex:1,
                phone:'18512345678',
                time:'1543303216',
                
            }
const key='sdw_app_key'; //闪电玩平台分配的秘钥

var string = 'channel='+parmas.channel+'&openid='+parmas.openid+'&time='+parmas.time+
                '&nick='+parmas.nick+'&avatar='+parmas.avatar+'&sex='+parmas.sex+'&phone='+parmas.phone+key ;
          
const sign  = MD5(string).toLowerCase() ;
parmas.sign = sign ;
//添加启动参数
parmas.sdw_simple = 1; //打开闪电玩游戏中心简易版
//添加UI屏蔽参数
parmas.sdw_ld=1;//隐藏游戏页的闪电玩loading页面
// urlEncode  {a:1,b:2,c:3}   =>   a=1&b=2&c=3 
const authPage = 'http://www.shandw.com/auth/?' + urlEncode(parmas); 

//最后生成完整授权链接示例为:http://www.shandw.com/auth/?channel=10000&openid=app_123&time=1543303216&nick=%E8%BF%99%E6%98%AF%E4%B8%AA%E6%B5%8B%E8%AF%95%E8%B4%A6%E5%8F%B7&avatar=http%3A%2F%2Fapp-testAvatar.png&sex=1&phone=18512345678&sign=1ed6c750db3ff43aab866ca29b38c05f&sdw_simple=1&sdw_ld=1

授权登录问题解答(遇到问题点我)

问题内容 原因描述 解决方法
签名校验失败 原因一:链接拼接错误 仔细阅读文档账号接入部分,按正确格式拼接
签名校验失败 原因二:Nick、avatar字段编码问题 Nick,avatar参与加密不编码,附在链接参数上需要编码,encodeURIComponent编码(js语言)
希望检查链接是否正常 使用签名校验工具检查

自动校验工具地址:

http://www.shandw.com/auth/check/checkauthsign.html
打开游戏是游客账号 APP直接打开闪电玩游戏链接 所有闪电玩链接不能通过APP直接打开,必须经过授权链接校验通过后跳转
有闪电玩下载等按钮 未添加屏蔽参数 在链接后面加上屏蔽参数即可
授权接入正确,但是打开后白屏(多出现在安卓) APP webview拦截了非法域名请求 检查APP webview是否支持localstorage(用户信息会缓存在localstorage中),测试地址:http://html5test.com/,在webview中打开此测试页检测webview的支持情况 ,如支持localstorage但依然白屏,请设置关闭webview页面域名校验
显示闪电玩PC端界面 APP的浏览器容器webview 内核未检测到移动端字样 APP开发人员需修改webview UserAgent的字段,以保证闪电玩能检测到是在移动端浏览器打开页面,闪电玩检测移动端浏览器的依据是 OS.onMobile=!!UserAgent.match(/AppleWebKit.*Mobile.\*/);
安卓APP浏览器内核相关 建议使用腾讯X5的内核 针对安卓接入而言,原生WebView存在着很多的不完善(游戏声音不播放,页面适配等),闪电玩建议使用腾讯X5内核(不强制),X5内核替换原生webview参考链接:https://blog.csdn.net/dongzhouT/article/details/80514072。若采用腾讯X5内核特别注意的是需要更改webview的userAgent,移除默认userAgent中的QQBrowser字段,否则闪电玩会检测游戏运行环境是在QQ浏览器,误唤起QQ相关的API
游戏界面显示不完整,或拉伸变形 APP的浏览器容器给定的宽高比不合理 渠道商需根据市面上大多数厂商使用的适配方案做好适配
打开闪电玩后,会唤起QQ授权页面 渠道商内核采用腾讯X5内核,闪电玩默认为QQ内,在没有用户信息时去自动唤起QQ授权 账号正确接入完成后,闪电玩获取到用户信息后,自动唤起QQ授权不触发
返回按钮点两次才能推出 返回到了授权中转页 做拦截处理,返回到授权页的时候,关闭webview,只捕捉拦截返回动作
安卓端页面无法上拉加载 未做上拉刷新处理 安卓无法滑动,安卓如果是原生的webview话,需要做一下上拉刷新的处理。目前我们已知的,就是安卓原生webview可能出现这种情况
安卓webview的web setting配置样例 安卓webview的web setting配置样例

APP支付接入

1、不使用APP原生支付,使用闪电玩的H5支付方式。
2、APP方主要做支付链接拦截后并唤起支付宝或微信。
3、比如为了实现调起微信支付,需要对支付链接进行拦截后才能进行处理。

安卓支付接入:

  mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(com.tencent.smtt.sdk.WebView view, String url) {
        // 如下方案可在非微信内部WebView的H5页面中调出微信支付
        if (url.startsWith("weixin://wap/pay?") || url.startsWith("alipay")) {
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.setData(Uri.parse(url));
            this.startActivity(intent);
            return true;
        }
        if(url.startsWith("https")){
            HashMap map= new HashMap();
            map.put("Referer","http://www.shandw.com");
            mWebView.loadUrl(url,map);
        }

        return super.shouldOverrideUrlLoading(view, url);
  }  
});

iOS支付接入:
由于ios wkwebview限制,并不能直接唤起微信,支付宝,需要拦截支付请求链接,通过UIApplication.shared.openURL(XXX)来唤起支付宝、微信进行支付(若App本身已经支持跳转支付宝微信,则不需要处理)。可参考以下代码:

OC 参考代码

  - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {

    NSString * absoluteString = [navigationAction.request.URL.absoluteString stringByRemovingPercentEncoding];

    if([absoluteString hasPrefix:@"weixin://"] || [absoluteString hasPrefix:@"alipay://"]){
        
        if([[UIApplication sharedApplication] respondsToSelector:@selector(openURL:options:completionHandler:)]){
            [UIApplication sharedApplication]openURL:navigationAction.request.URL options:@{} completionHandler:^(BOOL success){
                
            }];
        }else{
            [[UIApplication sharedApplication]openURL:navigationAction.request.URL];
        }
        decisionHandler(WKNavigationActionPolicyCancel);
    }else{
        decisionHandler(WKNavigationActionPolicyAllow);
    }
}

swift 参考代码

  func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    let urlStr:String = (navigationAction.request.url?.absoluteString.removingPercentEncoding)!
    if(urlStr.range(of: "alipay://")?.lowerBound==urlStr.startIndex ||  urlStr.range(of: "weixin://")?.lowerBound==urlStr.startIndex){
        UIApplication.shared.openURL((navigationAction.request.url)!)
        decisionHandler(WKNavigationActionPolicy.cancel)
    }
  }

支付问题解答(遇到问题点我)

问题 解决方法
商家参数格式有误,请联系商家解决 解决方案为webview中手动设置referer,直接在原有的代码基础上进行更改:若依然解决不了请参考:https://www.cnblogs.com/lizhilin2016/p/9001452.html
 WebViewClient webViewClient = new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
          
           ...

            if (!(url.startsWith("http") || url.startsWith("https"))) {
                return true;
            }

            // 比如我们申请时填写的是经常用来测试网络连通性的 http://www.baidu.com
            HashMap map = new HashMap();
            // 指定申请微信 H5 支付时填写的域名,
            map.put("Referer", "http://www.shandw.com");
            view.loadUrl(url, map);
            return true;
        }
}
问题 解决方法
户配置不存在,请联系商家解决 请参考:https://developers.weixin.qq.com/community/develop/doc/000e20e2300cc086cf380193651800?_at=1558745974908
第一次能支付,第二次开始提示商户配置不存在 referer 字段需要穿透,每开一个页面,都要一层层传过去
iOS无法跳转微信等APP支付 具体解决方案请参考: webview调用APP:https://docs.open.alipay.com/203/107091/
支付完成停留在safri,未返回APP APP唤起H5支付的时候,支付完成或支付取消后就会跳转到Safari浏览器中并打开游戏地址(CP定义的回调地址),并不会跳转到第三方APP,所以要对此流程进行兼容操作,第三方APP需要给出的判定条件(闪电玩平台进行统一跳转处理)如下:
iOS微信支付回调需配置以下信息:
  1. channel:APP接入闪电玩时的渠道号
  2. APP标识:识别APP环境的特殊字符串,如果 UA(user agent) 中没有特殊标识,就需要开发加一个在 UA 上, 例如默认 闪电玩 app 默认 UA 如下:
    Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
    增加特殊标识,修改之后如下:
    Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Shandw
    识别 闪电玩 APP 环境的特殊字符串就是 Shandw。 (三个缺一不可)
    ps: Mozilla 不能当作特殊标识; 注意是增加不是替换。如果不知道 UA 如何修改,请自行搜索关键词。
  3. Schemes地址:在Safari中唤起APP的Schemes地址,如聊天宝:chatbao://,如果 app 开发不清楚 schemes 是什么,如何定义,请自行搜索了解。
将【channel】【APP标识】【Schemes地址】发给闪电玩方,由闪电玩配置即可实现支付完成后跳回APP (三个缺一不可)

APP分享

1、分享非必接,接入后,用户分享游戏,部分游戏有分享奖励。
2、现市面上APP的分享方式大致可分为两种分享方式,即主动分享和被动分享。

分享类型 分享流程说明 示例
主动分享 点击分享按钮,直接唤起底部菜单栏,调用分享,效果如右图所示
被动分享 参考微信分享,预先设置好分享文案等相关信息,然后唤起引导图诱导用户点击右上按钮,唤起菜单栏

闪电玩游戏在接入时,闪电玩平台对CP提供了被动分享的方案,流程类似微信H5的分享(sdk内部在不同的APP环境内调用不同的分享接口,达到兼容不同APP内的分享功能)。
闪电玩方面建议采用js bridge方式与APP进行数据传输,H5页面暴露全局变量shandwshare的对象来保存分享成功,分享取消的回调,APP在分享完成后调用相应的方法;

分享成功调用js方法:shandwshare.success();
分享取消调用js方法:shandwshare.cancel();

Js唤起APP分享的方法为:

var shareInfo = {
            title: option.title,
            desc: option.desc,
            link: option.link,
            imgUrl: option.imgUrl,
            shareflag:option.share?true:false,
        };
if( window.sdwMsg && window.sdwMsg.share ){
            window.sdwMsg.share(JSON.stringify(shareInfo));
            return ;
        }else if(SDW_WEB.onIOS && window.webkit &&  window.webkit.messageHandlers && window.webkit.messageHandlers.sdwShareMsg){
            window.webkit.messageHandlers.sdwShareMsg.postMessage(JSON.stringify(shareInfo));
            return ;
        }

安卓暴露出的方法为:sdwMsg.share ;
ios暴露出的方法为:webkit.messageHandlers.sdwShareMsg

闪电玩提供测分享测试页面:http://www.shandw.com/auth/check/checkshare.html ,供开发者调试分享功能

分享问题解答(遇到问题点我)

1.APP载入分享测试页,点击分享按钮出现提示:此APP环境不支持闪电玩分享测试~!。出现此问题的原因是闪电玩未检测到APP暴露的分享方法。其中安卓暴露出的方法为:sdwMsg.share ;ios暴露出的方法为:webkit.messageHandlers.sdwShareMsg

2:APP除了暴露出方法给H5页面调用外,还需要在右上角菜单栏添加【菜单】按钮,点击【菜单】按钮,弹出底部菜单栏,让用户选择不同的社交平台(参考微信)。

3:闪电玩调用APP的分享方法传递给APP的是一个json字符串,其中shareFlag多为false,即文档上面所说的被动分享,APP若选择接入分享功能,被动分享是必须支持的。


微信公众号启动游戏

1、仅微信公众号渠道使用,APP渠道忽略。
2、接入前请在闪电玩开放平台申请账号,并添加子渠道,具体操作请联系商务对接同事获取操作引导文档。

取得渠道号后一般只需在游戏链接上附带渠道参数即可启动游戏,如 :http://www.shandw.com/mi/game/1247433539.html?channel=10000, 其中1247433539为游戏id,channel为渠道号

如对游戏界面的UI有特殊要求,可通过本文档中启动授权页面部分的相关参数配置,如:http://www.shandw.com/mi/game/1247433539.html?channel=10000&sdw_simple=2&sdw_tt=1->为UI主题为白色隐藏退弹。具体配置参数如下表:

参数名 类型 说明
sdw_simple Int 指定值:1为默认版黑色主题;2为白色主题;
sdw_tt Int 指定值:1,隐藏游戏的退弹功能
sdw_ld Int 指定值:1,隐藏游戏开始的启动页面
sdw_tl Int 指定值:1,隐藏游戏界面的悬浮窗
sdw_kf Int 指定值:1,隐藏所有的客服按钮
sdw_dl Int 指定值:1,隐藏所有下载闪电玩APP的按钮
sdw_qd Int 指定值:1,隐藏所有关于闪电玩二维码
toPlayedList Int 指定值:1,跳转至我玩过的游戏列表页面(基于闪电玩原版)
third_identify Int 指定值:1,关闭闪电玩游戏内闪电玩的实名认证,由第三方自行控制实名认证逻辑
channel_login Int 指定值:1,在微信、qq使用渠道登录,不使用闪电玩的微信qq的自动登录

微信公众号账号互通

在微信公众号环境下,打开闪电玩上的游戏,需先请求用户授权获取用户信息。但针对同一用户,两个不同主体的公众号会出现用户数据不互通的情况,若需打通合作方公众号与闪电玩的账号体系,需在启动闪电玩界面(包含游戏中心,单款游戏)时附加上合作方公众号的用户唯一识别账号openid,示例链接:

http://www.shandw.com/mi/game/1247433539.html?channel=12196&openid=75LbCx6pARitohycN0UNVg9PmfpI


需要注意的是,首次进入闪电玩提供的界面链接上所带的channel为合作方渠道时,视为用户在合作方渠道自动注册!只有注册在合作方渠道的用户才能与合作方提供的账号关联,若在闪电玩首次注册的渠道归属不属于合作方渠道,则会关联失败。

我的游戏-列表信息获取接口

渠道商可在闪电玩开放平台挑选游戏,添加到‘我的游戏’,然后通过接口请求这些游戏信息,需要注意的是,‘我的游戏’列表信息的维护在渠道商主体账号下,拥有多个子渠道的渠道商可以增删‘我的游戏’,但是这些子渠道下的‘我的游戏’列表信息是统一的。 渠道商可根据这些游戏信息自行开发游戏集成页面,获取信息接口及规则如下:

    接口地址:http://platform.shandw.com/getGameInfoList?channelId=11929&sec=1580000000&sign=MD(channelId+sec+key)
    请求方式:get
    参数说明:
            channelId:闪电玩提供,在闪电玩开放平台生成的渠道号-channel
            sec->int   13位时间戳
            key->string 闪电玩开放后台注册分配的appkey
            sign->string  由channelId,sec,key按顺序MD5加密

返回参数如下图所示:

支付信息查询接口

为方便合作商自行运营游戏相关活动,闪电玩提供玩家支付数据查询接口,支付涉及金钱等敏感数据,建议采用服务端通信获取充值数据。 获取信息接口及规则如下:

    接口地址:https://h5gm2.shandw.com/open/channel/queryPayByChannel
    请求方式:get
    参数说明:
            请求参数               参数描述         类型          备注
            account               用户帐号       String      闪电玩开放平台管理帐号
            channel               查询渠道号      int    
            sec                   时间戳         long        单位毫秒13位
            sign                  签名           String   
            page                  页码           int         默认0
            pageSize              记录长度        int         默认100条,最大100 
            stime                 查询开始时间戳   long        单位毫秒13位
            etime                 查询结束时间戳   long        单位毫秒13位
    接口回参说明:
            响应参数     参数描述        类型                         备注
            code        响应代码        int         -1:帐号信息错误,-2:签名错误,-3:未查询到结果,1:成功
            msg         响应结果描述    String    
            data        响应数据        JSONArray   
            data
            page        页码           int         默认0
            pageSize    记录长度        int         默认100条,最大100
            list        数据列表        JSONArray   
            list数据格式如下:
                cpOrderId   CP订单号          String   
                channel     渠道ID            String        用户ID创建时的渠道号
                uid         我方用户ID         long 
                openId      渠道用户ID         String   
                appId       闪电玩应用ID       String    
                product     产品              String  
                money       金额(分)         int   
                time        支付时间戳         long  
    其中请求接口的sign签名规则如下:
    sign=md5(account=[account]&channel=[channel]&sec=[sec]&key=[ApiKey]),其中ApiKey是闪电玩提供的对外接口数据校验专用ApiKey(与渠道接入校验KEY不是同一个),意味接入支付数据查询请先找对接人员索要Apikey 

用户游戏历史查询接口

为方便合作商自行运营游戏相关活动,用户游戏历史查询。获取信息接口及规则如下:

    接口地址:https://h5gm2.shandw.com/open/channel/queryGameHistoryByUser
    请求方式:get
    参数说明:
            请求参数         参数描述       类型      备注                          必填
            account         用户帐号      String    闪电玩开放平台管理帐号            Y
            channel         渠道号         int                                     Y
            sec             时间戳         long    单位毫秒13位长度                  Y
            sign            签名          String                                   Y
            userId          渠道用户ID     String   授权时,渠道方Id                  Y
    接口回参说明:
            响应参数            参数描述            类型                              备注  
            code               响应代码             int         -1:帐号信息错误,-2:签名错误,-3:未查询到结果,1:成功
            msg                响应结果描述          String       
            data    响应数据    JSONArray       
            list数据格式如下:
                id          应用Id            String      
                name        应用名             String      
                gameIcon    应用ICON          String      
                channel     渠道ID            String      
                uid         我方用户ID          long        
                pTime       游戏时间戳           long                        最近的游戏时间 
    其中请求接口的sign签名规则如下:
    md5(account=[account]&channel=[channel]&sec=[sec]&key=[ApiKey]),其中ApiKey是闪电玩提供的对外接口数据校验专用ApiKey(与渠道接入校验KEY不是同一个),意味接入支付数据查询请先找对接人员索要Apikey      

除了上述的问题,如果对接过程中有其他的问题,请与对接人员联系,配合平台进行联调排查问题。

游戏数据上报接口

为方便合作商自行运营游戏相关活动,游戏数据上报接口,获取信息接口及规则如下:

接口名:用户游戏数据记录查询
接口地址:https://h5gm2.shandw.com/open/userGame/queryUserGameRecord
请求方式:GET
参数:
account String  闪电玩2.0平台帐号 示例:xingfuli
channel int     渠道号
sec     long    时间戳/13位/毫秒
sign    String  帐号签名 MD5("account="+account+"&channel="+channel+"&sec="+sec+"&key="+apiKey),apiKey是开放给帐号account数据查询权限校验的apiKey,与授权接入时使用的KEY不同
userId  String  该字段值:前缀(一般是"SDW"+account+"U",特殊情况的使用该接口时,商务会提供该前缀)+对应渠道商授权时传给闪电玩的用户标识,比如:前缀SDWxingfuliU,渠道方传给闪电玩的用户标识XXXXXXXYYYYYYZZZZZ,该值为:SDWxingfuliUXXXXXXXYYYYYYZZZZZ
gameId  String  闪电玩上的游戏ID
响应结果:
参数:
result int  1:成功,小于1的值为失败,-1:渠道号错误,-2:帐号校验失败,-3:帐号信息未找到,-5:帐号没有查询渠道号数据的权限,-7:参数userId错误 -8:帐号错误
msg    String
data   List
data 元素数据内容:
appid  String 游戏ID
uid    long   闪电玩用户ID
nick   String 用户昵称
sid    String 区服ID
sname  String 区服名称
level  int    等级
vip    int    VIP
power  int    战力值
time   long   更新时间戳
openid String 查询条件中的userId

示例:
{
"result":1,
"msg":"ok",
"data":[
{"appid":"2039195849","sid":"3001","uid":1824539182,"nick":"昵称","sname":"3001","level":26,"vip":0,"power":76,"time":1564041291680,"openid":"SDWxingfuliU7B74E5ED2EA6C93EF64C80E746C1AD88"},
....
]
}