360SDK手游直充

2018-10-10 13:57 更新

1.介绍和流程


1.1介绍

下载360安全支付apk:https://pay.360.cn/index/mobile   打开apk点击首页的手游充值

2.pic.jpg1.pic.jpg

1.2交易流程

2322.png




2.根据qid查询玩家信息


2.1重要名词说明

qid:360平台用户ID的简称;

app_key:游戏编号;

server_id:游戏区服编号,由游戏自行编号,只支持可见ASCII字符,最大长度为8字节;

server_name:游戏区服名称;

2.2功能说明

2.3请求地址

2.4接口方式

表单请求(GET),JSON应答,字符集为UTF-8


2.5请求参数字典

参数参数名称类型(最大长度)参数说明是否可空描述
qid360用户IDnumber 

不可空

 
app_key游戏编号string 不可空 
timestamp时间戳numberUNIX时间戳不可空 
sign签名string 不可空 

签名:

$sign = md5($app_key#$qid#$timestamp)

请求样例:

http://game_url/?qid=1010100013&app_key=1234567890abcdefghijklmnopqrstuv&timestamp= 1409049619&sign=6414bcc9bd30773808e761d377f67fbd

签名样例:

假设$app_secret= a3e3330c5a6c97d9d4a9e11b2b92f327

md5(1234567890abcdefghijklmnopqrstuv#1010100013#1409049619#a3e3330c5a6c97d9d4a9e11b2b92f327)


2.6应答参数字典

应答结果:应答为一个JSON报文。报文的编码格式为UTF-8。

参数

参数名称类型(最大长度)参数说明是否可空描述
result_code查询应答码string 不可空查询应答码,0000为成功,其他为失败
result_msg查询应答信息string 可空查询应答信息
record,timestamp返回时间戳number 不可空UnixTimeStamp
record,user_info玩家信息string

单笔格式为:

区服编号^区服名称(url编码)^角色名称(url编码)^性别^最后登陆时间^在线时长^帮派或阵容(url编码)^职业^角色等级^角色状态^经验值^角色创建时间

多笔用“|”分割
不可空

所有中文原始编码为UTF-8

区服编号游戏自己的编号,唯一确定一个区服,将在游戏充值的接口中原样返回给游戏,用来定位区服;

区服名称url编码,会展示给用户确认

角色名称url编码后的玩家在游戏中的角色名称;

性别m:男,f:女,u:未知或其他;

在线时长:单位秒;

最后登录时间UnixTimeStamp;

角色状态是否禁用 0/1;

角色创建时间UnixTimeStamp;

除区服编号、区服名称和角色名称为必须返回的参数外,其他参数为可空参数

3.手游充值

3.1功能说明

玩家在直充平台扣款后,直充平台通知游戏给用户加游戏币。

3.2请求地址

3.3接口方式

表单请求(GET/POST),JSON应答,字符集为UTF-8

3.4请求参数字典

参数

参数名称
类型(最大长度)参数说明是否可空描述
qid
360用户IDnumber 

不可空

如:105060140
app_key游戏编号string 不可空
 
server_id区服编号string游戏在查询接口中返回的区服编号不可空 
user_role
角色名称
string
游戏在查询接口中返回的区服编号可空
 
order_id
订单号
string
360直充平台订单号
不可空
最大长度64位的ASCII字符串
amount
充值金额
number
充值金额,单位分
不可空
如20
sign交易签名string签名
不可空sign=b309bff0edac2aa6e3ea7a2e9af7c940

签名:

$sign = md5($amount#$app_key#$order_id#$qid#$server_id)

请求样例:

http://game_url/?qid=1010100013&app_key=1234567890abcdefghijklmnopqrstuv&server_id= S1&order_id=ZC14082600001&amount=3000&sign=6414bcc9bd30773808e761d377f67fbd

签名样例:

假设$app_secret= a3e3330c5a6c97d9d4a9e11b2b92f327

md5(3000#1234567890abcdefghijklmnopqrstuv#ZC14082600001#1010100013#S1#a3e3330c5a6c97d9d4a9e11b2b92f327)

3.5应答参数

应答结果:应答为一个JSON报文。报文的编码格式为UTF-8。

参数

参数名称
类型(最大长度)参数说明是否可空描述
result_code
应答码
string
 不可空
应答码,ok为成功,如果回应其他值或者不回应,则被认为通知失败,360 会尝试多次通知。这个机制用来避免掉单。游戏应做好一条订单收到多次通知的准备,防止多次加钱。同时,需要特别注意的是,回应的 ok 表示游戏已经正常接到消息,无需继续发送通知。它不表示订单成功与否,或者应用处理成功与否。对于重复的通知,游戏如果发现订单已经成功处理完毕,无需继续处理,也要返回 ok。否则,360 会认为未成功通知,会继续发送通知
result_msg应答信息string 可空应答信息
record,timestamp返回时间戳number 不可空UnixTimeStamp

record,game_amount

充值的游戏币个数number 不可空 

4.数字签名算法


4.1描述

必选参数必须有值,而且参数值必须不为空,不为0。字符集为 utf-8。

所有不为空,不为 0 的参数都需要加入签名,参数必须为做 urlencode 之前的原始数值.  如中文金币,作为参数传输时编码为%E9%87%91%E5%B8%81,做签名时则要用其原始中文值金币(注意字符集必须是UTF-8)。

对所有不为空,不为0的参数按照参数名字母升序排列(如 php 的 ksort 函数)

使用符号#拼装排序后的参数值,最后用#连接应用的 app_secret,整体用 md5 计算签名,就是 sign 参数的值。注意有些语言的 md5 计算结果里字母为大写,需要转化为小写。

4.2签名示例代码

4.3PHP

function sign($params,$key)
{/*{{{*/
ksort($params);
reset($params);
$sign = '';
foreach ($params as $index => $value)
{
if ('sign' == $index || empty($value))
{
continue;
}
$sign.= $value.'#';
}
$sign .= $key;
$sign_value = md5($sign);
 
return $sign_value;
}/*}}}*/


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号