大厅与游戏互调接口:
双方的数据交互都是通过JSON格式进行传递。
发起请求示例:
{
"protocolName" : "LoginTicketRequest"
"protocolParam" : "{\"callerPkgName\":\"游戏包名\",\"appId\":\"游戏appid\",\"gameType\":\"COCOS\",\"loginType\":0,\"ticketType\":\"OPEN_ID\"}"
"protocolVersion" : "1.6"
}
请求结果示例:
{
"protocolName" : "LoginTicketResponse"
"protocolParam" : "{LoginTicketResponse定义中各字段的值}"
"protocolVersion" : "1.x" // 协议版本
}
注意:
1,byte[] 以Base64编码后的String传递
2,因为SDK所有接口都是异步或有网络请求的,所以游戏请求之前都需要有一个loading动画提示。请求信息回来后,再去掉loading动画。
3,大厅中仅支持 LoginTicketRequest、ShareRequest、PayRequest、ReportRequest、OpenUrlRequest、PhoneStateRequest、LauncherRequest
协议参数:
获取票据协议v1.0
仅供接入Tsdk的应用使用,另附说明; 获取开平票据使用 2.5 中的协议。
Midas支付协议 v1.0
public class PayRequest {
public String appId;
public String callerPkgName;
public String gameType;
public int loginType;
// 模式1: 游戏后台下单获取"url_params"
public String offerId;
public String openId;
public String openKey;
public String payUrl;
// 模式2: 委托大厅后台下单
public int payValue;
public boolean isCanChange;
public int payType;
public String payItem;
public String payInfo;
public String reqTime;
public String customMeta;
}
参数:
参数名 |
参数类型 |
参数说明 |
appId |
String |
游戏在开发平台申请的id |
callerPkgName |
String |
接口调用方包名 |
gameType |
String |
游戏类型: "UNITY", "COCOS" |
loginType |
int |
游戏当前账户类型 , 1:QQ, 2:微信 |
payValue |
int |
用户充值数量,即游戏币的个数.(必须是整数) |
isCanChange |
boolean |
充值数额是否可改。true:可改; false:不可改。 |
payType |
int |
支付类型, 0 : 米大师 , 1:商品 |
payItem |
String |
购买明细,应用可以自己控制批价格式的定义,比如可为xxx*1;yyy*2,表示xxx一件和yyy两件。长度小于512字符。 |
payInfo |
String |
购买描述,应用可以自己控制批价格式的定义,比如可为name*desc。长度小于255字符,utf8编码 |
reqTime |
String |
请求发生的时间 |
customMeta |
String |
透传参数 |
offerId |
String |
应用在米大师申请的id, 由后台和"url_params" 一起返回给客户端 |
payUrl |
String |
应用通过米大师接口下单后获取到的 "url_params" (这个值由游戏后台拉取给到游戏客户端) 测试阶段可以这里拿到测试值: //minigame.qq.com/plat/mobile_hall/app_frame/?appid=100703379&channel=10021755 |
openId |
String |
大厅后台给应用转换好的openId |
openKey |
String |
大厅后台给应用转换好的openKey |
下单模式选择:
1. 默认使用模式1,由游戏方自己下单!
2. 使用模式1,忽略模式2所有参数,无需填写。
接入流程:
1. 大厅侧为游戏方开通管理端访问及配置权限。
2. 游戏方根据网站指引,联调下单,和发货回调。
3. 先调通沙箱支付,大厅侧申请发现网,再测试现网支付。
下单常见问题:
1. 沙箱环境/现网环境对应不同的appkey
2. 下单参数的值请仔细对照“支付参数含义详解”,特别是Cookie 和 openkey
3. 下单时使用"app_metadata"为key传参,会透传给发货回key变为"appmeta",这里可以透传登录返回的channel
支付参数含义详解:
//wiki.midas.qq.com/post/index/1/27/47
直购后台下单接口说明:
实际下单接口 !!!!!!
【现网】//msdk.qq.com/mpay/buy_goods_m
【沙箱】//msdktest.qq.com/mpay/buy_goods_m
Sig校验, 计算sig需要appkey
//wiki.midas.qq.com/post/index/1/32/53
回调发货协议说明
支付回调错误码:
//wiki.midas.qq.com/post/index/1/33/21
//wiki.open.qq.com/wiki/%E6%94%AF%E4%BB%98%E9%94%99%E8%AF%AF%E7%A0%81%E8%AF%B4%E6%98%8E
public class PayResponse implements IProtocol {
public int resultCode;
public String resultMsg;
public int payChannel;
public int payState;
public int providerState;
public int saveNum;
public String extendInfo;
public int realSaveNum;
public String orderno;
}
参数:
参数名 |
参数类型 |
参数说明 |
resultCode |
int |
//说明游戏初始化绑定service不成功 PAYRESULT_SERVICE_BIND_FAIL = -2; (此时需要在回调中重新绑定,否则有可能无法拉起支付页面) //支付流程失败 PAYRESULT_ERROR = -1; //支付流程成功 PAYRESULT_SUCC = 0; //用户取消 PAYRESULT_CANCEL = 2; //参数错误 PAYRESULT_PARAMERROR = 3; |
payChannel |
int |
//支付渠道,只有支付成功时才返回相应的支付渠道 PAYCHANEL_UNKOWN = -1; //Q点渠道 PAYCHANEL_ACCT_QDQB = 0; //财付通 PAYCHANEL_TENPAY_CFT = 1; //银行卡快捷支付 PAYCHANEL_TENPAY_BANK = 2; PAYCHANEL_TENPAY_KJ = 3; //Q卡渠道 PAYCHANEL_QQCARD = 4; //手机充值卡渠道 PAYCHANEL_MCARD = 5; //元宝渠道 PAYCHANEL_YB = 7; //微信支付渠道 PAYCHANEL_WECHAT = 8; //话费渠道 PAYCHANEL_HF = 9; //金券渠道 PAYCHANEL_GOLDCOUPONS = 10; //Q币渠道 PAYCHANEL_ACCT_QBQD = 11; |
payState |
int |
支付状态 PAYSTATE_PAYUNKOWN = -1; //支付成功 PAYSTATE_PAYSUCC = 0; //用户取消 PAYSTATE_PAYCANCEL = 1; //支付出错 PAYSTATE_PAYERROR = 2; |
provideState |
int |
发货状态 //无法知道是否发货成功,如:财付通、手机充值卡渠道 PAYPROVIDESTATE_UNKOWN = -1; //发货成功 PAYPROVIDESTATE_SUCC = 0; |
realSaveNum |
int |
购买成功时购买的数量 |
resultMsg |
String |
返回信息 |
extendInfo |
String |
业务类型;0:游戏币;1:道具;4:包月;5:订阅 |
分享协议
public class ShareRequest {
public String callerPkgName;
public String gameType;
public String title;
public String summary;
// 链接分享
public String iconUrl;
public String targetUrl;
// 本地大图分享
public String localPicUrl;
public String localPicTip;
public String editTextTip;
public int sharePlatform;
public int shareContent;
}
参数:
参数名 |
参数类型 |
参数说明 |
callerPkgName |
String |
接口调用方包名 |
gameType |
String |
游戏类型: "UNITY", "COCOS" |
title |
String |
分享的标题, 最长30个字符。 |
summary |
String |
分享的消息摘要,最长40个字。 |
iconUrl |
String |
分享的缩略小图,值只能为 "网络图片url" 或者 "gameIcon" |
targetUrl |
String |
分享内容中携带的链接。 |
localPicUrl |
String |
分享本地图片,图片地址。如:"/storage/sdcard0/pkg/img/a.png" |
localPicTip |
String |
分享本地图片说明 |
editTextTip |
String |
编辑框中默认填写的内容 |
sharePlatform |
int |
分享到哪里,ALL = 0; QQ = 1; QQ_ZONE = 2; WX = 3; WX_CIRCLE = 4; |
shareContent |
int |
分享url还是本地图片, WEB_PAGE = 0; LOCAL_PIC = 1; |
public class ShareResponse {
public int resultCode;
public String resultMsg;
}
参数:
参数名 |
参数类型 |
参数说明 |
resultCode |
int |
错误码: 0:正确; 其他:不正确。 |
resultMsg |
Stirng |
分享提示内容:如:分享取消。分享完成。分享失败等等。
NO_INSTALL_QQ = -100; NO_INSTALL_WX = -101;
|
事件上报协议(预留协议,非数据统计上报)
public class ReportRequest {
public String callerPkgName;
public int eventId;
public int resultCode;
public String resultMsg;
}
参数:
参数名 |
参数类型 |
参数说明 |
callerPkgName |
String |
接口调用方包名 |
eventId |
int |
事件id |
resultCode |
int |
事件结果代码, 成功结果为 0 |
resultMsg |
String |
事件描述 |
eventId {
int GAME_START_SUCCESS = 1; //游戏成功启动
int LOGOUT_GAME = -1; //注销帐号
int EXIT_GAME = -2; //退出游戏 , 建议在 物理返回键 触发的退出游戏场景才report。
int OPEN_LAUNCHER = -3; //打开Launcher界面
}
获取票据协议 (休闲游戏)
协议名及参数
public class LoginTicketRequest {
public String appId;
public String callerPkgName;
public String gameType;
public String ticketType;
public int loginType;
public int forceLoginRequest;
}
参数:
参数名 |
参数类型 |
参数说明 |
appId |
String |
游戏在开放平台申请的id (这里只填qq 的 appid即可) |
callerPkgName |
String |
接口调用方包名 |
gameType |
String |
游戏类型: "UNITY", "COCOS" |
ticketType |
String |
需要的票据类型: "OPEN_ID" |
forceLoginRequest |
int |
0:获取已有票据 1:要求大厅重新登录, 发现获取到的票据异常时,可设置此标志重新获取票据, 要注意只能调用一次。 |
loginType |
int |
0 : 获取大厅当前账户 1:获取QQ账户 2:获取微信账户 若游戏不关心登录方式,拉取数据和重试时候,请求参数loginType=0 若游戏仅仅支持单一登录方式,拉取数据和重试时候,请求参数loginType为对应类型 |
public class LoginTicketResponse {
public int resultCode;
public String resultMsg;
public int loginType;
public String loginResult;
public String nick;
public String headUrl;
public String gender;
public String unionId;
public String openId;
public String openKey;
public String payToken;
public String pf;
public String pfKey;
public String channel;
// 用于通过链接拉起游戏透传启动参数
public int launchType;
public String launchParam;
public String entrance;
public String hallVersion;
}
参数:
参数名 |
参数类型 |
参数说明 |
resultCode |
int |
登录结果, 0:成功, 其他:不正确。 |
resultMsg |
String |
登录结果说明 |
loginType |
int |
1:QQ票据,2:微信票据,这里返回大厅当前的登录类型 |
unionId |
String |
用来区分用户的唯一性, QQ登录时 值与openId相同,WX登录时 通过后台接口获取。 |
openId |
String |
用户登录态 |
openKey |
String |
用户登录态,对应QQ的openkey、微信的access_token |
payToken |
String |
用于后台支付接口下单,QQ账号下使用 |
pf |
String |
平台标识信息:平台-注册渠道-版本-安装渠道-业务自定义(自定义),最大150字节pfKeyString由平台来源和openkey根据规则生成的一个密钥串,跳转到应用首页后,URL后会带该参数 |
loginResult |
String |
Json串,透传后台返回的票据字段 现阶段为: openid 游戏的openid openkey 游戏的openkey pf 游戏支付用到 pfkey 游戏支付用到 (老版本协议用到, 请忽略这个值) |
channel |
String |
支付渠道标识,支付时透传给后台,后台根据channel从配置文件获取 支付要用到的 offerid和appkeylaunchTypeint透传 管理端配置的 启动游戏时 要触发的活动类型 |
launchParam |
String |
透传 管理端配置的 启动游戏时 要触发的活动需要的参数 JSON串 |
entrance |
String |
分玩法入口标识,"0" = 单发入口, "其他" = 分玩法入口。 "其他" 的值由游戏方直接定义值 |
hallVersion |
String |
大厅包名_大厅版本号_大厅渠道号_大厅内游戏GameID |
加载第三方库协议名及参数
public class LoadSoRequest {
public String callerPkgName; // 必须与大厅提供的包名 和 zip名字中的包名 一致。
public String gameType;
public String soName; //动态库全名称,例如libBugly.so
}
public class LoadSoResponse {
public int resultCode; //登录结果, 0:成功, 其他:不正确。
public String resultMsg; //加载结果说明
public String soName; //动态库全名称,例如libBugly.so
}
加载手机状态协议名及参数
public class PhoneStateRequest {
public String callerPkgName;
public String gameType; //游戏类型: "UNITY", "COCOS"
}
public class PhoneStateResponse {
public int resultCode;
public String resultMsg;
public String chargingState;
public String batteryPct;
public String apnType;
}
参数:
参数名 |
参数类型 |
参数说明 |
resultCode |
int |
登录结果, 0:成功, 其他:不正确。 |
resultMsg |
String |
加载结果说明 |
chargingState |
int |
充电状态: UNKNOWN = 0; NO_CHARGING = 1; CHARGING = 2; AC_CHARGING = 3; USB_CHARGING = 4; |
batteryPct |
int |
剩余电量百分比,值范围:0-100 |
apnType |
int |
网络状态: UNAVAILABLE = -1; UNKNOWN = 0; APN_2G = 1; APN_3G = 2; APN_WIFI = 3; APN_4G = 4; |
打开页面 (反馈、游戏圈、unity内嵌页面)
public class OpenUrlRequest {
public String callerPkgName;
public String gameType;
public String url;
// 选填
public String cookie;
public String cookieDomain;
// 以下选填,unity中显示内嵌webView时使用
public int webViewX;
public int webViewY;
public int webViewWidth;
public int webViewHeight;
public String bgColorStr;
}
参数:
参数名 |
参数类型 |
参数说明 |
callerPkgName |
String |
接口调用方包名 |
gameType |
String |
游戏类型: "UNITY", "COCOS" |
webViewX |
int |
webview 左上角的 X 坐标,建议以屏幕宽度为比例计算 |
webViewY |
int |
webview 左上角的 Y 坐标,建议以屏幕高度为比例计算 |
webViewWidth |
int |
webview 宽度,需要以屏幕宽度为比例计算 |
webViewHeight |
int |
webview 高度,需要以屏幕高度为比例计算 |
bgColorStr |
int |
选填,webview 背景色,#AARRGGBB 或者 #RRGGBB |
url |
String |
要打开的Url,可控制webview显示隐藏(url为空则webview隐藏,url不为空则拉起或跳转到url) |
cookie |
String |
选填,webview 要设置的cookie,需要符合cookie格式,例如"cc=cc;",多个cookie用;分割,如"cc=cc;aa=aa;" |
cookieDomain |
String |
若cookie需要控制domain,则同样按照cookie对应格式填写即可。不需要配置Domain的填"" 控制cookie字段的cookieDomain,如"Domain=.qqgame.com;" 最终生成的cookie为"cc=cc;Domain=.qqgame.com;""aa=aa;Domain=.qqgame.com;" |
public class OpenUrlResponse {
public int resultCode;
public String resultMsg;
}
数据上报协议名及参数
public class UploadLogRequest{
public string roleid;
public string zoneid;
public string gameversion;
public int infotype;
public int elemid;
public int gameid;
public int gametype;
public int roomid;
public int roomtype;
public int uploadType;
public String gameType;
public String callerPkgName;
public int deliverPara;
public string value1;
public string value2;
public string value3;
public string value4;
public string value5;
public string value6;
public string value7;
public string value8;
public string value9;
public string value10;
public string buf1;
public string buf2;
public string buf3;
public string buf4;
public string buf5;
public string buf6;
public string buf7;
public string buf8;
public string buf9;
public string buf10;
}
参数:
参数名 |
参数类型 |
必须字段 |
参数说明 |
roleid |
string |
否 |
角色id(qq的appid) |
zoneid |
string |
否 |
大区id |
gameversion |
string |
否 |
游戏版本 |
infotype |
int |
是 |
上报类型 |
elemid |
int |
否 |
元素id |
gameid |
int |
否 |
大厅分配的gameid |
gametype |
int |
否 |
玩法id |
roomid |
int |
否 |
牌局id |
roomtype |
int |
否 |
场次id |
uploadType |
int |
否 |
数据上报类型,默认填0上报行为数据,1上报qq接入要求的数据,2其他 |
value1-value10 |
string |
否 |
通用参数 |
buf1-buf10 |
string |
否 |
通用参数 |
gameType |
String |
是 |
游戏类型: "UNITY", "COCOS" |
callerPkgName |
String |
否 |
接口调用方包名 |
deliverPara |
int |
否 |
是否回传上报参数(0:不回传; 1:回传) |
public class UploadLogResponse{
public int resultCode;
public String resultMsg;
}
好友关系链协议名及参数
(备注:查询好友关系的接口没有后台接口,游戏使用时候直接拿客户端给返回的openid游戏后台转换为对应的游戏角色即可。不要去其他平台使用查询好友关系的接口)
public class RelationRequest
{
public string relationType; //获取的关系链类型(qq:qq好友;wx:微信好友)
public String callerPkgName; //接口调用方包名
public String gameType; //游戏类型: "UNITY", "COCOS"
}
public class RelationResponse
{
public int resultCode;
public String resultMsg;
public int firendNum;
public String ownerOpenid;
public int loginType;
public String temp;
public ArrayList<Person> persons;
}
参数:
参数名 |
参数类型 |
参数说明 |
resultCode |
int |
上报结果, 0:成功, 其他:不正确。 |
resultMsg |
String |
上报结果说明 |
firendNum |
int |
好友数量 |
ownerOpenid |
String |
自己的owneropenid |
loginType |
int |
登录类型1:QQ账户2:微信账户 |
temp |
String |
临时字段 |
persons |
List<Person> |
好友信息 |
Person对象:
city |
String |
城市 |
country |
String |
国家 |
province |
String |
省份 |
gender |
String |
性别 |
gpsCity |
String |
物理位置 |
pictureSmall |
String |
头像小图,通过url.encode编码 |
lang |
String |
语言 |
nickName |
String |
昵称,通过url.encode编码 |
openId |
String |
玩家openid |
pictureLarge |
String |
头像大图,通过url.encode编码 |
pictureMiddle |
String |
头像中图,通过url.encode编码 |
temp |
String |
通用字段 |
示例:
{
"protocolName": "RelationResponse",
"protocolParam": "{\"persons\":[{\"city\":\"\",\"country\":\"\",\"gender\":\"男\",\"gpsCity\":\"\",\"lang\":\"\",\"nickName\":\"vitopan\",\"openId\":\"E35051562DF439BEE57B8376CEBF953A\",\"pictureLarge\":\"http%3A%2F%2Fq.qlogo.cn%2Fqqapp%2F1106095840%2FE35051562DF439BEE57B8376CEBF953A%2F100\",\"pictureMiddle\":\"http%3A%2F%2Fq.qlogo.cn%2Fqqapp%2F1106095840%2FE35051562DF439BEE57B8376CEBF953A%2F40\",\"pictureSmall\":\"http%3A%2F%2Fq.qlogo.cn%2Fqqapp%2F1106095840%2FE35051562DF439BEE57B8376CEBF953A%2F40\",\"province\":\"\"},{\"city\":\"\",\"country\":\"\",\"gender\":\"男\",\"gpsCity\":\"\",\"lang\":\"\",\"nickName\":\"peter\",\"openId\":\"04BC6F63B8814FD1002951E206A8B75A\",\"pictureLarge\":\"http%3A%2F%2Fq.qlogo.cn%2Fqqapp%2F1106095840%2F04BC6F63B8814FD1002951E206A8B75A%2F100\",\"pictureMiddle\":\"http%3A%2F%2Fq.qlogo.cn%2Fqqapp%2F1106095840%2F04BC6F63B8814FD1002951E206A8B75A%2F40\",\"pictureSmall\":\"http%3A%2F%2Fq.qlogo.cn%2Fqqapp%2F1106095840%2F04BC6F63B8814FD1002951E206A8B75A%2F40\",\"province\":\"\"}],\"ownerOpenid\":\"D4BBC209B21000B9F625386EC10E6F11\",\"loginType\":1,\"firendNum\":2,\"resultMsg\":\"获取好友信息成功\",\"resultCode\":0}",
"protocolVersion": "1.6"
}
QQ会员信息协议名及参数
public class QQVipRequest
{
public String callerPkgName;//接口调用方包名
public String gameType;//游戏类型: "UNITY", "COCOS"
public ArrayList<String> openids;//希望获取的玩家的openid信息,若只查自己的信息,只填写自己的openid即可
}
返回信息:
public class QQVipResponse
{
Public int resultCode;//上报结果, 0:成功, 其他:不正确。
Public String resultMsg; //上报结果说明
Public ArrayList<QQVipInfo> vipinfos;//qqvip信息
}
public class QQVipInfo
{
Public int is_qq_vip;//是不是qq会员,0不是1是
Public int is_qq_year_vip; //是不是年费qq会员,0不是1是
Public int qq_vip_level; //qq会员等级
Public String openids; //玩家openid
Public int is_qq_svip; //是否是qq超级会员,0不是1是
}
WGOpenUrl打开url页面协议名及参数
(此协议主要用在打开腾讯内部第三方web页面)
public class WGOpenUrlRequest
{
public String callerPkgName;//接口调用方包名
public String gameType;//游戏类型: "UNITY", "COCOS"
public String url;//将要拉起的页面
public int type;//0默认为url添加sRoleId、sPartition、sPfkey
public int screenType;//0横屏1竖屏2重力感应,默认横屏
}
返回信息:
public class WGOpenUrlResponse
{
Public int resultCode;//打开url结果, 0:成功, 其他:不正确。
Public String resultMsg; //打开url结果说明
}
唤醒通知协议名及参数
(在应用被第三方应用打开时候,如qq、微信、应用宝等,会通过此接口通知游戏,是哪个第三方应用唤醒了游戏。
该接口属于游戏平台侧主动通知游戏,不需要游戏调用request,但需要游戏处理接收response内容。具体识别方式,对应不同的第三方应用的参数设定。
例如:来自手Q游戏中心的启动,会在extInfo中新增launchfrom字段,该字段值为sq_gamecenter即表示启动来自手Q游戏中心
示例场景:游戏app上架手q游戏中心,在手q游戏中心游戏详情页面可以直接拉起游戏,此时手q游戏中心会通过此接口给游戏传递一些数据,游戏检测到sq_gamecenter标识,即认为此次拉起行为是通过手q游戏中心拉起的,需要后续做一些启动特权的内容)
public class WakeupResponse
{
Public int resultCode;//打开url结果, 0:成功, 其他:不正确。
Public String resultMsg; //打开url结果说明
public int flag = -1;
public String desc = "";
public int platform = 0;
/** 传递的openid */
public String open_id="";
/** 对应微信消息中的mediaTagName */
public String media_tag_name="";
/** 扩展消息,唤醒游戏时带给游戏 */
public String messageExt="";
/** 语言 目前只有微信5.1以上用,手Q不用 */
public String lang="";
/** 国家 目前只有微信5.1以上用,手Q不用 */
public String country="";
public ArrayList<KVPair> extInfo;
}
public class KVPair {
public String key = "";
public String value = "";
}
会员包月协议名及参数
拉起米大师购买会员包月服务(qq会员、qq超级会员等)
public class MonthPayRequest
{
public String callerPkgName;//接口调用方包名
public String gameType;//游戏类型: "UNITY", "COCOS"
/**
* 充值数额是否可改。 true:可改; false:不可改。
*/
public boolean isCanChange;
/**
* 充值次数开通月数,单位“个月”,默认为“1”
* 为0/null/“”时,拉起由支付SDK提供默认值的数量列表界面,并且强制修改
*/
public String saveValue = "1";
/**
* 支付id
*/
public String offerId;
/**
* 默认为开通/续费会员"LTMCLUB"
* 需要开通业务的业务代码
* 开通/续费会员:LTMCLUB
* 开通/续费超级会员:CJCLUBT
* 已经是会员,升级开通超级会员:CJCLUBT(此代码只适用于移动端)
*/
public String serviceCode = "LTMCLUB";
/**
* 默认为"QQ会员"
* 需要定阅的业务名称,将会显示在sdk Title栏、列表栏目,游戏可自行决定
*/
public String serviceName = "QQ会员";
/**
* 默认为1
* 正常开通/续费会员/超级会员:1(会员10元,超会20元)
* 已经是会员,升级开通超级会员:3(支付10元)
*/
public int serviceType = 1;
/**
* 此参数用于后台做统计,取值为申请的aid,aid的申请参考下面文档。
* 例如remark取值:“aid=mvip.youxi.inside.gblnn2_1000001387“
* 注:填写的aid的正确性会作为后续游戏接入会员特权功能完成时,审核通过的依据之一。
* 具体操作是游戏将此字段取值通过log打印出来,并将log截屏提交到游戏上线审核材料中。
* 详细的审核要求请参考另外的文档。
*/
public String remark;
}
返回信息:
参数详细说明见2.2midas支付协议返回参数说明
public class PayResponse implements IProtocol {
public int resultCode;
public String resultMsg;
public int payChannel;
public int payState;
public int providerState;
public int saveNum;
public String extendInfo;
public int realSaveNum;
public String orderno;
}
qq加群绑群协议
一键加入客服群流程
1,以客服群群主QQ帐号登录游戏
2,调用QQGroupRequest, BIND, groupId, groupName, zoneId 按照协议说明自定义。 此时会拉起qq,可以选择到客服群,点击绑定。
3,绑定群成功后会返回 groupOpenid, groupKey。 保存好这个唯一的 groupOpenid。
4,其他玩家帐号登录通过groupOpenid,就可以查询到groupKey。
5, 通过groupKey 可以加群。
公会加绑群组件调用流程(会长态)
公会加绑群组件调用流程(成员态)
public class QQGroupRequest {
public String appId;
public String callerPkgName;
public String gameType;
public final static int QUERY_GROUP = 0;
public final static int BIND = 1;
public final static int UNBIND = 2;
public final static int QUERY_KEY = 3;
public final static int JOIN = 4;
/**
* 0:查询公会绑定的群的信息。(String groupId,String zoneId)
* 1:游戏群绑定:游戏公会/联盟内,公会会长可通过点击“绑定”按钮,拉取会长自己创建的群,绑定某个群作为该公会的公会群
* ( String groupId,String groupName,String zoneId)
* 2:解绑公会当前绑定的QQ群。(String groupOpenid,String groupId)
* 3:询公会绑定群加群时的GroupKey的信息。(String groupOpenid)
* 4:通过游戏加入QQ群。(String qqGroupKey)
*/
public int requestType = 0;
/**
* 公会id,opensdk限制只能填数字,字符可能会导致绑定失败
*/
public String groupId;
/**
* 游戏分区id,opensdk限制只能填数字,字符可能会导致绑定失败
*/
public String zoneId;
/**
* 公会名称
*/
public String groupName;
/**
* 公会绑定的群的群openid
*/
public String groupOpenid;
/**
* 需要添加群的key,可以通过type=3获得
*/
public String qqGroupKey;
}
public class QQGroupResponse{
public int resultCode;
public String resultMsg = "";
public string groupName=""; /*群名称 */
public string fingerMemo="";/*群的相关简介 */
public string memberNum=""; /*群成员数 */
public string maxNum=""; /*该群可容纳的最多成员数 */
public string ownerOpenid=""; /*群主openid */
public string groupId=""; /*与该QQ群绑定的公会ID */
public string zoneId=""; /*大区ID */
public string adminOpenids=""; /*管理员openid。如果管理员有多个的话,用“,”隔开,例如0000000000000000000000002329FBEF,0000000000000000000000002329FAFF */
public string groupOpenid=""; /*和游戏公会ID绑定的QQ群的groupOpenid */
public string groupKey=""; /*需要添加的QQ群对应的key */
}
qq发送群消息
public class QQSendGroupMsgRequest{
public String appId;
public String callerPkgName;
public String gameType;
public String groupOpenid;
public String title;
public String desc;
public String imageUrl;
public String redirectUrl;
public String param;
}
入参说明
参数名称 |
类型 |
描述 |
groupOpenid |
String |
分享指定群的key(群openid) |
title |
String |
消息标题,最长45字节 |
desc |
String |
消息摘要,最长60字节 |
imageUrl |
String |
消息左侧缩略图URL |
redirectUrl |
String |
回调地址 (第三方应用在上架时配置的回调地址,不得填写其它域名地址) |
param |
String |
redirect_url的输入参数,第三方可根据此参数来跳转到不同详情页(非必填,不填或者为空则系统默认为none) |
public class QQSendGroupMsgResponse{
public int resultCode;
public String resultMsg = "";
public String isLost;//表示是否丢数据,1表示丢数据,0表示数据完整
}
微信加群协议
public class WXGroupRequest {
public String appId;
public String callerPkgName;
public String gameType;
public final static int QUERY_GROUP = 0;
public final static int CREATE = 1;
public final static int JOIN = 2;
/**
* 一个微信帐号每天最多只能创建一个微信工会群,必须等24小时之后才能创建新的微信群。
* 一个微信帐号在一款游戏下只能创建5个微信工会群,并且创建的微信工会群不能被删除。因此调试时如果创建了多余5个该游戏的群,就需要换一个帐号创建工会群。
*
* 0:游戏内查询公会微信群信息,用于检查是否创建微信公会群以及对应用户是否加入群。(String groupId,String openIdList)
* 1:游戏内创建公会微信群。(String groupId,String chatRoomName,String chatRoomNickName)
* 2:游戏内加入公会微信群。(String groupId,String chatRoomNickName)
*/
public int requestType = 0;
/**
* 公会id
*/
public String groupId;
/**
* 待检查是否在群里的用户openid列表,逗号分割
*/
public String openIdList;
/**
* 聊天群名称
*/
public String chatRoomName;
/**
* 用户在聊天群的自定义昵称
*/
public String chatRoomNickName;
}
public class WXGroupResponse {
public int resultCode;
public String resultMsg = "";
public String openIdList = "";
public String memberNum = "";
public String chatRoomURL = "";
}
后台分享(不拉起qq或微信)
请求协议:BackgroundShareRequest
请求参数:
public class BackgroundShareRequest{
public String appId;
public String callerPkgName;
public String gameType;
/**
* 分享目标玩家的openid
*/
public String openId;
/**
* 标题
*/
public String title;
/**
* 概要信息
*/
public String summary;
/**
* qq专用;分享缩略图Url;只能为网络图片Url
*/
public String imgUrl;
/**
* qq专用;游戏中心详情页地址
*/
public String targetUrl;
/**
* qq专用;预览文字,可选
*/
public String previewText;
/**
* qq专用;
* 标识消息类别,可选。
* "MSG_INVITE" : 邀请
* "MSG_FRIEND_EXCEED" : 超越炫耀
* "MSG_HEART_SEND" : 送心
* "MSG_SHARE_FRIEND_PVP" : PVP对战
*/
public String gameTag;
/**
* wx专用;
* 游戏自定义透传字段
*/
public String messageExt;
/**
* wx专用;
* 此值会传到微信供统计用, 有下列值可选填。
* "MSG_INVITE" : 邀请
* "MSG_SHARE_MOMENT_HIGH_SCORE" : 分享本周最高到朋友圈
* "MSG_SHARE_MOMENT_BEST_SCORE" : 分享历史最高到朋友圈
* "MSG_SHARE_MOMENT_CROWN" : 分享金冠到朋友圈
* "MSG_SHARE_FRIEND_HIGH_SCORE" : 分享本周最高给好友
* "MSG_SHARE_FRIEND_BEST_SCORE" : 分享历史最高给好友
* "MSG_SHARE_FRIEND_CROWN" : 分享金冠给好友
* "MSG_friend_exceed" : 超越炫耀
* "MSG_heart_send" : 送心
*/
public String mediaTagName;
}
public class BackgroundShareResponse {
public int resultCode;//0分享成功-1取消分享-2分享失败
public String resultMsg = "";
}
Launcher 相关协议
打开Launcher
public class LauncherRequest {
public String gameType;
public int actionId;
}
参数名 |
参数类型 |
参数说明 |
gameType |
String |
游戏类型: "UNITY", "COCOS" |
actionId |
int |
动作Id int UNKNOWN = 0;//无效Id int OPEN_LAUNCHER = 1;//打开launcher int OPEN_MAIN = 2;//打开主页 int SHOW_NOTICE = 3;//打开公告 int SHOW_COMPARE = 4;//打开排行榜
|
附近的游戏好友请求
public class LBSRequest {
public String callerPkgName;
public String gameType;
public int type;
}
参数名 |
参数类型 |
参数说明 |
callerPkgName |
String |
接口调用方包名 |
gameType |
String |
游戏类型: "UNITY", "COCOS" |
type | int |
0:获取附近的人 1:清空自己的位置信息 2:获取自己的位置信息接口 |
public class LBSResponse extends BaseResponse {
public int playerNum;
public String ownerOpenid;
public int requestType;
public ArrayList<Person> persons;
public double longitude;
public double latitude;
}
public class Person {
public String city;
public String country;
public String province;
public String gender;
public String gpsCity;
public String pictureSmall;
public String lang;
public String nickName;
public String openId;
public String pictureLarge;
public String pictureMiddle;
public String temp;
}
参数名 |
参数类型 |
参数说明 |
playerNum |
int |
附近的玩家数量 |
ownerOpenid |
String |
请求的玩家id |
requestType |
int |
请求类型,对应返回request中的type数值
|
persons |
Json |
玩家信息 |
longitude |
double |
位置经度 |
latitude |
double | 位置维度 |