自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微信JS-SDK接口列表及問(wèn)題詳解

移動(dòng)開(kāi)發(fā) Android
微信JS-SDK是微信公眾平臺(tái)面向網(wǎng)頁(yè)開(kāi)發(fā)者提供的基于微信內(nèi)的網(wǎng)頁(yè)開(kāi)發(fā)工具包。

所有JS接口列表

版本1.0.0接口

onMenuShareTimeline

 

onMenuShareAppMessage

 

onMenuShareQQ

 

onMenuShareWeibo

 

startRecord

 

stopRecord

 

onVoiceRecordEnd

 

playVoice

 

pauseVoice

 

stopVoice

 

onVoicePlayEnd

 

uploadVoice

 

downloadVoice

 

chooseImage

 

previewImage

 

uploadImage

 

downloadImage

 

translateVoice

 

getNetworkType

 

openLocation

 

getLocation

 

hideOptionMenu

 

showOptionMenu

 

hideMenuItems

 

showMenuItems

 

hideAllNonBaseMenuItem

 

showAllNonBaseMenuItem

 

closeWindow

 

scanQRCode

 

chooseWXPay

 

openProductSpecificView

 

addCard

 

chooseCard

 

openCard

 

所有菜單項(xiàng)列表

基本類(lèi)

舉報(bào): "menuItem:exposeArticle"

 

調(diào)整字體: "menuItem:setFont"

 

日間模式: "menuItem:dayMode"

 

夜間模式: "menuItem:nightMode"

 

刷新: "menuItem:refresh"

 

查看公眾號(hào)(已添加): "menuItem:profile"

 

查看公眾號(hào)(未添加): "menuItem:addContact"

 

傳播類(lèi)

發(fā)送給朋友: "menuItem:share:appMessage"

 

分享到朋友圈: "menuItem:share:timeline"

 

分享到QQ: "menuItem:share:qq"

 

分享到Weibo: "menuItem:share:weiboApp"

 

收藏: "menuItem:favorite"

 

分享到FB: "menuItem:share:facebook"

 

保護(hù)類(lèi)

調(diào)試: "menuItem:jsDebug"

 

編輯標(biāo)簽: "menuItem:editTag"

 

刪除: "menuItem:delete"

 

復(fù)制鏈接: "menuItem:copyUrl"

 

原網(wǎng)頁(yè): "menuItem:originPage"

 

閱讀模式: "menuItem:readMode"

 

在QQ瀏覽器中打開(kāi): "menuItem:openWithQQBrowser"

 

在Safari中打開(kāi): "menuItem:openWithSafari"

 

郵件: "menuItem:share:email"

 

一些特殊公眾號(hào): "menuItem:share:brand"

 

卡券擴(kuò)展字段及簽名生成算法

卡券 api_ticket

卡券 api_ticket 是用于調(diào)用卡券相關(guān)接口的臨時(shí)票據(jù),有效期為 7200 秒,通過(guò) access_token 來(lái)獲取。這里要注意與 jsapi_ticket 區(qū)分開(kāi)來(lái)。由于獲取卡券 api_ticket 的 api 調(diào)用次數(shù)非常有限,頻繁刷新卡券 api_ticket 會(huì)導(dǎo)致 api 調(diào)用受限,影響自身業(yè)務(wù),開(kāi)發(fā)者必須在自己的服務(wù)全局緩存卡券 api_ticket 。

