createjsapisignature的簡單介紹

本文目錄一覽:

js-signature 怎麼驗證簽字沒有輸入內容

確認簽名算法正確,可用t=jsapisign頁面工具進行校驗。也就是你自己後台生成簽名要和微信校驗算法生成的簽名一致才可以(可能大小寫不同)。注意:簽名生成規則如下:參與簽名的字段包括有效的jsapi_ticket(獲取方式詳見微信JSSDK文檔),noncestr(隨機字符串,由開發者隨機生成),timestamp(由開發者生成的當前時間戳),url(當前網頁的URL,不包含#及其後面部分。注意:對於沒有隻有域名沒有path的URL,瀏覽器會自動加上/作為path,如打開/)。特別注意:你在利用參數生成簽名的時候,要對所有待簽名參數按照字段名的ASCII碼從小到大排序(字典序)後,使用URL鍵值對的格式(即key1=value1key2=value2…)拼接成字符串string1。這裡需要注意的是所有參數名均為小寫字符。我的最開始的錯誤就是沒有注意到生成簽名的那幾個參數要按照key=value的樣式連接成一個字符串,然後在sha1加密生成。/****Java寫的參數拼接算法***/String[]paramArr=newString[]{“jsapi_ticket=”+jsapi_ticket,”timestamp=”+timestamp,”noncestr=”+nonce,”url=”+jsurl};Arrays.sort(paramArr);//將排序後的結果拼接成一個字符串Stringcontent=paramArr[0].concat(“”+paramArr[1]).concat(“”+paramArr[2]).concat(“”+paramArr[3]);System.out.println(“拼接之後的content為:”+content);確認config中nonceStr(js中駝峰標準大寫S),timestamp與用以簽名中的對應noncestr,timestamp一致。確認url是頁面完整的url(請在當前頁面alert(location.href.split(‘#’)[0])確認),包括’http(s)://’部分,以及’?’後面的GET參數部分,但不包括’#’hash後面的部分。確認config中的appid與用來獲取jsapi_ticket的appid一致。確保一定緩存access_token和jsapi_ticket。確保你獲取用來簽名的url是動態生成的,動態頁面可參見實例代碼中php的實現方式。如果是html的靜態頁面在前端通過ajax將url傳到後台簽名,前端需要用js獲取當前頁面除去’#’hash部分的鏈接(可用location.href.split(‘#’)[0]獲取),因為頁面一旦分享,微信客戶端會在你的鏈接末尾加入其它參數,如果不是動態獲取當前鏈接,將導致分享後的頁面簽名失敗。

如何使用Createjs來編寫HTML5遊戲EaselJS簡介

CreateJS

CreateJS 是一套可以構建豐富交互體驗的 HTML5 遊戲的開源工具包,旨在降低 HTML5 項目的開發難度和成本,讓開發者以熟悉的方式打造更具現代感的網絡交互體驗。

CreateJS 中包含:

EaselJS:用於 Sprites、動畫、向量和位圖的繪製,創建 HTML5 Canvas 上的交互體驗(包含多點觸控),同時提供 Flash 中的「顯示列表」功能。

TweenJS:一個簡單的用於製作類似 Flash 中「補間動畫」的引擎,可生成數字或非數字的連續變化效果。

SoundJS:一個音頻播放引擎,能夠根據瀏覽器性能選擇音頻播放方式。將音頻文件作為模塊,可隨時加載和卸載。

PrloadJS:幫助你簡化網站資源預加載工作,無論加載內容是圖形、視頻、聲音、JS、數據……

以上的Createjs介紹來自百度,不過通過介紹可以知道,雖然CreateJS看起來複雜,不過四個部分各有作用,其中最主要的就是EaselJS,其餘三項不過是為他服務。

一.如何使用EaselJS

首先到 下載最新版的EaselJS,下載解壓後可以在lib文件夾中找到easeljs-0.8.1.min.js,同時在壓縮包中可以找到一個examples和tutorials目錄,這兩個目錄中包含一些入門介紹和例子,有英語基礎可以看看,DOC文件夾中包含easeljs所有的api。(同理,可以得到createjs包含的其他三項,其目錄結構都與EaselJS相似)。

1.得到easeljs-0.8.1.min.js後,新建一個HTML5文件並導入之:

[html] view plain copy

script src=”easeljs-0.8.1.min.js”/script

2.入口函數和創建canvas標籤

[html] view plain copy

body onload=”init();”

canvas id=”game” width=”1000″ height=”700″ style=”background-color: white”/canvas

/body

3.編寫自己的javascript代碼,在函數init()中首先應該使用HTML中的canvas標籤來創建一個Stage,createjs中用到的所有元素,都是添加在這個stage當中的,添加後調用stage.update()方法即可使得添加的元素顯示在頁面上。在創建Stage時,可以直接使用Canvas的id來創建,也可以調用document.getElementById(“game”),選取canvas來創建,沒有區別。

[javascript] view plain copy

script

function init(){

var stage = new createjs.Stage(“game”);

…….

stage.update();

}

/script

二.使用EaselJS創建圖形和文字

最簡單的遊戲都是由文字和圖形組成,使用EaselJS添加文字和圖形非常的簡單。

1.添加文字

[html] view plain copy

var txt = new createjs.Text(“HELLO”,”20px Times”,”#000″);

Createjs中所有的元素都通過調用new createjs.XXXXX來創建,Text包含三個參數分別是顯示的字符,字體及大小,最後是顏色。當然在創建完成後可以隨意改變txt的x,y坐標和對其,居中以及內容等等的屬性。例如:

[html] view plain copy

txt.x = 100;

txt.y = 100;

txt.text = “hello, world!”

完成後記得一定要把新創建的txt添加到stage中才能正常顯示

小白想請問form表單提交數據到釘釘,這個接口該怎麼寫 求詳細

一、免登問題

1.如何在App及後台獲取企業及用戶相關信息

(1)微應用主頁支持使用$CORPID$模板參數表示corpid,用戶訪問微應用的時候釘釘將把$CORPID$替換成用戶所屬企業的corpid,例如

(2)獲取用戶信息需要通過免登服務,詳情免登服務

2.釘釘微應用OAuth2授權打開一個應用時提示對不起您無權限查看該頁面

可能的原因:

(1)如果其他應用正常,或者企業其他人打開應用沒問題,可能是緩存問題引起,請清除下緩存

(2)參數redirect_uri的值沒有做url編碼

(3)redirect_uri的域名和微應用的域名不一致

3.免登Code的時效性

免登授權碼是一次性的,團隊(未認證的企業)失效時間五分鐘

二、JSAPI問題

1.jsapi權限校驗失敗,錯誤碼080003是什麼原因

請先按照文檔,先檢查參數agentid傳值是否正確,agentId查看方式:

(1)如果是isv應用,需要通過-獲取企業的應用信息

(2)企業自建應用,通過oa後台查看開發環境準備

2.jsapi權限校驗時返回{message:”權限校驗失敗”,errorcode:3}

(1)首先檢查用來生成簽名(signature)的jsapi_ticket是否過期(jsapi_ticket有效期為7200秒,而且當你請求了新的ticket之後,舊的ticket就失效了)

(2)其次檢查生成簽名的Url參數,與調用dd.config 所在的url是否一致

生成簽名用的url需要去除hash部分,e.g. 如果當前頁面url是;n=456#opq,則用於生成簽名的url是;n=456,可以使用調試工具來生成jsapi_ticket和signature,並和你實際使用的進行對比

(3)提示權限校驗失敗,errorcode:3,錯誤碼52019,請檢查corpid是否正確

3.使用JSAPI返回簽名或者Ticket獲取失敗

JSAPI返回失敗主要有兩種錯誤

(1)[錯誤碼:52011] [jsapi ticket 讀取失敗]

a.確認agentId參數正確傳入

b.確認以傳入agentId對應的企業身份獲取過jsapi_ticket,也就是調用過get_jsapi_ticket方法

c.確認agentId對應的企業身份獲取的jsapi_ticket沒有過期.即在兩個小時的有效期之內

(2)[錯誤碼:52013][簽名校驗失敗]

a.確認agentId參數正確傳入

b.oa後台設置uri和權限校驗uri不一致(去掉hash部分)

c.確認獲得的jsapi_ticket為最新的,沒有其他服務同時調用get_jsapi_ticket方法,導致生成簽名的jsapi_ticket過期

d.確認生成jsapi簽名正確,可以使用debug工具進行調試

4.ios 單頁面應用更改url#後面的參數(如:localhost:8100/#/test1 變成 localhost:8100/#/test2),調用jsapi無效

ios單頁面應用更改url參數,導致調用jsapi無效問題,將在2.7版本隨新版本發佈;

若是老版本(2.7以前版本),需要打開頁面時重新授權,調用jspai即可正常

5.jspai 調用返回errCode7 錯誤原因

(1)請查看在dd.config的jsApiList中,是否已配置要使用的jsapi,未配置的話會報錯

(2)ios 單頁面應用提示 errCode7 Jsapi Should NOT CallselectorString

同問題5,單頁面應用更改url參數,導致調用jsapi無效,老版本(2.7以前版本)需要重新授權,調用jsapi正常

(3)requestJsApis() not invoked,errorCode:7

dd.ready一定要在dd.config之後執行

6.如何獲取JSAPI權限(需再詳細些)

可以參照客戶端開發文檔,要使用的jsapi必須進行權限驗證配置,在dd.config中進行配置,可參照權限驗證配置-beta

7.工具欄顏色如何設置

在頁面需要引入js文件的前提下,通過url參數設置導航欄顏色,參數名為dd_nav_bgcolor

比如微應用當前頁面鏈接為:,要設置的顏色為FF112233(前兩位默認FF,後面6位112233是對應的色值),可設置頁面url為:

8.device.geolocation.get 提示unauthorized errcode 4

用戶設備禁用了手機的定位功能

9. 釘釘發送會話消息,cid如何獲取

使用場景示例:用戶在微應用中拉起本地聊天窗口列表(通過調用jsapi-獲取會話信息),選擇某一個聊天窗口,微應用將收到釘釘返回的cid,通過這個cid會送會話消息。

a.前提條件:jsapi可使用,即已經配置到dd.config,且通過jsapi的權限校驗

b.通過jsapi獲取會話cid,詳見獲取會話信息

10.errorMessage:」err msg redirect_uri domain is not secure domain」,」errorCode」:」3」

在oa後台設置微應用首頁地址(域名設置為可信域名,即可安全訪問授權)

11.讀取nfc芯片接口無法使用

[font=微軟雅黑, ‘Microsoft Yahei’, ‘Hiragino Sans GB’, tahoma, arial, 宋體]目前nfc芯片接口只支持android(文檔中已註明,請查看文檔)

三、服務端API

1.調用管理通訊錄接口返回43004,無效的HTTP HEADER Content-Type如何解決

管理通訊錄的部分接口採用了POST請求,請求體使用JSON格式,請在HTTP請求頭中設置Content-Type:application/json

2.上傳文件不成功

使用multipart/form-data請求上傳文件,需要附加文件標示信息,參數名為media;java示例代碼為

HttpEntity requestEntity =MultipartEntityBuilder.create().addPart(“media”, new FileBody(file, ContentType.APPLICATION_OCTET_STREAM, file.getName())).build();

3.新建部門和員工信息為中文時,創建不成功

請檢查編碼格式,確認是utf-8編碼

4.註冊事件回調接口,每個corpid只能註冊一個回調url嗎

一個企業的一個套件,只能註冊一個回調url

5.返回系統繁忙錯誤

(1)調試調用接口過程中出現,請先確保是否是JSON格式錯誤,比如POST時有的JSON里缺少了這種括號[ ]

(2)請檢查url是否正確,如免登接口,通過code換取用戶信息,/getuserinfo,實際應為/user/getuserinfo

(3)調用其他接口也返回系統繁忙,請您立刻在答疑群或論壇等反饋給釘釘人員

四、ISV接入問題

1.開發者平台創建套件校驗url有效性問題

如果返回字符串不匹配,提示錯誤代碼71009,可以通過以下常見問題確認具體原因:

a.可以通過將加密數據在本地解密下,看解密後的數據是否正確

b.查看是否是各字段名字錯誤,如timeStamp,卻寫成了timestamp

2.ISV接入回調接口沒有suiteticket推送

註冊套件之後,釘釘服務器會向填寫的回調接口推送suite_ticket;接收到推送之後需要返回加密後的字符串「success」,如果不返回或返回錯誤,釘釘服務器將連續推送,直到推送次數超過100次,就不再推送;

此時需要進入開發者後台,進入套件管理頁面,點擊『重新推送』按鈕,即可重新推送

3.回調地址接收釘釘服務器推送下來的數據,遇到計算解密文字錯誤

請查看加解密庫和demo下載第二個步驟,見加解密庫和demo下載

4.模擬測試企業發起授權所有套件,收不到臨時授權碼,而是change_auth

在開發者平台,目前授權行為只能發起一次,如已經收到臨時授權碼,模擬測試企業發起授權行為,收到change_auth事件;

測試企業解授權功能近期會上線,請關注文檔及論壇更新

5.不存在的臨時授權碼

臨時授權碼只能使用一次,使用後再次使用會提示「不存在的臨時授權碼」

6. isv開發中,如果permanentCode沒有存下來,如何獲取到

目前沒有辦法獲取,可以通過解除授權再次授權重新獲取,解除授權功能暫時未開放,請在文檔及論壇關注開放時間

7. 微應用性能測試提供的測試號碼加不進去

微應用性能測試提供的3個測試號碼,使用釘釘開放平台通訊錄接口添加的話,有最多加入5個非認證企業限制;建議通過釘釘管理後台()的通訊錄進行添加

8.微應用性能測試報告中的圖像中,顯示無權查看該頁面可能原因

請將在測試的h5地址直接在釘釘會話中打開,如找一個聊天會話,把要測試的h5地址直接貼在會話中,並點擊打開

a.如果打開提示無權查看該頁面,則是h5地址問題;

b.如果打開正常,請聯繫釘釘值班同學反饋;

10.IP白名單問題,返回errcode”:60020″,訪問ip不在白名單之中

調用釘釘API的機器需要配置在開發者平台中配置白名單

11.如何解除開發者平台的釘釘賬號綁定

暫未提供開發者平台、雲市場與釘釘賬號解綁功能,請關注官方文檔及論壇,若提供會同步更新

12.第三方ISV的套件開發完,如何與釘釘接入合作,讓其他企業授權使用套件

ISV開發完成套件後,需要對微應用進行性能評測等(微應用性能評測),以及在釘釘應用市場進行上架後,才可被其他企業用戶搜索到,並進行購買授權等操作;

可關注文檔對應用市場內容的更新,可發送郵件至郵件組open-dingtalk@list.alibaba-inc.com進行諮詢

13.isv如何獲取企業中用的mobile和email

如果在開發者後台勾選了郵箱字段,則可以獲取用戶的email;mobile暫不提供

14.isv demo中返回創建套件時返回解密文字或corpid或者suiteKey不匹配

(1)在 ENV文件中

[font=’Helvetica Neue’, Helvetica, Arial, sans-serif]public static final String CREATE_SUITE_KEY = “suite4xxxxxxxxxxxxxxx”;//首次創建套件校驗url時使用;

public static final String SUITE_KEY = “”;//已有套件時使用

(2)IsvReceiveServlet中

dingTalkEncryptor = new DingTalkEncryptor(Env.TOKEN, Env.ENCODING_AES_KEY, Env.SUITE_KEY);

第三個參數使用,如果首次創建校驗url使用 Env.CREATE_SUITE_KEY,即

dingTalkEncryptor = new DingTalkEncryptor(Env.TOKEN, Env.ENCODING_AES_KEY, Env. CREATE_SUITE_KEY);

如果已有套件,使用Env.SUITE_KEY,且在ENV文件中將public static final String SUITE_KEY = “xxxx”;賦值,即

dingTalkEncryptor = new DingTalkEncryptor(Env.TOKEN, Env.ENCODING_AES_KEY, Env.SUITE_KEY);

五、通用問題

1.isv接入demo

最近收到isv接入demo存在加解密失敗問題,這部分demo正在更新,近期會更新(加解密庫和demo下載)

2.釘釘https下使用oss Js SDK請求ERRSSLPROTOCOLERROR

六、常見需求及建議回復

1.發Ding的接口是否支持

釘釘不對外提供提供服務端ding接口

2.釘釘是否開放公告接口

釘釘暫不開放公告接口

3.釘釘是否提供審批、簽到等微應用接口,便於第三方系統數據對接

目前只提供了管理日曆接口接入,詳見管理日曆接入指南;

其他暫未提供

4.釘釘產品如何與企業內部的ERP系統實現對接

(1)可以基於釘釘開放平台開發一個報表的微應用,釘釘提供免登機制獲取用戶信息,報表權限由你開發的微應用進行控制

(2)微應用是基於H5開發的,因此可以基於H5開發圖標展示

(3)企業內部的文件可以通過釘盤進行存儲,也可以存放在自己的服務器,在微應用內進行下載

以上實現均需開發微應用

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/232453.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 12:52
下一篇 2024-12-11 12:52

相關推薦

  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27
  • Guava Limiter——限流器的簡單易用

    本文將從多個維度對Guava Limiter進行詳細闡述,介紹其定義、使用方法、工作原理和案例應用等方面,並給出完整的代碼示例,希望能夠幫助讀者更好地了解和使用該庫。 一、定義 G…

    編程 2025-04-27
  • 製作一個簡單的管理系統的成本及實現

    想要製作一個簡單的管理系統,需要進行技術選型、開發、測試等過程,那麼這個過程會花費多少錢呢?我們將從多個方面來闡述製作一個簡單的管理系統的成本及實現。 一、技術選型 當我們開始思考…

    編程 2025-04-27
  • 2的32次方-1:一個看似簡單卻又複雜的數字

    對於計算機領域的人來說,2的32次方-1(也就是十進制下的4294967295)這個數字並不陌生。它經常被用來表示IPv4地址或者無符號32位整數的最大值。但實際上,這個數字卻包含…

    編程 2025-04-27

發表回復

登錄後才能評論