# 第三方免登录

## 创建/获取用户openApiKey及密钥信息

<mark style="color:green;">`POST`</mark> `https://service.xxx.com/platformapi/chainup/open/user/registerOrLoginToGetOpenApi`

需要将参数表格中的数据包装成json字符串 利用rsa 进行参数加密和签名 作为body中的data和sign

#### Request Body

| Name                                      | Type   | Description                  |
| ----------------------------------------- | ------ | ---------------------------- |
| app\_id<mark style="color:red;">\*</mark> | String | 商家唯一app\_id                  |
| sign<mark style="color:red;">\*</mark>    | String | 用rsa\_third\_pri对query中的数据签名 |
| data<mark style="color:red;">\*</mark>    | String | rsa\_saas\_pub加密query中数据     |
| time<mark style="color:red;">\*</mark>    | String | 请求时间                         |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "code": "", //返回code	
    "msg": "", //成功或失败提示信息	
    "data": "",
    "sign": ""
}

data 中解密后的结构体
{
    "uid": 23998752,//用户id
    "apiKey": "47e2468b6dc5277fe19417d44daa834a",
    "secret": "f1abbd4ef74ec2d046dea8a85a659076"
}
```

{% endtab %}
{% endtabs %}

以下为参与rsa加密的参数:

邮箱号和手机号二选一必填, 注册用户手机号(传手机号必传国家编码)

<table><thead><tr><th width="136">名称</th><th width="124">类型</th><th>是否必需</th><th width="214">例子</th><th>描述</th></tr></thead><tbody><tr><td>countryCode</td><td>String</td><td>YES</td><td>93</td><td>注册用户国家编码</td></tr><tr><td>mobileNumber</td><td>String</td><td>YES</td><td>1990099121</td><td>注册用户手机号(传手机号必传国家编码)</td></tr><tr><td>email</td><td>String</td><td>YES</td><td>xxx@.com</td><td>邮箱 (邮箱 手机 任选其一)</td></tr><tr><td>password</td><td>String</td><td>YES</td><td>xxxxx</td><td>创建用户密码</td></tr><tr><td>invitedCode</td><td>String</td><td>YES</td><td>SDOOMXA</td><td>邀请码</td></tr></tbody></table>

## 获取用户交易所登录Token

<mark style="color:green;">`POST`</mark> `https://service.xxx.com/platformapi/chainup/open/user/getExchangeToken`

需要将参数表格中的数据包装成json字符串 利用rsa 进行参数加密和签名 作为body中的data和sign

#### Request Body

| Name                                      | Type   | Description                  |
| ----------------------------------------- | ------ | ---------------------------- |
| app\_id<mark style="color:red;">\*</mark> | String | 商家唯一app\_id                  |
| sign<mark style="color:red;">\*</mark>    | String | 用rsa\_third\_pri对query中的数据签名 |
| time<mark style="color:red;">\*</mark>    | String | 请求时间                         |
| data<mark style="color:red;">\*</mark>    | String | rsa\_saas\_pub加密query中数据     |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "code": "", //返回code	
    "msg": "", //成功或失败提示信息	
    "data": "",
    "sign": ""
}

data 中解密后的结构体

{
    "uid": 23998752,//用户id
    "inviteCode": "QWGGHLTQ",//邀请码
    "token": "891324eb68128c031b98a1d8417ae12ed79be7a172704c02a52186f95b78e7ef" 
}
```

{% endtab %}
{% endtabs %}

以下为参与rsa加密的参数:

<table><thead><tr><th width="136">名称</th><th width="124">类型</th><th>是否必需</th><th width="214">例子</th><th>描述</th></tr></thead><tbody><tr><td>apiKey</td><td>String</td><td>YES</td><td>2ae04ed9165624419bad68e9e0f3</td><td>openApiKey</td></tr><tr><td>secret</td><td>String</td><td>YES</td><td>SSe04ed9165624419bad68eDWQ0f3</td><td>openApi的密钥</td></tr><tr><td>uid</td><td>String</td><td>YES</td><td>202300123</td><td>用户id</td></tr></tbody></table>

## 退出登录

<mark style="color:green;">`POST`</mark> `https://service.xxx.com/platformapi/chainup/open/user/exchangeLogOut`

需要将参数表格中的数据包装成json字符串 利用rsa 进行参数加密和签名 作为body中的data和sign

#### Request Body

| Name                                      | Type   | Description                  |
| ----------------------------------------- | ------ | ---------------------------- |
| app\_id<mark style="color:red;">\*</mark> | String | 商家唯一app\_id                  |
| sign<mark style="color:red;">\*</mark>    | String | 用rsa\_third\_pri对query中的数据签名 |
| time<mark style="color:red;">\*</mark>    | String | 请求时间                         |
| data<mark style="color:red;">\*</mark>    | String | rsa\_saas\_pub加密query中数据     |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "code": "0",
    "msg": "suc"
}
```

{% endtab %}
{% endtabs %}

以下为参与rsa加密的参数:

<table><thead><tr><th width="136">名称</th><th width="124">类型</th><th>是否必需</th><th width="214">例子</th><th>描述</th></tr></thead><tbody><tr><td>apiKey</td><td>String</td><td>YES</td><td>2ae04ed9165624419bad68e9e0f3</td><td>openApiKey</td></tr><tr><td>secret</td><td>String</td><td>YES</td><td>SSe04ed9165624419bad68eDWQ0f3</td><td>openApi的密钥</td></tr><tr><td>uid</td><td>String</td><td>YES</td><td>202300123</td><td>用户id</td></tr><tr><td>exchangeToken</td><td>String</td><td>YES</td><td></td><td>登录人登录token，如果有保存直接传，没有也可以再生成一个传过来</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://platformv2docs.chainup.com/di-san-fang-mian-deng-lu.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
