跳到主要内容

支付回调

1、支付流程图

2、充值回调接口(项目必须提供)

接口描述:用于向游戏添加游戏币。(如果有充值失败的情况,会用同一个订单号来进行补单请求)

接口提供方:由项目(游戏)开发人员提供,必须含正式和测试的两个接口地址。

输入参数:JSON

输入参数举例:{"accountid":"1350000001", "areaid":"1", "orderid":"14284108827665633280", "paytime":"20190101010300", "money":6, "source":1707, "productid":"com.dianhun.test.a001", "productname":"com.dianhun.test.a001", "param":"", "remark":"", "region":"0", "currency":"USD" , "sign":"f16bb5008c0da22aff0bb7aee75bf900"}

输入参数说明

序号变量名类型长度说明
1orderidString20订单号id(唯一),SDK服务端生成的订单号
2accountidString20账号数字id,对应客户端接入支付的[uid]参数
3areaidString4支付服务器标识,对应客户端接入支付的[aredId]参数具体请参考下面 【6、说明】
4paytimeString14充值时间YYYMMDDHHmmss(位数固定,24小时制)
5moneyInt4对应客户端接入支付的[price]参数,国内单位为元,海外金额单位为分,建议必须校对商品id跟金额是否一致
6sourceInt4充值来源
7productidString30商品id,对应客户端接入支付的[proId]参数, 建议校对商品id跟金额是否一致
8productnameString30商品名,对应客户端接入支付的[proName]参数
9paramString200透传参数,对应客户端接入支付的[memo]参数,根据下单的值原样返回,请勿使用JSON字符串或者JSON对象转换成的字符串
10remarkString200透传参数,对应客户端接入支付的[remark]参数,游戏自定,param 不足时使用,请勿使用JSON字符串或者JSON对象转换成的字符串【历史字段,已经废弃使用】
11regionString4地区。1:中国大陆;0:港澳台及海外
12currencyString3货币单位,国际货币标准单位,比如:CNY
13sandboxString2是否测试订单,1:测试订单;0:正式
14signString20加密参数,加密规则:加密字符串MD5 accountid+areaid+money+orderid+paytime+productid+source+appkeyappkey的值跟登录的appkey是同一个。例如:accountid:1350000001 areaid:1money:6ordered:14284108827665633280paytime:20190101010300productid:com.dianhun.test.a001source:1010appkey:12345678加密前的值:1350000001161428410882766563328020190101010300com.dianhun.test.a001101012345678 加密后: f16bb5008c0da22aff0bb7aee75bf900

输出参数:Json

序号变量名类型长度说明
1statusStringok查询成功fail查询失败,paramerror参数错误,repeat 订单号重复 (如游戏返回重复,我们认为成功,其他的错误继续提交) othererror 其他错误

3、角色信息查询接口(主体线下与海外线下充值必须提供)

接口描述:用来充值时判断此大区有无相关角色信息

接口提供方:由项目(游戏)开发人员提供,必须含正式和测试的两个接口地址。

信息

一个账号同一大区有多角色的情况下,角色ID可以通过透传来处理

输入参数:Json

输入参数举例:{"areaid":"2", "accountid":"123456", "param":"memo", "region":"1"}
序号变量名类型长度说明
1accountidString20账号数字id
2areaidString4支付服务器标识,对应客户端接入支付的[aredId]参数,多大区的情况,具体请参考下面 【6、说明】
3paramString200透传参数,对应客户端接入支付的[memo]参数,游戏自定;根据下单的值原样返回;请勿使用JSON字符串或者JSON对象转换成的字符串
4regionString4地区。1:中国大陆;0:港澳台及海外

输出参数:Json

序号nameDataTypeLenDescription
1statusString必须输出。ok:成功;fail:角色不存在
2accountString账号数字id
3areaidString大区id
4nameString角色名字

4、账号信息查询接口(海外线下网页充值必须提供)

接口描述:用来海外网页充值时查询相关的账号ID和大区ID信息

接口提供方:由项目(游戏)开发人员提供,必须含正式和测试的两个接口地址。

输入参数:JSON

序号变量名类型长度说明
1playeridString20游戏角色ID
2areaidString4大区ID,如果角色ID能够确认账号ID,则这个参数传0。

输出参数:JSON

序号nameDataTypeLenDescription
1statusString必须输出。ok:成功;fail:角色不存在
2accountString账号数字id
3areaidString大区id
4nameString角色名字
5areanamestring大区名称

5、游戏大区查询接口(废弃)

接口描述:用于获取大区信息(不需要开线下充值的不需要提供此接口)

接口提供方:由项目(游戏)开发人员提供,必须含正式和测试的两个接口地址。

输入参数:JSON

序号变量名类型长度说明

输出参数:JSON

序号变量名类型长度说明
1areaidString大区id
2nameString大区名称
3statusString大区状态(1新开,2爆满,3推荐,4维护,5测试)
4channelString大区渠道标识AppStore:就是正版iOS all:所有渠道 other:除了AppStore,dh,应用宝的其他渠道yyb:应用宝
例如:[{"areaid":"1","name":"游戏1区","status":"ok","channel":"AppStore"}]
注意

开区频次较高的游戏,大区信息更新和添加大区的时候需要请求接口地址,来刷新缓存,具体接口地址请联系相关开放人员。

6、说明

警告

请求方式统一为:POST;数据格式统一用:JSON

警告

以上接口请分别提供正式环境、测试环境两个接口地址

注意

限购道具,需游戏自己增加逻辑处理(如果在回调的时候返回限制结果,

但是实际用户已经支付成功了

注意

充值回调必须校验金额和商品id是否匹配,根据传入的商品id来进行发货处理。

如果透传字段放了游戏的订单号,也必须校验订单号跟传入的金额是否匹配。

信息

支付服务器标识(充值回调,角色查询中的areaid)

100:测试 ,会回调提供的测试地址 9999:iOS提审服,会回调提供的提审地址

PS:明确不开线下充值的游戏,海外网页充值的情况下,整个流程的支付服务器标识可以固定成上面几个值,支付服务器会根据固定的这几个值来区分调用不同的回调地址和角色查询地址。如果查询角色,充值如果要区分大区ID来匹配处理,可以使用透传参数的方式来处理。

目前平台默认回调一个地址(除测试提审之外),如果需要分发不同回调地址,默认是游戏进行分发逻辑;平台侧也可以支持分发逻辑处理 1、根据 areaid(游戏客户端调用SDK充值接口给的areaid)来进行回调分发不同的地址。 2、根据游戏,在提供的回调地址上增加 areaid 路由:callback/{areaid} ,可以游戏根据这个规则进行不同地址分发。 3、根据 source(充值来源)回调分发不同的地址。

信息

一个账号同一大区有多角色的情况下,角色ID可以通过透传来处理