云丁Saas系統開放對接平臺,即云丁openAPI,是云丁提供給合作伙伴進行云丁智能設備管理系統開發的一套接口,包括智能網關,智能門鎖,智能電表等等一系列智能設備的管理接口。
本文檔旨在說明合作伙伴怎樣通過云丁openAPI去開發自己的云丁智能設備管理系統,因此本文檔從合作伙伴開發者的角度,通過openAPI實現了一套包含兩個房間,并且擁有智能網關,智能門鎖和智能電表的智能設備管理系統。
# 1 商戶開啟對接云丁系統模式
云丁Saas管理系統對接分為商戶對接和平臺對接。本文檔使用商戶對接作為示例。
## 1.1商戶賬號對接申請
商戶在云丁系統注冊了自己的商戶賬號后有對接需求,可以聯系云丁商務進行商戶賬號對接申請,云丁商務將會給予協助。申請的信息主要包括:商戶賬號,商戶郵箱,商戶系統的回調URL(非必需)等。
以下是商戶申請對接信息表的示例:

申請成功后,商戶郵箱將會收到對接必需的client_id和client_secret。接著便能進行下一步操作了。
## 1.2 獲取access_token
調用云丁openAPI需要上傳access_token字段,該字段標明商戶的身份是否合法,每個商戶賬號對應一個access_token。
根據上一步獲取的client_id和client_secret可以通過v2/access_token接口獲取商戶的access_token。
獲取access_token的Python代碼示例:
```
import requests
def get_access_token(client_id, client_secret):
url = 'https://saas-openapi.dding.net/v2/access_token'
headers = {
'Content-type' : 'Application/json',
'User-Agent' : 'PostmanRuntime/7.13.0',
}
payload = {
'client_id' : client_id,
'client_secret' : client_secret
}
response = requests.request('POST', url, headers=headers, json=payload)
return response.json()
if __name__ == '__main__':
client_id = '74e52b657d89f3891a8cb4d1'
client_secret = '96e9868469fe6fa0bc1daf521529f04f'
result = get_access_token(client_id, client_secret)
print(result)
```
返回的結果如下:
```
{
"ReqID": "1Sdjw6qQQwS",
"ErrNo": 0,
"ErrMsg": "",
"access_token": "2389cd881d18c7efcfed147bc44cb1fc604ffcced22ce579e7cb1ba8eb99c6a74737124aecc1beb1182eb872e73b78f74c59ed0fc4986e5f03fd6bc7fa14e331",
"expires_time": 1569392952
}
```
根據返回的json數據可以拿到access_token, expire_time是access_token的過期時間戳,單位是s。
需要注意的是:實際開發中,需要使用專門的服務器定期更新access_token,防止其失效造成業務受到影響。
## 1.3 小結與展望
拿到access_token后,便能進行云丁智能設備管理系統的開發了。接下來章節將通過具體的例子實現一套簡單的智能設備管理系統。