## 一、開通接口
需先從卡平臺獲得接口交互的appId和appSecret;
api服務地址:http://ip:port/oauth/service,
>[danger]
> 1、api服務地址+api的url組合,構成了客戶端api請求的完整地址;
> 2、比如平臺內置提供了一個用于測試驗證的api,其url是/test/validation,那么實際完整的請求地址應當為:http://ip:port/oauth/service/test/validation
> 3、開戶的過程參考:[http://www.hmoore.net/fang2099/erp-scm-mes-hr-oa/1589749](http://www.hmoore.net/fang2099/erp-scm-mes-hr-oa/1589749)
## 二、技術要求
1.所有接口的請求,采用httpPost方式提交,發出http請求的時候,請求content-type需設定為:application/x-www-form-urlencoded;charset=UTF-8 ,參數按照普通表單參數傳值,不必包裹成一個json字符串;
2.所有接口的響應,采用json格式,編碼為UTF-8,響應的content-type為:application/json;charset=UTF-8);
3.提供ip白名單功能,僅供授權的ip調用;
4.每個對外提供服務的api,都必須包含的參數為appId及timeStamp,為了確保不被外部不法分子惡意篡改請求,請求參數中絕對不能包含appSecret;
5.每個對外提供服務的api,都必須包含一個sign參數,該參數是通過算法計算出來的值,具體算法參考后續簽名算法章節;
6.考慮服務器承載量,目前限制每個ip訪問接口頻率不得超過1秒10次,超過這個次數,該ip將會被禁止調用,程序中不得做高頻率輪詢;
7.接口服務自身的設計與開發是基于BASE理論。因此,也強烈建議代碼編寫者遵循該理論;程序開發者必需考慮接口服務器因機房網絡故障、域名解析故障、例行檢修、程序升級、依賴服務中斷等因素導致當前服務不可用。因此,業務邏輯的編寫必須嚴格的核對響應碼,并且必須編寫消費接口服務的異常分支邏輯;
>[danger] 只有responseCode為1,才能說明這個api執行成功了,否則,都是失敗,只是失敗原因各不相同;
## 三、時間戳格式
1.獲取從1970, 00:00:00開始到當前的毫秒數(13位)
2.每個api請求的有效時間為3分鐘,所以,務必確保當前服務請求的時間是準確的;
## 四、簽名算法
假設:paramstrings = 當前api的所有參數(除sign外),根據參數名升序排序,以“參數名=值&”的方式連接起來;
結果:sign = md5(md5(paramstrings)+appSecret)
>[danger] 注意:是雙層md5加密,中間那個"+"僅表示兩段字符相連,并不包括該符號本身;
## 五、接口限流
對外服務的每個API接口當訪問頻率或者并發量超過其承受范圍時候,我們就必須考慮限流來保證接口的可用性或者降級可用性.以防止非預期的請求對系統壓力過大而引起的系統癱瘓;
### 算法
平臺采用令牌桶算法進行限流,針對每個appId(客戶端),都限制其每秒鐘可以接收的請求數,確保整個對外服務正常有序;
令牌桶算法的原理是系統會以一個恒定的速度往桶里放入令牌,而如果請求需要被處理,則需要先從桶里獲取一個令牌,當桶里沒有令牌可取時,則拒絕服務;

### 設置
系統參數配置中,可以設定每個appId每秒請求數限制:

### 注意
>[danger]正常的訪問平臺是通過接口限流策略,實現了業務可用性保障;對應非正常的訪問,平臺則通過DDOS防御設施,實現業務可用性保障;
## 六、例程
為了方便客戶端編程,這里提供了一個完整的客戶端調用api示范,基于java代碼編寫,您可以直接復制過去,修改參數運行;您可以向我們索取代碼;
具體接口,請參考下面的章節;
- 前言
- 快速開始
- 內部營銷
- 卡片分配
- 我的卡片
- 轉移退回
- 卡片分配
- 退回審核
- 接口接入
- 卡片撥入
- 套餐撥入
- 銷售平臺
- 銷售運營
- 代理商管理
- 流量包發布
- 邏輯解析
- 卡片管理
- 我的卡片
- 卡片銷售
- 退回申請
- 退回審核
- 綜合查詢
- 扣費查詢
- 微充查詢
- 代充查詢
- 代理平臺
- 核心術語
- 卡密業務
- 卡密劃撥
- 卡密查詢
- 代理運營
- 代理商管理
- 流量包分配
- 流量包定價
- 卡片管理
- 我的卡片
- 卡片查詢
- 卡片銷售
- 退回申請
- 退回審核
- 賬務管理
- 賬號充值
- 充值查詢
- 收益查詢
- 綜合查詢
- 我的流量包
- 扣費查詢
- 合伙平臺
- 公眾號
- 通用公眾號配置流程
- 合伙公眾號配置流程
- 合伙公眾號簡化配置
- 自營公眾號配置流程
- 賬務管理
- 扣費查詢
- 運營平臺
- 卡密業務
- 卡密生成
- 卡密轉移
- 卡密作廢
- 卡密查詢
- 已用卡密
- 基礎資料
- 流量餐包
- 自營池算法
- 流量包類型
- 卡片資料
- 批量上傳
- 卡池群組
- 業務監管
- 訂購審核
- 訂購監控
- 補償流量
- 日耗預警
- 卡片處理
- 卡片用戶
- 流量調整
- 卡片分析
- 代理關系
- 候選監控
- 流量轉移
- 業務查詢
- 卡片查詢
- 扣費查詢
- 充值查詢
- 微充查詢
- 實名管理
- 實名審核
- 實名管理
- 后臺充值
- 代充值
- 返利管理
- 待返明細
- 待返賬單
- 返利審核
- 付款執行
- 賬單查詢
- 返利控制
- 微信客服
- 微信客服
- 運營規范
- 卡片注銷
- 停機保號
- 換發新卡
- 睡卡換卡
- 查詢統計
- 代理統計
- 客戶平臺
- 卡片管理
- 我的卡片
- 卡片注銷
- 業務辦理
- 套餐訂購
- 套餐變更
- 加餐包訂購
- 掃碼充值
- 業務查詢
- 扣費查詢
- 充值查詢
- 賬號明細
- 開放平臺
- 接入指南
- 普通API
- 套餐訂購
- 實名認證
- 流量查詢
- 套餐查詢
- 卡片查詢
- 訂購查詢
- 訂單查詢
- 實名地址
- 卡池API
- 單卡流量
- 卡池查詢
- 停機復機
- 卡片激活
- 公用API
- 電信狀態
- 卡片查詢
- 我的套餐
- 賬戶充值
- 充值查詢
- 訂購記錄
- 扣費記錄
- 卡池平臺
- 轉換方案
- 卡池管理
- 用戶操作
- 面向普通用戶
- 面向大客戶
- 面向API用戶
- 卡密業務
- 設計方案
- 廠商制卡(簡版)
- 廠商制卡
- 代理制卡
- 功能介紹
- 系統管理
- 調度監控
- 運營經驗
- 安裝實施
- 全新安裝
- 系統遷移
- 極簡指南
- 聯系我們