平台充值

目录

应用宝平台充值项目

1、背景及目的

(1)平台方:为主动拉动游戏流水,平台通过活动、奖励等方式,刺激应用宝活跃用户在客户端内为游戏充值。
(2)游戏方
①获得额外曝光资源:仅支持该能力的游戏可在页面曝光
②提高付费率及付费arpu:对支持该能力的游戏充值才可参加活动,充值越多、奖励越大
③提升游戏分发量:参加该活动获得奖品,必须在支持该能力的游戏内创建角色;若无,则需先下载安装

2、承载形式

用户访问应用宝客户端活动(充值夺宝)页面,选择单款游戏、发起支付,为当前页面登录帐号在游戏内的角色充值。

pingtaichongzhi_01.png
• 不存在A用户给B用户充值的情况,用QQ号1234567登录应用宝活动页面,只能对该QQ号(1234567)在游戏内的角色充值 • 人民币直接充值到游戏内账户
• QQ号1234567在游戏A内可能有多个角色,单笔充值仅对游戏A内的其中一个角色进行
• 用户可以自定义充值额度(最低1元人民币,但不可带小数点),充值成功后由米大师发放游戏币
• 该充值能力与游戏内现有支付渠道相互独立、互不干扰,不影响分成比例

3、游戏方须完成【非常重要!!!】

提供接口透传信息,确保能够顺利发起
情况①:游戏内不存在分区分服——告知应用宝方,无需开发接口
情况②:游戏内分区分服、同一个账户在同区服内只有1个角色(或者同一个账户在同区服内存在多个角色、但财富共享)——见附录、提供接口“一、拉取区服信息”
情况③:游戏内分区分服、同一个账户在同区服内有多角色(角色之间财富不共享),如QQ号(1234567)在游戏A内存在角色X、角色Y——见附录、提供接口“一、拉取区服信息”及“二、拉取用户角色信息接口”

4、游戏方需告知游戏币托管模式【非常重要!!!】

情况一:托管:充值完毕后,米大师发货,游戏每一次对货币的操作都需要通过调用midas接口
情况二:伪托管1:道具直购
情况三:伪托管2:米大师通知——充值完毕后,米大师通知游戏方,游戏方校验余额是否有变更,若变更即发货
情况四:伪托管3:游戏方请求余额——充值完毕后,游戏方请求余额,若变更即发货,通过异步同步的方式维护

5、游戏方需提供奖品【非常重要!!!】

(1)活动形式
类似现有“一元夺宝”的活动形式,用户选择投注奖品后,再向赞助该奖品的游戏内充值,成功后获得夺宝的幸运码、且游戏内账户增加对应额度的游戏币。
pingtaichongzhi_02.png
(2)提供奖品的数量决定该游戏承包的活动期数,同一个游戏提供的同一个奖品活动不同时进行,即:花千骨提供10张100元话费卡,第1张进入开奖计算后,才开始第2张的活动
pingtaichongzhi_03.png
(3)内容要求
①具有公认价值、游戏用户喜爱的硬通货,储值卡、电子产品、游戏周边、游戏内道具
如京东卡、话费卡、华为P9、游戏官方手办、钻石(道具)等
②单奖品价值低于5000元
③不出现苹果系产品
(4)先沟通奖品内容和数量,实物奖品统一寄送至平台,由平台寄送给到用户。道具奖品提供cdkey礼包码,由平台统一分发。

应用宝游戏拉取区服和角色接口信息,通知游戏发货信息

Author:jarryli、tedlin

特别注意!!!
1 确定游戏托管类型,大部分游戏都是伪托管,伪托管需要midas扣款。
2 游戏务必要做好防重入,即对同一个订单只发货一次。
3 游戏必须严格校验签名。
4 游戏按照接入文档,编写发货接口(本文档第三部分),无需调用扣款接口,由应用宝进行扣除。
5 游戏发货服务器,如有可能,部署于上海腾讯云上,加快访问速度。
6 建议与游戏内现有的首充赠送/返利相互独立:应用宝客户端充值为自定义额度(最低1元),建议用户在应用宝客户端的充值不享受游戏内的优惠及赠送,具体处理方式由游戏方决定。