參考以下文檔獲取access_token(有效期7200秒,開(kāi)發(fā)者必須在自己的服務(wù)全局緩存access_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html

 

用***步拿到的access_token 采用http GET方式請(qǐng)求獲得卡券 api_ticket(有效期7200秒,開(kāi)發(fā)者必須在自己的服務(wù)全局緩存卡券 api_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card

 

卡券擴(kuò)展字段cardExt說(shuō)明

 

cardExt本身是一個(gè)JSON字符串,是商戶(hù)為該張卡券分配的唯一性信息,包含以下字段:

字段 是否必填 說(shuō)明
code 指定的卡券code碼,只能被領(lǐng)一次。use_custom_code字段為true的卡券必須填寫(xiě),非自定義code不必填寫(xiě)。
openid 指定領(lǐng)取者的openid,只有該用戶(hù)能領(lǐng)取。bind_openid字段為true的卡券必須填寫(xiě),非自定義openid不必填寫(xiě)。
timestamp 時(shí)間戳,商戶(hù)生成從1970年1月1日00:00:00至今的秒數(shù),即當(dāng)前的時(shí)間,且最終需要轉(zhuǎn)換為字符串形式;

由商戶(hù)生成后傳入。

signature 簽名,商戶(hù)將接口列表中的參數(shù)按照指定方式進(jìn)行簽名,簽名方式使用SHA1,具體簽名方案參見(jiàn)下文;由商戶(hù)按照規(guī)范簽名后傳入。
balance 紅包余額,以分為單位。紅包類(lèi)型必填(LUCKY_MONEY),其他卡券類(lèi)型不填。

簽名說(shuō)明

將 api_ticket(特別說(shuō)明:api_ticket 相較 appsecret 安全性更高,同時(shí)兼容老版本文檔中使用的 appsecret 作為簽名憑證。)、timestamp、card_id、code、openid、balance的value值進(jìn)行字符串的字典序排序。

 

將所有參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密,得到signature。

 

signature中的timestamp和card_ext中的timestamp必須保持一致。

 

假如數(shù)據(jù)示例中code=23456,timestamp=141231233,card_id=345667,api_ticket=45678則signature=sha1(14123123323456345667456789)=4F76593A4245644FAE4E1BC940F6422A0C3EC03E。

 

卡券簽名cardSign說(shuō)明

將 api_ticket(特別說(shuō)明:api_ticket 相較 appsecret 安全性更高,同時(shí)兼容老版本文檔中使用的 appsecret 作為簽名憑證。)、app_id、location_id、times_tamp、nonce_str、card_id、card_type的value值進(jìn)行字符串的字典序排序。

 

將所有參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密,得到cardSign。

 

附錄5-常見(jiàn)錯(cuò)誤及解決方法

調(diào)用config 接口的時(shí)候傳入?yún)?shù) debug: true 可以開(kāi)啟debug模式,頁(yè)面會(huì)alert出錯(cuò)誤信息。以下為常見(jiàn)錯(cuò)誤及解決方法:

invalid url domain當(dāng)前頁(yè)面所在域名與使用的appid沒(méi)有綁定,請(qǐng)確認(rèn)正確填寫(xiě)綁定的域名,如果使用了端口號(hào),則配置的綁定域名也要加上端口號(hào)(一個(gè)appid可以綁定三個(gè)有效域名,見(jiàn) 目錄1.1.1)。

 

invalid signature簽名錯(cuò)誤。建議按如下順序檢查:

 

確認(rèn)簽名算法正確,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 頁(yè)面工具進(jìn)行校驗(yàn)。

 

確認(rèn)config中nonceStr(js中駝峰標(biāo)準(zhǔn)大寫(xiě)S), timestamp與用以簽名中的對(duì)應(yīng)noncestr, timestamp一致。

 

確認(rèn)url是頁(yè)面完整的url(請(qǐng)?jiān)诋?dāng)前頁(yè)面alert(location.href.split('#')[0])確認(rèn)),包括'http(s)://'部分,以及'?'后面的GET參數(shù)部分,但不包括'#'hash后面的部分。

 

確認(rèn) config 中的 appid 與用來(lái)獲取 jsapi_ticket 的 appid 一致。

 

確保一定緩存access_token和jsapi_ticket。

 

確保你獲取用來(lái)簽名的url是動(dòng)態(tài)獲取的,動(dòng)態(tài)頁(yè)面可參見(jiàn)實(shí)例代碼中php的實(shí)現(xiàn)方式。如果是html的靜態(tài)頁(yè)面在前端通過(guò)ajax將url傳到后臺(tái)簽名,前端需要用js獲取當(dāng)前頁(yè)面除去'#'hash部分的鏈接(可用location.href.split('#')[0]獲取),因?yàn)轫?yè)面一旦分享,微信客戶(hù)端會(huì)在你的鏈接末尾加入其它參數(shù),如果不是動(dòng)態(tài)獲取當(dāng)前鏈接,將導(dǎo)致分享后的頁(yè)面簽名失敗。

 

