国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
一、準(zhǔn)備,設(shè)定js介面安全網(wǎng)域
?二、前端設(shè)定
三、產(chǎn)生簽章
1.access_token?
2.取得jsapi_ticket
#3.簽章
四、小結(jié)
首頁 微信小程式 微信開發(fā) 微信分享功能的開發(fā)

微信分享功能的開發(fā)

Mar 16, 2018 pm 02:28 PM
分享 功能 開發(fā)

這次帶給大家微信分享功能的開發(fā),微信分享功能開發(fā)的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。

內(nèi)嵌在微信中的網(wǎng)頁,右上角都會有一個預(yù)設(shè)的分享功能。如下圖所示,第一個為自訂的效果,第二個為預(yù)設(shè)的效果。實現(xiàn)了自訂的分享連結(jié)是不是更讓人有點(diǎn)擊的慾望?下面講解下開發(fā)的過程。

一、準(zhǔn)備,設(shè)定js介面安全網(wǎng)域

這需要使用微信的jssdk,先需要在微信公眾號後臺進(jìn)行設(shè)定:公眾號碼設(shè)定-->功能設(shè)定-->JS介面安全域名。打開這個頁面之後你會看到下面的提示。需要先下載這個檔案並上傳到指定網(wǎng)域的根目錄。

這個檔案裡面是一個字串,從名稱看是用來校驗用的。先上傳了這個文件,你才能儲存成功。這樣你就可以使用jssdk了。

?二、前端設(shè)定

?首先要說明的是分享功能是一個設(shè)定功能,綁定在按鈕的click事件中是沒有效水果的。也就是說只有點(diǎn)擊右上角的分享才有效果(有的文字內(nèi)容分享不知道是怎麼實現(xiàn)的)。官方的js有四個步驟,首先是引入jssdk:

<script src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>

根據(jù)官方的配置參數(shù),我們可以定義一個WXShareModel物件:

???public?class?WXShareModel
????{????????public?string?appId?{?get;?set;?}????????public?string?nonceStr?{?get;?set;?}????????public?long?timestamp?{?get;?set;?}????????public?string?signature?{?get;?set;?}????????public?string?ticket?{?get;?set;?}????????public?string?url?{?get;?set;?}????????public?void?MakeSign()
????????{?????????????var?string1Builder?=?new?StringBuilder();
?????????????string1Builder.Append("jsapi_ticket=").Append(ticket).Append("&")
??????????????????????????.Append("noncestr=").Append(nonceStr).Append("&")
??????????????????????????.Append("timestamp=").Append(timestamp).Append("&")
??????????????????????????.Append("url=").Append(url.IndexOf("#")?>=?0???url.Substring(0,?url.IndexOf("#"))?:?url);????????????var?string1?=?string1Builder.ToString();
????????????signature?=?Util.Sha1(string1,?Encoding.Default);
????????}
????}

然後是進(jìn)行設(shè)定:

wx.config({
????????debug:?true,?//?開啟調(diào)試模式,調(diào)用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會通過log打出,僅在pc端時才會打印。
????????appId:?'@Model.appId',?//?必填,公眾號的唯一標(biāo)識
????????timestamp:?'@Model.timestamp',?//?必填,生成簽名的時間戳
????????nonceStr:?'@Model.nonceStr',?//?必填,生成簽名的隨機(jī)串
????????signature:?'@Model.signature',//?必填,簽名,見附錄1
????????jsApiList:?["checkJsApi",?"onMenuShareTimeline",?"onMenuShareAppMessage",?"onMenuShareQQ",?"onMenuShareQZone"]?//?必填,需要使用的JS接口列表,所有JS接口列表見附錄2????});
????wx.ready(function?()?{
????????document.querySelector('#checkJsApi').onclick?=?function?()?{
????????????wx.checkJsApi({
????????????????jsApiList:?[????????????'getNetworkType',????????????'previewImage'
????????????????],
????????????????success:?function?(res)?{
????????????????????alert(JSON.stringify(res));
????????????????}
????????????});
????????};
    //朋友圈????????wx.onMenuShareTimeline({
????????????title:?'暖木科技',?//?分享標(biāo)題
????????????link:?'http://www.warmwood.com/home/lampindex',?//?分享鏈接
????????????imgUrl:?'http://www.warmwood.com/images/s1.jpg',
????????????success:?function?(res)?{
????????????????alert('已分享');
????????????},
????????????cancel:?function?(res)?{
????????????????alert('已取消');
????????????},
????????????fail:?function?(res)?{
????????????????alert(JSON.stringify(res));
????????????}
????????});????????//朋友????????wx.onMenuShareAppMessage({
????????????title:?'暖木科技',?//?分享標(biāo)題
????????????desc:?'寶寶的睡眠很重要,你的睡眠也很重要',?//?分享描述
????????????link:?'http://www.warmwood.com/home/lampindex',?//?分享鏈接
????????????imgUrl:?'http://www.warmwood.com/images/s1.jpg',?//?分享圖標(biāo)
????????????type:?'',?//?分享類型,music、video或link,不填默認(rèn)為link
????????????dataUrl:?'',?//?如果type是music或video,則要提供數(shù)據(jù)鏈接,默認(rèn)為空
????????????success:?function?()?{????????????????//?用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù)
????????????????alert("分享");
????????????},
????????????cancel:?function?()?{????????????????//?用戶取消分享后執(zhí)行的回調(diào)函數(shù)
????????????????alert("取消分享");
????????????}
????????});
????});

