>[danger]每次訪問接口時,都必須攜帶5個公共參數,如果需要用戶信息的接口,還需要攜帶cowcms_userid參數(建議每個連接都攜帶該參數)
| 參數名稱 | 參數描述 |
| --- | --- |
| appid | 接口網站分配個請求網站的appid |
| interval | timestamp參數有效時時長 默認7200,單位為秒 |
| timestamp | 請求時間戳,該值和當前時間差不能大于 interval 值(默認7200秒,時間在后臺可設置) |
| nonceStr | 隨機字符串 |
| signature | 請求簽名 |
| cowcms_userid | 登錄用戶id 32位字符串,該參數在用戶登錄時,返回給前端的用戶登錄憑證,前端需要保存該憑證,在調用強制用戶登錄的接口時必傳該參數 |
>[danger]調用API接口流程
1.獲取訪問API接口的必須參數。
2.將獲取的參數緩存到前端。
3.訪問接口時判定必須參數是否在有效時間內
4.如果參數有效直接訪問,如果參數無效,重新獲取然參數后,執行第二步
>站內調用接口獲取訪問API接口的必須參數
```
namespace app\user\controller;
use user\Member;
class Sign extends Member
{
function getCowcmsUserid()
{
//$id API站點id,如果是本站默認id為1,開發者可根據自己需求填寫
$param = exeFun('getApiParam',[$id=1],'api');
dump($param) ;
}
}
$param打印出來的參數為
array(5) {
["appid"] => string(40) "50fb0e2cde242fb428e5d35c719e82f3bfca8dcf"
["timestamp"] => int(1584416641)
["nonceStr"] => string(6) "gtug8k"
["signature"] => string(40) "fcee23aa9c3f9055d8d63e4cba51d71a630a03a3"
["interval"] => int(7200)
}
```
>其它網站訪問接口獲取必須參數
```
namespace app\user\controller;
use user\Member;
class Sign extends Member
{
function getCowcmsUserid()
{
$url = "http://xxxx.com/public/index.php/api/Apiget/get_param/appid/XXX/appsecret/XXXX/token/xxx"
$param = http_curl($url);
dump($param);
}
}
$param打印出來的參數為
array(5) {
["appid"] => string(40) "50fb0e2cde242fb428e5d35c719e82f3bfca8dcf"
["timestamp"] => int(1584416641)
["nonceStr"] => string(6) "gtug8k"
["signature"] => string(40) "fcee23aa9c3f9055d8d63e4cba51d71a630a03a3"
["interval"] => int(7200)
}
```
>[danger]自行生成訪問接口獲取必須參數,將 appid,appsecret,timestamp,nonceStr參數按照字典排序用&連接,進行(sha1或者md5,此處主要看后臺設置加密類型)加密生成signature簽名,如:
signature =sha1(appid=6a9f5b5a0cd0594731113041f989e2a3a27afbcb&appsecret=aa0d037bfd95978e154aecb75739295681060346&nonceStr=8UsD7F×tamp=1586238156)
2.將獲取的參數緩存到前端
```
localStorage.setItem("appid","....");
localStorage.setItem("timestamp","....");
localStorage.setItem("nonceStr","....");
localStorage.setItem("signature","....");
localStorage.setItem("interval","....");
```
3.js每次訪問接口時,檢測timestamp是否失效,如果失效重新獲取參數,并緩存數據,否則訪問接口
```
appid = localStorage.getItem("appid");
timestamp = localStorage.getItem("timestamp");
nonceStr = localStorage.getItem("nonceStr");
signature = localStorage.getItem("signature");
interval = localStorage.getItem("interval");
timestamp = (new Date()).getTime();; //當前時間戳
//提前10秒兌換新的參數
if(time - timestamp - interval > 10)
{
//參數失效,并重新獲取
url = "http://xxxx.com/public/index.php/api/Apiget/get_param_change";
param= {appid:'50fb0e2cde242fb428e5d35c719e82f3bfca8dcf',timestamp:1584418592,nonceStr:'IYI0wK',signature:'d3c512eef5bc25d09b767e75b8f5eff3bd91bec8'};
$.getJSON(url,param, function(json){
localStorage.setItem("appid","....");
localStorage.setItem("timestamp","....");
localStorage.setItem("nonceStr","....");
localStorage.setItem("signature","....");
localStorage.setItem("interval","....");
});
}
```
>cowcms_userid值的獲取 方式
當用戶登錄后由后端返回
- 序言
- 基礎
- 源碼包
- 核心包
- 完整包
- 系統模塊
- 安裝模塊
- 后臺模塊
- 插件模塊
- 插件開發
- 開發基礎
- 權限開發
- 菜單開發
- 開發調試
- 碎片開發
- 碎片鉤子預設表
- 插件說明
- 字段插件
- 插件介紹
- 字段使用
- 單行文本
- 多行文本
- 選項-下拉
- 選項-復選
- 選項-單選
- 選項-滑塊
- 顏色選擇器
- 星級評分
- 日期時間
- 文件上傳
- 編輯器
- API接口
- 微信插件
- 微信配置
- 公眾號配置
- 支付配置
- 微信支付使用
- API類庫
- 紅包發放
- 付款到零錢
- 碎片
- 公眾號碎片
- 紅包碎片
- 付款到零錢碎片
- API微信接口
- 支付寶插件
- 支付寶配置
- 支付寶支付使用
- api接口
- api接口后端開發
- api接口前端使用
- API參數接口
- 會員插件
- 登錄使用
- 會員碎片
- API會員接口
- API注冊接口
- 積分插件
- 積分設置
- 積分碎片
- API積分接口
- API提現接口
- API兌換接口
- API充值接口
- 訂單
- 訂單碎片
- API訂單接口
- 商城
- 商城鉤子
- API商城接口
- API商城會員接口
- 簽到
- 簽到設置
- 簽到碎片
- API簽到接口
- 上傳
- 上傳設置
- 上傳JS接口
- 推廣插件
- 海報設置
- API海報接口
- 文章插件
- 文章設置
- 文章鉤子
- API文章接口
- API文章會員接口
- 管理員
- 管理員碎片
- 站內信
- API站內信接口
- 雜項
- 菜單
- 菜單設置
- API菜單接口
- 錯誤碼
- 支付碎片
- 支付
- 充值
- 購買會員組
- 購買產品