the permission value is offline verifying這個(gè)錯(cuò)誤是因?yàn)閏onfig沒(méi)有正確執(zhí)行,或者是調(diào)用的JSAPI沒(méi)有傳入config的jsApiList參數(shù)中。建議按如下順序檢查:

 

確認(rèn)config正確通過(guò)。

 

如果是在頁(yè)面加載好時(shí)就調(diào)用了JSAPI,則必須寫(xiě)在wx.ready的回調(diào)中。

 

確認(rèn)config的jsApiList參數(shù)包含了這個(gè)JSAPI。

 

permission denied該公眾號(hào)沒(méi)有權(quán)限使用這個(gè)JSAPI(部分接口需要認(rèn)證之后才能使用)。

 

function not exist當(dāng)前客戶(hù)端版本不支持該接口,請(qǐng)升級(jí)到新版體驗(yàn)。

 

為什么6.0.1版本config:ok,但是6.0.2版本之后不ok(因?yàn)?.0.2版本之前沒(méi)有做權(quán)限驗(yàn)證,所以config都是ok,但這并不意味著你config中的簽名是OK的,請(qǐng)?jiān)?.0.2檢驗(yàn)是否生成正確的簽名以保證config在高版本中也ok。)

 

Android用戶(hù)已取消分享朋友圈,但仍返回分享成功(微信團(tuán)隊(duì)已修復(fù)此問(wèn)題,已在Android6.1版本上線(xiàn))

 

在iOS和Android都無(wú)法分享(請(qǐng)確認(rèn)公眾號(hào)已經(jīng)認(rèn)證,只有認(rèn)證的公眾號(hào)才具有分享相關(guān)接口權(quán)限,如果確實(shí)已經(jīng)認(rèn)證,則要檢查監(jiān)聽(tīng)接口是否在wx.ready回調(diào)函數(shù)中觸發(fā))

 

Android6.0.2部分客戶(hù)端無(wú)法使用監(jiān)聽(tīng)分享接口(Android6.0.2之前以及6.0.2.58以后的版本都不會(huì)有問(wèn)題,請(qǐng)從官網(wǎng)weixin.qq.com下載***版本體驗(yàn))

 

服務(wù)上線(xiàn)之后無(wú)法獲取jsapi_ticket,自己測(cè)試時(shí)沒(méi)問(wèn)題。(因?yàn)閍ccess_token和jsapi_ticket必須要在自己的服務(wù)器緩存,否則上線(xiàn)后會(huì)觸發(fā)頻率限制。請(qǐng)確保一定對(duì)token和ticket做緩存以減少2次服務(wù)器請(qǐng)求,不僅可以避免觸發(fā)頻率限制,還加快你們自己的服務(wù)速度。目前為了方便測(cè)試提供了1w的獲取量,超過(guò)閥值后,服務(wù)將不再可用,請(qǐng)確保在服務(wù)上線(xiàn)前一定全局緩存access_token和jsapi_ticket,兩者有效期均為7200秒,否則一旦上線(xiàn)觸發(fā)頻率限制,服務(wù)將不再可用)。

 

Android部分版本上傳圖片接口偶爾卡住(早期的Android6.0.2版本存在此問(wèn)題,官方已修復(fù),6.0.2.58之后的版本都支持,請(qǐng)從官網(wǎng)下載***版本體驗(yàn))

 

uploadImage怎么傳多圖(目前只支持一次上傳一張,多張圖片需等前一張圖片上傳之后再調(diào)用該接口)

 

沒(méi)法對(duì)本地選擇的圖片進(jìn)行預(yù)覽(chooseImage接口本身就支持預(yù)覽,不需要額外支持)

 

通過(guò)a鏈接(例如先通過(guò)微信授權(quán)登錄)跳轉(zhuǎn)到b鏈接,invalid signature簽名失?。ê笈_(tái)生成簽名的鏈接為使用jssdk的當(dāng)前鏈接,也就是跳轉(zhuǎn)后的b鏈接,請(qǐng)不要用微信登錄的授權(quán)鏈接進(jìn)行簽名計(jì)算,后臺(tái)簽名的url一定是使用jssdk的當(dāng)前頁(yè)面的完整url除去'#'部分)

 

出現(xiàn)config:fail錯(cuò)誤(這是由于傳入的config參數(shù)不全導(dǎo)致,請(qǐng)確保傳入正確的appId、timestamp、nonceStr、signature和需要使用的jsApiList)

 