然後剩下就是後端的事情了。後端的關(guān)鍵是取得access_token和jsapi_ticket以及產(chǎn)生正確的簽章。另外如果要統(tǒng)計分享的數(shù)量,最好就是在success方法中進(jìn)行統(tǒng)計了。

三、產(chǎn)生簽章

1.access_token?

取得access_token方法全平臺都是一致的。

public?const?string?AccessTokenUrl?=?"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}";
?public?TokenResult?GetAccessToken()
????????{????????????var?url?=?string.Format(WxDeviceConfig.AccessTokenUrl,?WxDeviceConfig.AppId,?WxDeviceConfig.APPSECRET);????????????var?res?=?SendHelp.Send<TokenResult>(null,?url,?null,?CommonJsonSendType.GET);????????????return?res;
????????}

access_token的逾時時間是7200秒,所以先可以快取起來。 SendHelp文章最後可下載

2.取得jsapi_ticket

access_token的作用就是為了取得jsapi_ticket。用get方式取得,url:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi,傳回的JSON物件如下。

{"errcode":0,"errmsg":"ok","ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA","expires_in":7200}

所以可以定義一個模型:

public?class?jsapiTicketModel
????{????????public?string?errcode?{?get;?set;?}????????public?string?errmsg?{?get;?set;?}????????public?string?ticket?{?get;?set;?}????????public?string?expires_in?{?get;?set;?}
????}

再完成取得ticket的方法:

?public?jsapiTicketModel?GetJsApiTicket(string?accessToken)
????????{????????????var?url?=?string.Format(WxPayConfig.Jsapi_ticketUrl,?accessToken);????????????return?SendHelp.Send<jsapiTicketModel>(accessToken,?url,?"",?CommonJsonSendType.GET);
????????}

ticket過期時間也是7200秒,並且不能頻繁的請求,所以也需要再服務(wù)端快取起來。

?private?void?setCacheTicket(string?cache)
????????{
????????????_cacheManager.Set(tokenKey,?cache,?7200);
????????}

MemoryCacheManager:

View Code

#3.簽章

終於到這一步了,然後你在文件中看到讓你失望的一幕:

麼有C#的demo,支付那邊都提供了,為啥jssdk沒有提供,好吧先不吐槽了。官方也說明白簽名的規(guī)則。一開始我使用的是https://github.com/night-king/weixinSDK中的簽名:

?public?static?string?Sha1(string?orgStr,?string?encode?=?"UTF-8")
????????{????????????var?sha1?=?new?SHA1Managed();????????????var?sha1bytes?=?System.Text.Encoding.GetEncoding(encode).GetBytes(orgStr);????????????byte[]?resultHash?=?sha1.ComputeHash(sha1bytes);????????????string?sha1String?=?BitConverter.ToString(resultHash).ToLower();
????????????sha1String?=?sha1String.Replace("-",?"");????????????return?sha1String;
????????}//錯誤示例

得出的結(jié)果和官方校驗的不一致,一直提示簽名錯誤。

?

?正確的寫法是:

public?static?string?Sha1(string?orgStr,?Encoding?encode)
????????{
????????????SHA1?sha1?=?new?SHA1CryptoServiceProvider();????????????byte[]?bytes_in?=?encode.GetBytes(orgStr);????????????byte[]?bytes_out?=?sha1.ComputeHash(bytes_in);
????????????sha1.Dispose();????????????string?result?=?BitConverter.ToString(bytes_out);
????????????result?=?result.Replace("-",?"");????????????return?result;??
????????}

