android新浪登录接口,新浪游戏AndroidSDK接入文档—服务端.md

# SNG联运游戏平台接口文档ForCP(服务端)

## 1.用户接口

### 1.1.用户信息校验接口(服务端)

http://m.game.weibo.cn/api/sdk/user/check.json

用于用户身份校验。

#### 支持格式

JSON(返回为json,请求为标准http form的格式)

#### 接口登录密钥signature key,请联系新浪游戏运营人员索取

#### HTTP请求方式

POST

#### 提交参数说明

参数字段 | 类型|说明 | 必选

--------|-------------|--------|---

suid|string | 用户的编号 | true

appkey|string | 当前游戏的key | true

deviceid|string | 设备id | true

token|string | 用户身份标识 | true

signature|string | 签名串,计算方式见3.2 | true

#### 返回参数说明

参数字段 | 类型|说明

------------| -------------|-------------

suid|string|

token |string |

usertype|string|账号类型:1 快速试玩 2手机 3新浪通行证 99微博

#### 返回示例

```json

{

"suid": "3508971941",

"token": "tXvasFVztJrB7ebc06600eFVEXdB",

"usertype":1

}

```

####测试示例

----------

### 1.2.用户实名信息接口(服务端)

[http://m.game.weibo.cn/api/sdk/user/get_user_cert_status.json](http://m.game.weibo.cn/api/sdk/user/get_user_cert_status.json)

用于用户实名认证信息获取。

#### 支持格式

JSON(返回为json,请求为标准http form的格式)

#### 接口登录密钥signature key,请联系新浪游戏运营人员索取

#### HTTP请求方式

POST

#### 提交参数说明

参数字段 | 类型|说明 | 必选

--------|-------------|--------|---

suid|string | 用户的编号 | true

appkey|string | 当前游戏的key | true

token|string | 用户身份标识 | true

signature|string | 签名串,计算方式见3.2 | true

#### 返回参数说明

参数字段 | 类型|说明

------------| -------------|-------------

suid|string|

certification |int |是否已实名认证:1是 0否

is_adult |int|是否为成年人:1是 0否

age |int|年龄

birthday |string|生日

cert_id |string|实名认证号码md5信息

#### 返回示例

```json

{

"suid": "3508971941",

"certification":1,

"is_adult":1,

"age":31,

"birthday":"19890101",

"cert_id":"d41d8cd98f00b204e9800998ecf8427e"

}

```

####测试示例

----------

## 2.支付接口

### 2.1.回调接口由开发商提供

与上述各接口不同,回调接口由各家CP各自进行开发和部署,遵循一致的规范,供手机微游戏调用。

#### 接口加密密钥,请使用游戏的 appsecret

#### HTTP请求方式

GET

#### 提交参数说明

参数字段 | 类型|说明 | 必选

--------|-------------|--------|---

order_id|string | 调用下单接口获取到的订单号 | true

amount|int | 支付金额,单位 分 | true

order_uid|string | 支付用户id | true

source|string | 应用的appkey | true

actual_amount|int | 实际支付金额,单位 分 | true

pt|string|透传参数(该参数的有无决定于下单时有没有上传pt参数) | true

signature|string |用于参数校验的签名,生成办法参考附录一| true

#### 返回参数说明

```

http状态码应为200,返回结果为字符串OK,且必须是大写。

```

####测试示例

----------

##3.附录

### 3.1.接口错误的返回格式

```json

{

"request" : "/rank/show",

"error_code" : "10013",

"error" : "Invalid weibo user"

}

```

#### 返回参数说明

参数字段 | 类型|说明

------------| -------------|-------------

request|string| 请求的url

error_code |string |具体含义请参考http://open.weibo.com/wiki/Error_code

error|string|错误的说明

### 3.2.用户信息接口签名机制

####1、签名规则

```

a)参数signature不参与签名

b)值为空的参数,也需要参与签名

c)若参数中包含特殊字符,例如中文,&,%,@等, 需要在签名之后进行url_encode

d)目前仅支持md5方式签名

```

####2、签名步骤

```

a)将所有待签名参数按参数名排序(字母字典顺序,例如PHP的ksort()函数)

b)把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,组成字符串A

c)signature_key是新浪游戏分配的登录密钥,请联系新浪游戏运营人员索取

d)将字符串A与signature_key,用英文竖杠进行连接, 得到字符串C,对字符串C取md5值,得到字符串D,D就是所需要的签名

```

####3、示例

```

/**

* 生成签名结果

* @param $params 已排序要签名的数组

* @param $sina_secret 新浪游戏运营人员分配的登录密钥

* return 签名结果字符串

*/

public static function buildRequestMysign($params, $signature_key)

{

if (!isset($params['appkey'])) return '';

if (empty($signature_key)) return '';

if (isset($params['signature'])) unset($params['signature']);

//将所有待签名参数按参数名排序

ksort($params);

//把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,组成字符串A

$str_A = self::_createLinkstring($params);

//将字符串A与signature_key,用英文竖杠进行连接, 得到字符串C

$str_C = sprintf('%s|%s', $str_A, $signature_key);

//对字符串C取md5值,得到字符串D,D就是所需要的签名

$str_D = md5($str_C);

return $str_D;

}

/**

* 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串

* @param $para 需要拼接的数组

* return 拼接完成以后的字符串

*/

private static function _createLinkstring($para)

{

$arg = '';

while (list ($key, $val) = each ($para)) {

$arg .= $key.'='.$val.'&';

}

//去掉最后一个&字符

$arg = substr($arg, 0, -1);

//如果存在转义字符,那么去掉转义

if(get_magic_quotes_gpc()){$arg = stripslashes($arg);}

return $arg;

}

```

### 3.3.支付接口签名机制

####1、签名规则

```

a)参数signature不参与签名

b)用于计算时参数取值不要做urlencode。

c)根据pt参数的有无,决定是否加上pt参数

```

####2、签名步骤

```

a)将所有待签名参数按参数名排序(字母字典顺序,例如PHP的ksort()函数)

b)把数组所有元素,按照“参数|参数值”的模式用“|”字符拼接成字符串,组成字符串A

c)将字符串A与 appsecret,用英文竖杠进行连接, 得到字符串B,对字符串B取sha1值,得到字符串C,C就是所需要的签名

```

####3、示例

```

http://test.game.weibo.cn/paysys/pay.php?amount=1&desc=test&from=101010001000&method=order&pt=qwertyuiopasdfghjkl1234567890&sessionkey=sessionkey&source=3093918086&uid=1985490674&signature=6a158cafc6fbd3a94310196356c2b29c43abc975

则计算签名值的方法为:

sha1(“amount|1|desc|test|from|101010001000|method|order|pt|qwertyuiopasdfghjkl1234567890|sessionkey|sessionkey|source|3093918086|uid|1985490674|appsecret”)

/**

* 生成签名结果

* @param $para_sort 已排序要签名的数组

* return 签名结果字符串

*/

public static function buildRequestMysign($secret)

{

if (empty($_REQUEST)) return FALSE;

if (isset($_REQUEST['signature'])) unset($_REQUEST['signature']);

//将所有待签名参数按参数名排序

ksort($_REQUEST);

//把数组所有元素,按照“参数|参数值”的模式用“|”字符拼接成字符串,组成字符串A

$str_A = '';

foreach ($_REQUEST as $key => $value)

{

$str_A .= sprintf('%s|%s|', $key, $value);

}

//将字符串A与appsecret,用英文竖杠进行连接, 得到字符串B

$str_B = $str_A . $secret;

//对字符串B取sha1值,得到字符串C,C就是所需要的签名

$str_C = sha1($str_B);

return $str_C;

}

```

错误码 | 含义 | 话术

-------|-------|-------

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值