一、拉取区服信息(只拉取在应用宝渠道的区服信息)

接口形式:
http://xxxxx.xxx.xxx?timestamp=xxx&appid=xxx&area=xxx&sig=xxx&....

参数 类型 说明 可选
timestamp Long long 发请求的时间戳,精确到秒。游戏侧收到请求后可验证timestamp与当前请求是否超过5分钟,如果超过5分钟,可认为请求无效直接丢弃。 必选
appid Unsigned int 手Q的appid(如果是用户是微信id,也是用手Qappid) 必选
area string 标示拉取的区服是QQ区的还是微信区的 必选
sig String 请求串的签名,签名方式跟开平签名sig参数一致。游戏侧收到请求后可以匹配根据算法算出来的sig,比对参数中的sig,作为安全保证 必选
... 其他游戏侧需要的自定义参数 可选

返回格式:

{
“ret”:0,		//<font color=red>注意,这里返回一定要是数字,不能是字符串!</font>
“msg”:”xxxx”
“list”:[
{
“id”:”12”,
”name”:”QQ12区 热带雨林”,	//注意,这边的编码要是utf-8!
“type”:1	//<font color=red>注意,这里返回一定要是数字,不能是字符串!1-只用于qq;2-只用于微信;3-微信或qq</font>
},{...},...
]
}
参数 类型 说明 可选
ret int 返回值,标示请求是否成功,一定要是数字 必选
msg string 调用接口是的附加信息,成功或者失败信息 必选
list array 拉取成功时的区服列表,列表内是obj list,每个obj为

id:string 游戏区服id,必选
pay id:string
支付区服id,必选
name:string 区服名字,跟用户选区的名字一致,必选
type:int 区的类型,1-qq,2-微信,3-qq和微信通用

成功时必选
... 其他游戏侧需要的参数 可选


标准返回码:
0:拉取成功
1:请求参数timestamp已过期
2:sig参数错误
100~1000:其他自定义失败错误码
正确的返回示例:
成功:

{"ret":0,"msg":"OK",”list”:[{“id”:”1”,”name”:”1区”,”type”:1},{“id”:”2”,”name”:”2区”,”type”:1}]}

失败:

{"ret":1,"msg":"参数错误"}

错误的返回示例:

__CallBack({"ret":”101”,"msg":"参数错误"});

二、拉取用户角色信息接口

接口形式:</div> http://xxxxx.xxx.xxx?openid=xxx&timestamp=xxx&appid=xxx&area=xxx&partition=xxx&sig=xxx&....</div>