如何把jsapi上傳到微信的多媒體資源下載到自己的服務(wù)器(請(qǐng)參見(jiàn)文檔中uploadVoice和uploadImage接口的備注說(shuō)明)

 

在Android中通過(guò)其他設(shè)備上傳的serverId,能下載成功但無(wú)法播放(微信團(tuán)隊(duì)已經(jīng)確認(rèn)此問(wèn)題,已在Android6.1版本中修復(fù))

 

Android通過(guò)jssdk上傳到微信服務(wù)器,第三方再?gòu)奈⑿畔螺d到自己的服務(wù)器,會(huì)出現(xiàn)雜音(微信團(tuán)隊(duì)已經(jīng)修復(fù)此問(wèn)題,目前后臺(tái)已優(yōu)化上線(xiàn))

 

綁定父級(jí)域名,是否其子域名也是可用的(是的,合法的子域名在綁定父域名之后是完全支持的)

 

在Android中通過(guò)掃一掃打開(kāi)頁(yè)面,再調(diào)用scanQRCode并返回?cái)?shù)據(jù)給第三方,會(huì)直接退出當(dāng)前頁(yè)(微信團(tuán)隊(duì)已經(jīng)確認(rèn)此問(wèn)題,已在Android6.1版本中修復(fù))

 

在iOS微信6.1版本中,分享的圖片外鏈不顯示,只能顯示公眾號(hào)頁(yè)面內(nèi)鏈的圖片或者微信服務(wù)器的圖片(微信團(tuán)隊(duì)已經(jīng)確認(rèn)此問(wèn)題,會(huì)在6.2中修復(fù))

 

是否需要對(duì)低版本自己做兼容(jssdk都是兼容低版本的,不需要第三方自己額外做更多工作,但有的接口是6.0.2新引入的,只有新版才可調(diào)用)

 

該公眾號(hào)支付簽名無(wú)效,無(wú)法發(fā)起該筆交易(請(qǐng)確保你使用的jweixin.js是官方線(xiàn)上版本,不僅可以減少用戶(hù)流量,還有可能對(duì)某些bug進(jìn)行修復(fù),拷貝到第三方服務(wù)器中使用,官方將不對(duì)其出現(xiàn)的任何問(wèn)題提供保障,具體支付簽名算法可參考 JSSDK微信支付一欄)

 

之前微信jssdk語(yǔ)音接口上傳的文件類(lèi)型為speex,第三方在自己的網(wǎng)頁(yè)無(wú)法直接播放(微信團(tuán)隊(duì)確認(rèn)了該問(wèn)題,并已在本周上線(xiàn)解決了此問(wèn)題,第三方可以通過(guò)多媒體接口下載得到標(biāo)準(zhǔn)的amr音頻文件)

 

目前Android微信客戶(hù)端不支持pushState的H5新特性,所以使用pushState來(lái)實(shí)現(xiàn)web app的頁(yè)面會(huì)導(dǎo)致簽名失敗,此問(wèn)題會(huì)在Android6.2中修復(fù)

 

責(zé)任編輯:chenqingxiang
相關(guān)推薦

2015-02-12 16:57:35

微信SDK

2015-02-12 17:23:33

微信SDK

2015-02-12 17:28:23

微信SDK

2015-01-13 13:57:52

2015-01-28 00:35:00

2020-12-02 06:00:40

js-sdk

2015-02-12 17:45:41

微信SDK

2015-02-12 17:54:13

微信SDK

2015-02-12 17:56:28

微信SDK

2015-02-12 17:58:08

微信SDK

2017-06-27 10:53:32

2015-01-14 10:32:55

微信JS SDK

2013-04-10 16:15:40

微信公眾平臺(tái)接口開(kāi)發(fā)

2012-02-23 13:59:00

IndexedDB

2013-04-12 03:15:34

微信開(kāi)放平臺(tái)Android

2013-04-12 02:54:04

微信開(kāi)放平臺(tái)iOS

2021-06-07 08:07:39

.NETSDK操作

2013-08-08 10:13:25

微信

2011-04-01 11:31:22

OSPF

2013-04-10 18:45:52

微信公眾平臺(tái)接口開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)