和官方校驗的結(jié)果一直後,就ok了(忽略大小寫)。另外一個要注意的地方是簽名中的url。如果頁面有參數(shù),model中的url也需要帶參數(shù),#號後面的不要。不然也是會報簽名錯誤。

?public?ActionResult?H5Share()
????????{????????????var?model?=?new?WXShareModel();
????????????model.appId?=?WxPayConfig.APPID;
????????????model.nonceStr?=?WxPayApi.GenerateNonceStr();
????????????model.timestamp?=?Util.CreateTimestamp();
????????????model.ticket?=?GetTicket();
????????????model.url?=?"http://www.warmwood.com/AuthWeiXin/share";//?domain?+?Request.Url.PathAndQuery;????????????model.MakeSign();
????????????Logger.Debug("獲取到ticket:"?+?model.ticket);
????????????Logger.Debug("獲取到簽名:"?+?model.signature);????????????return?View(model);
????????}

四、小結(jié)

wx.config中的debug為true會alert各種操作結(jié)果。參數(shù)正確之後介面會提示:

?

#

至此,分享的功能就ok了。也就打開了呼叫其他jssdk的大門。另外文中的SendHelp物件是用的Senparc?(基於.net4.5)的dll。

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注php中文網(wǎng)其它相關(guān)文章!

推薦閱讀:

webpack自動刷新與解析的使用

H5的快取Manifest的使用

以上是微信分享功能的開發(fā)的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

四款值得推薦的AI輔助程式工具 四款值得推薦的AI輔助程式工具 Apr 22, 2024 pm 05:34 PM

這個AI輔助程式工具在這個AI快速發(fā)展的階段,挖掘出了一大批好用的AI輔助程式工具。 AI輔助程式設(shè)計工具能夠提升開發(fā)效率、提升程式碼品質(zhì)、降低bug率,是現(xiàn)代軟體開發(fā)過程中的重要助手。今天大姚給大家分享4款A(yù)I輔助程式工具(而且都支援C#語言),希望對大家有幫助。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款A(yù)I編碼助手,可幫助你更快、更省力地編寫程式碼,從而將更多精力集中在問題解決和協(xié)作上。 Git

自媒體到底是什麼?它的主要特點(diǎn)和功能有哪些? 自媒體到底是什麼?它的主要特點(diǎn)和功能有哪些? Mar 21, 2024 pm 08:21 PM

隨著網(wǎng)路的快速發(fā)展,自媒體這個概念已經(jīng)深入人心。那麼,自媒體到底是什麼呢?它有哪些主要特點(diǎn)和功能呢?接下來,我們將一一探討這些問題。一、自媒體到底是什麼?自媒體,顧名思義,就是自己就是媒體。它是指透過網(wǎng)路平臺,個人或團(tuán)隊可以自主創(chuàng)建、編輯、發(fā)布和傳播內(nèi)容的資訊載體。不同於傳統(tǒng)媒體,如報紙、電視、電臺等,自媒體具有更強(qiáng)的互動性和個人化,讓每個人都能成為訊息的生產(chǎn)者和傳播者。二、自媒體的主要特色和功能有哪些? 1.低門檻:自媒體的崛起降低了進(jìn)入媒體產(chǎn)業(yè)的門檻,不再需要繁瑣的設(shè)備和專業(yè)的團(tuán)隊,一部手

vivox100s和x100區(qū)別:效能比較及功能解析 vivox100s和x100區(qū)別:效能比較及功能解析 Mar 23, 2024 pm 10:27 PM

vivox100s和x100手機(jī)都是vivo手機(jī)產(chǎn)品線中的代表機(jī)型,它們分別代表了vivo在不同時間段內(nèi)的高端技術(shù)水平,因此這兩款手機(jī)在設(shè)計、性能和功能上均有一定區(qū)別。本文將從效能比較和功能解析兩個面向?qū)@兩款手機(jī)進(jìn)行詳細(xì)比較,幫助消費(fèi)者更好地選擇適合自己的手機(jī)。首先,我們來看vivox100s和x100在效能上的比較。 vivox100s搭載了最新的

網(wǎng)路易雲(yún)音樂怎麼分享到微信朋友圈_網(wǎng)易雲(yún)音樂分享到微信朋友圈教程 網(wǎng)路易雲(yún)音樂怎麼分享到微信朋友圈_網(wǎng)易雲(yún)音樂分享到微信朋友圈教程 Mar 25, 2024 am 11:41 AM