参数 类型 说明 可选
timestamp long long 发请求的时间戳,精确到秒。游戏侧收到请求后可验证timestamp与当前请求是否超过5分钟,如果超过5分钟,可认为请求无效直接丢弃。 必选
appid unsigned int 手Q的appid(如果是用户是微信id,也是用手Qappid必选
area string 标示拉取的区服是QQ区的还是微信区的 必选
sig string 请求串的签名,签名方式跟开平签名sig参数一致。游戏侧收到请求后可以匹配根据算法算出来的sig,比对参数中的sig,作为安全保证

必选

openid string 用户登录游戏获取到的id 必选
partition string 用户选的区id 必选
pkey string 为了加强安全性的参数,计算方法为

Md5(openid appkey timestamp)
系统使用手Q的appkey
openid=aaa,appkey是ccc,timestamp时间是1399541144,则
pkey=md5(aaaccc1399541144)= de2e41905a65fe507d0da7db91b34ff9
游戏侧可以通过参数中的openid、游戏的appkey、参数中的timestamp来计算pkey,然后比对参数中的pkey,判断请求是否有效

必选
... 其他游戏侧需要的自定义参数 可选

返回格式:

{
“ret”:0,		//注意,这里返回一定要是数字,不能是字符串!
“msg”:”xxxx”
“list”:[
{
“roleid”:”12”,	//角色id,字符串
”rolename”:”~大鸟玩家*h”,	//注意,这边的编码要是utf-8!
},{...},...
]
}
参数

类型 说明 可选

ret int 返回值,标示请求是否成功,一定要是数字 必选
msg string 调用接口是的附加信息,成功或者失败信息 必选
list array 拉取成功时的区服列表,列表内是obj list,每个obj为

roleid:string 角色id,跟支付的角色id一致,必选
rolename:string 用户展示的角色名,跟用户游戏中的角色一致,必选

成功时必选
... 其他游戏侧需要的参数 可选

标准返回码:
0:拉取成功
1:请求参数timestamp已过期
2:sig参数错误
3:pkey参数错误
100~1000:其他自定义失败错误码
正确的返回示例:
成功:

Content-type: text/html; charset=utf-8
{"ret":0,"msg":"OK",”list”:[{“roleid”:”1124129”,” rolename”:”驽鸟玩家111”},{“roleid”:”212452”,” rolename”:”疯狂的大鸟$$$”}]}

失败:

Content-type: text/html; charset=utf-8
{"ret":1,"msg":"参数错误"}

错误的返回示例:

__CallBack({"ret":”101”,"msg":"参数错误"});

三、通知游戏发货接口

接口形式:
http://xxxxx.xxx.xxx?timestamp=xxx&appid=xxx&openid=xxx&pkey=xxx&partition=xxx&roleid=xxx&billno=xxx&midas_billno=xxx&money=xxx&gold=xxx&area=xxx&sig=xxx...

参数 类型 说明 可选
timestamp long long 发请求的时间戳,精确到秒。游戏侧收到请求后可验证timestamp与当前请求是否超过5分钟,如果超过5分钟,可认为请求无效直接丢弃。 必选
appid unsigned int 手Q的appid(如果是用户是微信id,也是用手Qappid必选
area string 标示拉取的区服是QQ区的还是微信区的,qq 或 wx 必选
sig string 请求串的签名,签名方式跟开平签名sig参数一致。游戏侧收到请求后可以匹配根据算法算出来的sig,比对参数中的sig,作为安全保证 必选
openid string 用户登录游戏获取到的id 必选
partition string 用户选的区id 必选
pkey string 为了加强安全性的参数,计算方法为

Md5(openid appkey timestamp)
系统使用手Q的appkey
openid=aaa,appkey是ccc,timestamp时间是1399541144,则
pkey=md5(aaaccc1399541144)= de2e41905a65fe507d0da7db91b34ff9
游戏侧可以通过参数中的openid、游戏的appkey、参数中的timestamp来计算pkey,然后比对参数中的pkey,判断请求是否有效

必选
... 其他游戏侧需要的自定义参数 可选
billno string 在应用宝中生成的订单号,根据这个做防重入 必选
roleid string 用户选择的角色id 必选
midas_billno string Midas生成的订单,游戏侧可以通过这个订单号查询消费结果 必选
money string 用户使用的rmb 必选
gold string 需要发游戏币的数量 必选

返回格式:

“ret”:0,		//注意,这里返回一定要是数字,不能是字符串!
“msg”:”xxxx”
}
参数 类型 说明 可选
ret int 返回值,标示请求是否成功,一定要是数字 必选
msg string 调用接口是的附加信息,成功或者失败信息 必选
... 其他游戏侧需要的参数 可选

标准返回码:
0:已成功发货
1:请求参数timestamp已过期
2:sig参数错误
3:pkey参数错误
101:该openid没有注册游戏/该openid在该区没有角色
200~1000:其他自定义失败错误码
正确的返回示例:
成功:

Content-type: text/html; charset=utf-8 {"ret":0,"msg":"OK"} </br>

失败:

Content-type: text/html; charset=utf-8 {"ret":1,"msg":"参数错误"}

错误的返回示例:

__CallBack({"ret":”101”,"msg":"参数错误"});

以上信息是否解决您的问题?

Copyright © 1998 - 2017 Tencent. All Rights Reserved.

腾讯公司 版权所有

有问必答 返回顶部