1.首先我們進(jìn)入到網(wǎng)易雲(yún)音樂中,然後在軟體首頁介面中,點(diǎn)選進(jìn)入到歌曲的播放介面中。 2.然後在歌曲播放介面中,找到右上方的分享功能按鈕,如下圖紅框所示位置,點(diǎn)擊選擇分享的管道;在分享管道中,點(diǎn)擊底部的「分享至」選項,然後選擇第一個“微信朋友圈”,即可將內(nèi)容分享至微信朋友圈。

AI程式設(shè)計師哪家強(qiáng)?探索Devin、通靈靈碼和SWE-agent的潛力 AI程式設(shè)計師哪家強(qiáng)?探索Devin、通靈靈碼和SWE-agent的潛力 Apr 07, 2024 am 09:10 AM

2022年3月3日,距離世界首個AI程式設(shè)計師Devin誕生不足一個月,普林斯頓大學(xué)的NLP團(tuán)隊開發(fā)了一個開源AI程式設(shè)計師SWE-agent。它利用GPT-4模型在GitHub儲存庫中自動解決問題。 SWE-agent在SWE-bench測試集上的表現(xiàn)與Devin相似,平均耗時93秒,解決了12.29%的問題。 SWE-agent透過與專用終端交互,可以開啟、搜尋文件內(nèi)容,使用自動語法檢查、編輯特定行,以及編寫和執(zhí)行測試。 (註:以上內(nèi)容為原始內(nèi)容微調(diào),但保留了原文中的關(guān)鍵訊息,未超過指定字?jǐn)?shù)限制。)SWE-A

學(xué)習(xí)如何利用Go語言開發(fā)行動應(yīng)用程式 學(xué)習(xí)如何利用Go語言開發(fā)行動應(yīng)用程式 Mar 28, 2024 pm 10:00 PM

Go語言開發(fā)行動應(yīng)用程式教學(xué)隨著行動應(yīng)用程式市場的不斷蓬勃發(fā)展,越來越多的開發(fā)者開始探索如何利用Go語言開發(fā)行動應(yīng)用程式。作為一種簡潔高效的程式語言,Go語言在行動應(yīng)用開發(fā)中也展現(xiàn)了強(qiáng)大的潛力。本文將詳細(xì)介紹如何利用Go語言開發(fā)行動應(yīng)用程序,並附上具體的程式碼範(fàn)例,幫助讀者快速入門並開始開發(fā)自己的行動應(yīng)用程式。一、準(zhǔn)備工作在開始之前,我們需要準(zhǔn)備好開發(fā)環(huán)境和工具。首

百度網(wǎng)盤怎麼分享文件給好友 百度網(wǎng)盤怎麼分享文件給好友 Mar 25, 2024 pm 06:52 PM

近期,百度網(wǎng)盤安卓客戶端迎來了全新的8.0.0版本,這個版本不僅帶來了許多變化,還增添了許多實用功能。其中,最引人注目的便是資料夾共享功能的增強(qiáng)。現(xiàn)在,使用者可以輕鬆邀請好友加入,共同分享工作與生活中的重要文件,實現(xiàn)更便利的協(xié)作與分享。那麼究竟該如何分享給好友自己需要分享的文件呢,下文中本站小編就會為大家?guī)碓敿?xì)內(nèi)容介紹,希望能幫助大家! 1)開啟百度雲(yún)APP,先點(diǎn)選在首頁選擇相關(guān)的資料夾,再點(diǎn)選介面右上角的【...】圖示;(如下圖)2)接著點(diǎn)選「共用成員」一欄中的【+ 】,最後在勾選所

小紅書帳號管理軟體有哪些功能?怎麼經(jīng)營小紅書帳號? 小紅書帳號管理軟體有哪些功能?怎麼經(jīng)營小紅書帳號? Mar 21, 2024 pm 04:16 PM

隨著小紅書在年輕人中的流行,越來越多的人開始利用這個平臺分享各方面的經(jīng)驗和生活見解。如何有效管理多個小紅書帳號成為關(guān)鍵問題。在本文中,我們將討論一些小紅書帳號管理軟體的功能,並探討如何更好地經(jīng)營小紅書帳號。隨著社群媒體的發(fā)展,許多人發(fā)現(xiàn)自己需要管理多個社群帳號。對於小紅書用戶來說,這也是一個挑戰(zhàn)。一些小紅書帳號管理軟體可以幫助使用者更輕鬆地管理多個帳號,包括自動發(fā)佈內(nèi)容、定時發(fā)布、資料分析等功能。透過這些工具,使用者可以更有效率地管理他們的帳號,提高帳號的曝光率和關(guān)注。另一、小紅書帳號管理軟體有

See all articles